VOL-1538 Added onu activation alarm raising feature to the adapter by utilizing the alarm framework present in pyvoltha

Change-Id: I10e500f3b8fa8678bef25eecc8716dac8c800cc6
diff --git a/python/adapters/brcm_openomci_onu/brcm_openomci_onu_handler.py b/python/adapters/brcm_openomci_onu/brcm_openomci_onu_handler.py
index bcd4fc4..898d58b 100644
--- a/python/adapters/brcm_openomci_onu/brcm_openomci_onu_handler.py
+++ b/python/adapters/brcm_openomci_onu/brcm_openomci_onu_handler.py
@@ -27,6 +27,7 @@
 from twisted.internet.defer import DeferredQueue, inlineCallbacks, returnValue, TimeoutError
 
 from heartbeat import HeartBeat
+from pyvoltha.adapters.extensions.alarms.onu.onu_active_alarm import OnuActiveAlarm
 from pyvoltha.adapters.extensions.kpi.onu.onu_pm_metrics import OnuPmMetrics
 from pyvoltha.adapters.extensions.kpi.onu.onu_omci_pm import OnuOmciPmMetrics
 from pyvoltha.adapters.extensions.alarms.adapter_alarms import AdapterAlarms
@@ -229,7 +230,7 @@
 
             self.log.debug('set-device-discovered')
 
-            self._init_pon_state(device)
+            yield self._init_pon_state(device)
 
             ############################################################################
             # Setup PM configuration for this device
@@ -995,6 +996,7 @@
                                             oper_status=OperStatus.ACTIVE, connect_status=ConnectStatus.REACHABLE)
                     yield self.core_proxy.device_update(device)
                     self._mib_download_task = None
+                    yield self.onu_active_alarm()
 
                 @inlineCallbacks
                 def failure(_reason):
@@ -1053,3 +1055,29 @@
         assert onu_id < MAX_ONUS_PER_PON
         assert uni_id < MAX_UNIS_PER_ONU
         return intf_id << 11 | onu_id << 4 | uni_id
+
+    @inlineCallbacks
+    def onu_active_alarm(self):
+        self.log.debug('function-entry')
+        try:
+            device = yield self.core_proxy.get_device(self.device_id)
+            parent_device = yield self.core_proxy.get_device(self.parent_id)
+            olt_serial_number = parent_device.serial_number
+
+            self.log.debug("onu-indication-context-data",
+                       pon_id=self._onu_indication.intf_id,
+                       registration_id=self.device_id,
+                       device_id=self.device_id,
+                       onu_serial_number=device.serial_number,
+                       olt_serial_number=olt_serial_number)
+
+            self.log.debug("Trying to raise alarm")
+            OnuActiveAlarm(self.alarms, self.device_id,
+                           self._onu_indication.intf_id,
+                           device.serial_number,
+                           str(self.device_id),
+                           olt_serial_number).raise_alarm()
+        except Exception as active_alarm_error:
+            self.log.exception('onu-activated-alarm-error',
+                               errmsg=active_alarm_error.message)
+