SEBA-749 Implemented on demand api code for test action in pyvoltha

Change-Id: Ib7a50bcfdb2f2f28b50406f92539415c92fcd0f1
diff --git a/pyvoltha/adapters/kafka/adapter_request_facade.py b/pyvoltha/adapters/kafka/adapter_request_facade.py
index 4780153..72bf076 100644
--- a/pyvoltha/adapters/kafka/adapter_request_facade.py
+++ b/pyvoltha/adapters/kafka/adapter_request_facade.py
@@ -30,9 +30,11 @@
 from voltha_protos.device_pb2 import Device, Port, ImageDownload, SimulateAlarmRequest
 from voltha_protos.openflow_13_pb2 import FlowChanges, FlowGroups, Flows, \
     FlowGroupChanges, ofp_packet_out
+from voltha_protos.voltha_pb2 import OmciTestRequest
 from pyvoltha.adapters.kafka.kafka_inter_container_library import IKafkaMessagingProxy, \
     get_messaging_proxy, KAFKA_OFFSET_LATEST, KAFKA_OFFSET_EARLIEST, ARG_FROM_TOPIC
 
+
 log = structlog.get_logger()
 
 class MacAddressError(BaseException):
@@ -78,6 +80,21 @@
     #     yield kafka_proxy.subscribe(topic=device_topic, group_id=device_topic, target_cls=self, offset=KAFKA_OFFSET_EARLIEST)
     #     log.debug("subscribed-to-topic", topic=device_topic)
 
+    def start_omci_test(self, device, omcitestrequest, **kwargs):
+        if not device:
+            return False, Error(code=ErrorCode.INVALID_PARAMETERS,
+                                reason="device-invalid")
+        if not omcitestrequest:
+            return False, Error(code=ErrorCode.INVALID_PARAMETERS,
+                                reason="omcitestrequest-invalid")
+
+        d = Device()
+        device.Unpack(d)
+        omci_test = OmciTestRequest()
+        omcitestrequest.Unpack(omci_test)
+        result = self.adapter.start_omci_test(d, omci_test.uuid)
+        return True, result
+
     def adopt_device(self, device, **kwargs):
         d = Device()
         if device: