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=fa7cba2d4dbc782235d5e903ff5db1ff0fbdd042;hpb=d2f6cc674bf3623caf114a8d7709e70d55ec9340;p=pti%2Fo2.git diff --git a/o2ims/domain/alarm_obj.py b/o2ims/domain/alarm_obj.py index fa7cba2..c0f9f17 100644 --- a/o2ims/domain/alarm_obj.py +++ b/o2ims/domain/alarm_obj.py @@ -19,6 +19,9 @@ import datetime from o2common.domain.base import AgRoot, Serializer +from o2common.helper import o2logging +logger = o2logging.get_logger(__name__) + class FaultGenericModel(AgRoot): def __init__(self, type: str, @@ -27,7 +30,10 @@ class FaultGenericModel(AgRoot): if api_response: self.id = str(api_response.uuid) self.name = self.id - self.type = type + self.alarm_type = api_response.alarm_type + self.alarm_def_name = api_response.alarm_id + self.alarm_def_id = api_response.alarm_def_id + self.probable_cause_id = api_response.probable_cause_id self.status = api_response.state # TODO: time less than second self.timestamp = datetime.datetime.strptime( @@ -39,9 +45,16 @@ 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 def is_outdated(self, newmodel) -> bool: # return self.updatetime < newmodel.updatetime @@ -58,6 +71,11 @@ class FaultGenericModel(AgRoot): self.content = newmodel.content +class EventTypeEnum(Enum): + ALARM = 'alarm' + EVENT = 'event' + + class PerceivedSeverityEnum(str, Enum): CRITICAL = 0 MAJOR = 1 @@ -85,7 +103,7 @@ class AlarmEventRecord(AgRoot, Serializer): self.alarmChangedTime = '' self.alarmAcknowledgeTime = '' self.alarmAcknowledged = False - self.extensions = [] + self.extensions = '' class ProbableCause(AgRoot, Serializer): @@ -96,7 +114,7 @@ class ProbableCause(AgRoot, Serializer): self.description = desc -class AlarmLastChangeEnum(str, Enum): +class AlarmChangeTypeEnum(str, Enum): ADDED = 'ADDED' DELETED = 'DELETED' MODIFYED = 'MODIFYED' @@ -107,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 @@ -133,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): @@ -147,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 @@ -185,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