# elif hasattr(api_response, 'event_log_id'):
# self.alarm_id = api_response.event_log_id
- self.hash = content_hash if content_hash \
- else str(hash((self.id, self.timestamp, self.status)))
+ self.hash = content_hash
+ if not self.hash:
+ if hasattr(api_response, 'filtered'):
+ self.filtered = api_response.filtered
+ self.hash = str(hash((self.id, str(self.filtered))))
+ else:
+ self.hash = str(hash((self.id, self.updatetime)))
self.content = json.dumps(api_response.to_dict())
if EventTypeEnum.ALARM == type:
pass
self.alarmChangedTime = ''
self.alarmAcknowledgeTime = ''
self.alarmAcknowledged = False
- self.extensions = []
+ self.extensions = ''
class ProbableCause(AgRoot, Serializer):
self.description = desc
-class AlarmLastChangeEnum(str, Enum):
+class AlarmChangeTypeEnum(str, Enum):
ADDED = 'ADDED'
DELETED = 'DELETED'
MODIFYED = 'MODIFYED'
MANUAL = 'MANUAL'
+class AlarmEventRecordModifications(AgRoot):
+ def __init__(self, ack: bool = None,
+ clear: PerceivedSeverityEnum = None) -> None:
+ super().__init__()
+ self.alarmAcknowledged = ack
+ self.perceivedSeverity = clear
+
+
class AlarmDefinition(AgRoot, Serializer):
- def __init__(self, id: str, name: str, last_change: AlarmLastChangeEnum,
+ def __init__(self, id: str, name: str, change_type: AlarmChangeTypeEnum,
desc: str, prop_action: str, clearing_type: ClearingTypeEnum,
pk_noti_field: str) -> None:
super().__init__()
self.alarmDefinitionId = id
self.alarmName = name
- self.alarmLastChange = last_change
+ self.alarmLastChange = '0.1'
+ self.alarmChangeType = change_type
self.alarmDescription = desc
self.proposedRepairActions = prop_action
self.clearingType = clearing_type
self.vendor = ""
self.managementInterfaceId = "O2IMS"
self.pkNotificationField = ""
- self.alarmDefinition = ""
+ self.alarmDefinition = []
+
+ def serialize(self):
+ d = Serializer.serialize(self)
+ if 'alarmDefinition' in d and len(d['alarmDefinition']) > 0:
+ d['alarmDefinition'] = self.serialize_list(d['alarmDefinition'])
+ return d
class AlarmNotificationEventEnum(str, Enum):
class AlarmEvent2SMO(Serializer):
def __init__(self, eventtype: AlarmNotificationEventEnum,
- id: str, ref: str, updatetime: str) -> None:
+ id: str, updatetime: str) -> None:
self.notificationEventType = eventtype
- self.objectRef = ref
self.id = id
self.updatetime = updatetime
self.alarmChangedTime = alarm.alarmChangedTime
self.alarmAcknowledgeTime = alarm.alarmAcknowledgeTime
self.alarmAcknowledged = alarm.alarmAcknowledged
- self.extensions = []
+ self.extensions = alarm.extensions