from __future__ import annotations
import json
-from o2common.domain.base import AgRoot, Serializer
-from o2common.config import config, conf as CONF
+from o2common.config import config
+from o2common.domain.base import AgRoot, Serializer, \
+ InfrastructureInventoryObject
# 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'
DeploymentManagerProfileSOL018HelmCLI = 'sol018_helmcli'
-class DeploymentManager(AgRoot, Serializer):
+class DeploymentManager(InfrastructureInventoryObject, AgRoot, Serializer):
def __init__(self, id: str, name: str, ocloudid: str,
dmsendpoint: str, description: str = '',
supportedLocations: str = '', capabilities: str = '',
elif profile == DeploymentManagerProfileSOL018HelmCLI:
d['profileSupportList'].append(profile)
+ if 'capabilities' in d and d['capabilities'] != '':
+ d['capabilities'] = json.loads(d['capabilities'])
return d
+ def get_notification_dict(self):
+ return self.get_fields_as_dict(
+ ['deploymentManagerId', 'name', 'oCloudId', 'serviceUri',
+ 'description'])
-class ResourcePool(AgRoot, Serializer):
+
+class ResourcePool(InfrastructureInventoryObject, AgRoot, Serializer):
def __init__(self, id: str, name: str, location: str,
ocloudid: str, gLocationId: str = '',
description: str = '') -> None:
self.version_number = 0
+ def get_notification_dict(self):
+ return self.get_fields_as_dict(
+ ['resourcePoolId', 'oCloudId', 'globalLocationId', 'name',
+ 'description'])
+
-class ResourceType(AgRoot, Serializer):
+class ResourceType(InfrastructureInventoryObject, 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__()
self.vendor = vendor
self.model = model
self.version = version
- self.alarmDictionary = {}
+ self.alarmDictionary = None
self.resourceKind = ResourceKindEnum.UNDEFINED
self.resourceClass = ResourceTypeEnum.UNDEFINED
self.extensions = []
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
+ def get_notification_dict(self):
+ return self.get_fields_as_dict(
+ ['resourceTypeId', 'name', 'description', 'vendor', 'model',
+ 'version'])
-class Resource(AgRoot, Serializer):
+
+class Resource(InfrastructureInventoryObject, 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__()
self.elements = elements
self.extensions = extensions
- self.name = name
self.parentId = parentId
self.children = []
d['children'].append(child.serialize())
return d
+ def get_notification_dict(self):
+ return self.get_fields_as_dict(
+ ['resourceId', 'resourceTypeId', 'resourcePoolId', 'globalAssetId',
+ 'description'])
+
-class Ocloud(AgRoot, Serializer):
+class Ocloud(InfrastructureInventoryObject, AgRoot, Serializer):
def __init__(self, ocloudid: str, name: str, imsendpoint: str,
globalcloudId: str = '',
description: str = '', version_number: int = 0) -> None:
self.version_number = version_number
+ def get_notification_dict(self):
+ return self.get_fields_as_dict(
+ ['oCloudId', 'globalcloudId', 'globalCloudId', 'name',
+ 'description', 'serviceUri'])
# def addDeploymentManager(self,
# deploymentManager: DeploymentManager):