X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=o2ims%2Fdomain%2Focloud.py;h=d60b08eca088b77987a25f31074172fc5cef6986;hb=23021f6c24ad8722495fc42f98a18cc650906bca;hp=513907a0feccdab3f587951dab2e311187ab8ce3;hpb=387ee50cfe8e97ba211464c311bb7b6eb9ee2961;p=pti%2Fo2.git diff --git a/o2ims/domain/ocloud.py b/o2ims/domain/ocloud.py index 513907a..d60b08e 100644 --- a/o2ims/domain/ocloud.py +++ b/o2ims/domain/ocloud.py @@ -13,8 +13,9 @@ # limitations under the License. from __future__ import annotations +import json -from o2ims.domain.base import AgRoot +from o2common.domain.base import AgRoot, Serializer # from dataclasses import dataclass # from datetime import date # from typing import Optional, List, Set @@ -22,18 +23,7 @@ from .resource_type import ResourceTypeEnum # from uuid import UUID -class Subscription(AgRoot): - def __init__(self, id: str, callback: str, consumersubid: str = '', - filter: str = '') -> None: - super().__init__() - self.subscriptionId = id - self.version_number = 0 - self.callback = callback - self.consumerSubscriptionId = consumersubid - self.filter = filter - - -class DeploymentManager(AgRoot): +class DeploymentManager(AgRoot, Serializer): def __init__(self, id: str, name: str, ocloudid: str, dmsendpoint: str, description: str = '', supportedLocations: str = '', capabilities: str = '', @@ -51,7 +41,7 @@ class DeploymentManager(AgRoot): self.extensions = [] -class ResourcePool(AgRoot): +class ResourcePool(AgRoot, Serializer): def __init__(self, id: str, name: str, location: str, ocloudid: str, gLocationId: str = '', description: str = '') -> None: @@ -66,15 +56,16 @@ class ResourcePool(AgRoot): self.extensions = [] -class ResourceType(AgRoot): +class ResourceType(AgRoot, Serializer): def __init__(self, typeid: str, name: str, typeEnum: ResourceTypeEnum, ocloudid: str, vender: str = '', model: str = '', version: str = '', description: str = '') -> None: super().__init__() self.resourceTypeId = typeid + self.version_number = 0 self.oCloudId = ocloudid - self.resourceTypeEnum = typeEnum.value + self.resourceTypeEnum = typeEnum self.name = name self.vender = vender self.model = model @@ -83,24 +74,47 @@ class ResourceType(AgRoot): self.extensions = [] -class Resource(AgRoot): +class Resource(AgRoot, Serializer): def __init__(self, resourceId: str, resourceTypeId: str, - resourcePoolId: str, oCloudId: str = '', - parentId: str = '', elements: list = [], + resourcePoolId: str, name: str, parentId: str = '', + gAssetId: str = '', elements: str = '', description: str = '') -> None: super().__init__() self.resourceId = resourceId self.version_number = 0 - self.oCloudId = oCloudId self.resourceTypeId = resourceTypeId self.resourcePoolId = resourcePoolId + self.name = name + self.globalAssetId = gAssetId self.parentId = parentId self.elements = elements self.description = description + self.children = [] self.extensions = [] + def set_children(self, children: list): + self.children = children + + def set_resource_type_name(self, resource_type_name: str): + self.resourceTypeName = resource_type_name + + def serialize(self): + d = Serializer.serialize(self) + + if 'elements' in d and d['elements'] != '': + d['elements'] = json.loads(d['elements']) + + if not hasattr(self, 'children') or len(self.children) == 0: + return d + else: + d['children'] = [] + + for child in self.children: + d['children'].append(child.serialize()) + return d + -class Ocloud(AgRoot): +class Ocloud(AgRoot, Serializer): def __init__(self, ocloudid: str, name: str, imsendpoint: str, globalcloudId: str = '', description: str = '', version_number: int = 0) -> None: @@ -115,7 +129,6 @@ class Ocloud(AgRoot): self.deploymentManagers = [] self.resourceTypes = [] self.extensions = [] - # self.events = [] # def addDeploymentManager(self, # deploymentManager: DeploymentManager):