X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=o2ims%2Fdomain%2Falarm_obj.py;h=cd653f89d7044b7c0b93ccbcb9ff0ed3f2a85716;hb=beb6be827aa4f45b8d798434a45bc15b0d7baf32;hp=fa7cba2d4dbc782235d5e903ff5db1ff0fbdd042;hpb=d2f6cc674bf3623caf114a8d7709e70d55ec9340;p=pti%2Fo2.git diff --git a/o2ims/domain/alarm_obj.py b/o2ims/domain/alarm_obj.py index fa7cba2..cd653f8 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( @@ -42,6 +48,8 @@ class FaultGenericModel(AgRoot): self.hash = content_hash if content_hash \ else str(hash((self.id, self.timestamp, self.status))) 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 +66,11 @@ class FaultGenericModel(AgRoot): self.content = newmodel.content +class EventTypeEnum(Enum): + ALARM = 'alarm' + EVENT = 'event' + + class PerceivedSeverityEnum(str, Enum): CRITICAL = 0 MAJOR = 1 @@ -96,7 +109,7 @@ class ProbableCause(AgRoot, Serializer): self.description = desc -class AlarmLastChangeEnum(str, Enum): +class AlarmChangeTypeEnum(str, Enum): ADDED = 'ADDED' DELETED = 'DELETED' MODIFYED = 'MODIFYED' @@ -108,13 +121,14 @@ class ClearingTypeEnum(str, Enum): 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 +147,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):