Updated python version and flake8 in tox
[pti/o2.git] / o2ims / domain / alarm_obj.py
index 9b3ff4f..050e7b0 100644 (file)
@@ -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'
@@ -121,13 +126,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
@@ -146,7 +152,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):
@@ -198,4 +210,4 @@ class AlarmEventNotification(AgRoot, Serializer):
         self.alarmChangedTime = alarm.alarmChangedTime
         self.alarmAcknowledgeTime = alarm.alarmAcknowledgeTime
         self.alarmAcknowledged = alarm.alarmAcknowledged
-        self.extensions = []
+        self.extensions = alarm.extensions