Merge "Fix SqlAlchemy version upgrade issue"
[pti/o2.git] / o2ims / domain / ocloud.py
index b7c82b5..ee3da89 100644 (file)
 from __future__ import annotations
 import json
 
+from o2common.config import config
 from o2common.domain.base import AgRoot, Serializer
-from o2common.config import config, conf as CONF
 # from dataclasses import dataclass
 # from datetime import date
 # from typing import Optional, List, Set
 from .resource_type import ResourceKindEnum, ResourceTypeEnum
+from .alarm_obj import AlarmDictionary
 
 
 DeploymentManagerProfileDefault = 'native_k8sapi'
@@ -62,6 +63,8 @@ class DeploymentManager(AgRoot, Serializer):
             elif profile == DeploymentManagerProfileSOL018HelmCLI:
                 d['profileSupportList'].append(profile)
 
+        if 'capabilities' in d and d['capabilities'] != '':
+            d['capabilities'] = json.loads(d['capabilities'])
         return d
 
 
@@ -84,7 +87,7 @@ class ResourcePool(AgRoot, Serializer):
 
 class ResourceType(AgRoot, Serializer):
     def __init__(self, typeid: str, name: str, typeEnum: ResourceTypeEnum,
-                 ocloudid: str, vendor: str = '', model: str = '',
+                 vendor: str = '', model: str = '',
                  version: str = '',
                  description: str = '') -> None:
         super().__init__()
@@ -95,7 +98,7 @@ class ResourceType(AgRoot, Serializer):
         self.vendor = vendor
         self.model = model
         self.version = version
-        self.alarmDictionary = {}
+        self.alarmDictionary = None
         self.resourceKind = ResourceKindEnum.UNDEFINED
         self.resourceClass = ResourceTypeEnum.UNDEFINED
         self.extensions = []
@@ -104,17 +107,15 @@ class ResourceType(AgRoot, Serializer):
 
     def serialize(self):
         d = Serializer.serialize(self)
-
-        if CONF.alarm_dictionaries.get(d['name']) is not None:
-            d["alarmDictionary"] = CONF.alarm_dictionaries.get(
-                d['name']).serialize()
-
+        if 'alarmDictionary' in d and \
+                type(d['alarmDictionary']) is AlarmDictionary:
+            d['alarmDictionary'] = d['alarmDictionary'].serialize()
         return d
 
 
 class Resource(AgRoot, Serializer):
     def __init__(self, resourceId: str, resourceTypeId: str,
-                 resourcePoolId: str, name: str, parentId: str = '',
+                 resourcePoolId: str, parentId: str = '',
                  gAssetId: str = '', elements: str = '',
                  description: str = '', extensions: str = '') -> None:
         super().__init__()
@@ -126,7 +127,6 @@ class Resource(AgRoot, Serializer):
         self.elements = elements
         self.extensions = extensions
 
-        self.name = name
         self.parentId = parentId
         self.children = []