This directory provides a common library for the creation of Alarms by adapters within VOLTHA and should be used to insure that published alarms from different adapters use the same format
Each device handler should create an instance of the AdapterAlarms alarm manager shortly after initial activation. This alarm manager is responsible for the formatting and sending of alarms by the adapters.
To create a specific alarm, create an instance of the specific alarm you wish to publish (such as OnuDiscoveryAlarms for newly discovered ONUs) and pass in alarm specific information to the initialize.
Once constructed, you can call the alarm's raise_alarm() method to format and send an active alarm, or the clear_alarm() to clear it.
Here is an JSON example of a current alarm published on the kafka bus under the voltha.alarms topic:
{ "id": "voltha.adtran_olt.000198f9c4d2ae80.Discovery", "description": "adtran_olt.000198f9c4d2ae80 - ONU DISCOVERY Alarm - DISCOVERY - Raised", "logical_device_id": "0001112233445566", "state": "RAISED", "category": "PON", "severity": "CRITICAL", "resource_id": "0", "type": "EQUIPMENT", "reported_ts": 1532031872.0, "raised_ts": 1532031872.0, "changed_ts": 0.0, "context": { "serial-number": "ADTN17230031", "pon-id": "0" } }
This initial code is only a prelimenary sample. The following tasks need to be added to the VOLTHA JIRA or performed in the SEBA group.
Get a list from SEBA/VOLTHA on required alarms
Provide example JSON output and verify that it meets SEBA's requirements
Get feedback from other OLT/ONU developers on any needed changes
For the logical_device_id, this is reported in the format that the device adapter has which includes the vcore number (often 0001) in the first four nibble. Should this be normalized to all zeros?
Support alarm_suppression capability (via IAdapter call). Needs investigation
TODO: Probably a few more. Look through code for more 'TODO' Notes