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)
+