CI: Add SonarCloud scan GHA workflow
[pti/o2.git] / o2ims / domain / stx_object.py
index c53b877..549c4fc 100644 (file)
@@ -29,16 +29,23 @@ class StxGenericModel(AgRoot):
         if api_response:
             self.id = str(api_response.uuid)
             self.type = type
+            self.name = api_response.name
             self.updatetime = datetime.datetime.strptime(
                 api_response.updated_at.split('.')[0], "%Y-%m-%dT%H:%M:%S") \
                 if api_response.updated_at else None
             self.createtime = datetime.datetime.strptime(
                 api_response.created_at.split('.')[0], "%Y-%m-%dT%H:%M:%S") \
                 if api_response.created_at else None
-            self.name = api_response.name
-            self.hash = content_hash if content_hash \
-                else str(hash((self.id, self.updatetime)))
-            self.content = json.dumps(api_response.to_dict())
+            self.filtered = getattr(api_response, 'filtered', None)
+            self.hash = content_hash or str(
+                hash((self.id, str(self.filtered)
+                      if self.filtered else self.updatetime)))
+
+            def handle_non_serializable(obj):
+                return repr(obj)
+            self.content = json.dumps(
+                vars(api_response), default=handle_non_serializable)
+
             if ResourceTypeEnum.RESOURCE_POOL == type:
                 self.res_pool_id = self.id