VOL-3616: Support for API to retrieve information about UNI of an ONU
Change-Id: Iaf6f8147278cc0cbb084b66d7400ce84a0b18ae4
diff --git a/python/adapters/brcm_openomci_onu/brcm_openomci_onu_adapter.py b/python/adapters/brcm_openomci_onu/brcm_openomci_onu_adapter.py
index c261501..d68e72b 100644
--- a/python/adapters/brcm_openomci_onu/brcm_openomci_onu_adapter.py
+++ b/python/adapters/brcm_openomci_onu/brcm_openomci_onu_adapter.py
@@ -23,7 +23,7 @@
from __future__ import absolute_import
import structlog
from twisted.internet import reactor
-from twisted.internet.defer import inlineCallbacks
+from twisted.internet.defer import inlineCallbacks, returnValue
from zope.interface import implementer
@@ -41,7 +41,7 @@
from brcm_openomci_onu_handler import BrcmOpenomciOnuHandler
from omci.brcm_capabilities_task import BrcmCapabilitiesTask
from copy import deepcopy
-
+from voltha_protos.extensions_pb2 import SingleGetValueResponse, GetValueResponse
@implementer(IAdapterInterface)
class BrcmOpenomciOnuAdapter(object):
@@ -305,3 +305,23 @@
handler = self.devices_handlers[device.id]
result = handler.start_omci_test_action(device, uuid)
return result
+
+ @inlineCallbacks
+ def single_get_value_request(self, request):
+ """
+ :param request: A request to get a specific attribute of a device, of type SingleGetValueRequest
+ :return:
+ """
+ self.log.info('single-get-value-request', request=request)
+ handler = self.devices_handlers[request.targetId]
+ get_value_req = request.request
+ if get_value_req.HasField("uniInfo"):
+ result = yield handler.get_uni_status(get_value_req)
+ self.log.debug('single-get-value-result', res=result)
+ returnValue(result)
+ else:
+ self.log.debug('invalid-request')
+ errresult = SingleGetValueResponse()
+ errresult.response.status = GetValueResponse.ERROR
+ errresult.response.errReason = GetValueResponse.UNSUPPORTED
+ returnValue(errresult)