X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=o2ims%2Fdomain%2Falarm_obj.py;h=c0f9f1790766618e2f7e7308841a0d8c16fc147a;hb=HEAD;hp=9b3ff4f0e70ef39600271fb3dbe6dd4bd0ef398b;hpb=f7ef52a5b4ead0472b1b5828471b28c88d2a0aea;p=pti%2Fo2.git diff --git a/o2ims/domain/alarm_obj.py b/o2ims/domain/alarm_obj.py index 9b3ff4f..c0f9f17 100644 --- a/o2ims/domain/alarm_obj.py +++ b/o2ims/domain/alarm_obj.py @@ -45,8 +45,13 @@ class FaultGenericModel(AgRoot): # 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 @@ -98,7 +103,7 @@ class AlarmEventRecord(AgRoot, Serializer): self.alarmChangedTime = '' self.alarmAcknowledgeTime = '' self.alarmAcknowledged = False - self.extensions = [] + self.extensions = '' class ProbableCause(AgRoot, Serializer): @@ -109,7 +114,7 @@ class ProbableCause(AgRoot, Serializer): self.description = desc -class AlarmLastChangeEnum(str, Enum): +class AlarmChangeTypeEnum(str, Enum): ADDED = 'ADDED' DELETED = 'DELETED' MODIFYED = 'MODIFYED' @@ -120,14 +125,23 @@ class ClearingTypeEnum(str, Enum): 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 @@ -146,7 +160,13 @@ class AlarmDictionary(AgRoot, Serializer): 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): @@ -160,8 +180,8 @@ class AlarmEvent2SMO(Serializer): def __init__(self, eventtype: AlarmNotificationEventEnum, id: str, ref: str, updatetime: str) -> None: self.notificationEventType = eventtype - self.objectRef = ref self.id = id + self.objectRef = ref self.updatetime = updatetime @@ -198,4 +218,4 @@ class AlarmEventNotification(AgRoot, Serializer): self.alarmChangedTime = alarm.alarmChangedTime self.alarmAcknowledgeTime = alarm.alarmAcknowledgeTime self.alarmAcknowledged = alarm.alarmAcknowledged - self.extensions = [] + self.extensions = alarm.extensions