from __future__ import annotations
import json
-from o2common.domain.base import AgRoot, Serializer
+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 ResourceTypeEnum
-# from uuid import UUID
+from .resource_type import ResourceKindEnum, ResourceTypeEnum
+from .alarm_obj import AlarmDictionary
-DeploymentManagerProfileDefault = 'default'
+DeploymentManagerProfileDefault = 'native_k8sapi'
DeploymentManagerProfileSOL018 = 'sol018'
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 = '',
capacity: str = '', profile: str = '') -> None:
super().__init__()
self.deploymentManagerId = id
- self.version_number = 0
- self.oCloudId = ocloudid
self.name = name
self.description = description
- self.deploymentManagementServiceEndpoint = dmsendpoint
+ self.oCloudId = ocloudid
+ self.serviceUri = dmsendpoint
self.supportedLocations = supportedLocations
self.capabilities = capabilities
self.capacity = capacity
self.profile = profile
self.extensions = []
+ self.version_number = 0
+
def serialize(self):
d = Serializer.serialize(self)
d['profile'] = json.loads(d['profile'])
d['profileSupportList'] = [
DeploymentManagerProfileDefault,
- DeploymentManagerProfileSOL018,
- DeploymentManagerProfileSOL018HelmCLI,
]
-
+ profiles = config.get_dms_support_profiles()
+ for profile in profiles:
+ if profile == DeploymentManagerProfileSOL018:
+ d['profileSupportList'].append(profile)
+ 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:
super().__init__()
self.resourcePoolId = id
- self.version_number = 0
- self.oCloudId = ocloudid
self.globalLocationId = gLocationId
self.name = name
- self.location = location
self.description = description
+ self.oCloudId = ocloudid
+ self.location = location
+ self.resources = ''
self.extensions = []
+ 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, vender: str = '', model: str = '',
+ vendor: str = '', model: str = '',
version: str = '',
description: str = '') -> None:
super().__init__()
self.resourceTypeId = typeid
- self.version_number = 0
- self.oCloudId = ocloudid
self.resourceTypeEnum = typeEnum
self.name = name
- self.vender = vender
+ self.description = description
+ self.vendor = vendor
self.model = model
self.version = version
- self.description = description
+ self.alarmDictionary = None
+ self.resourceKind = ResourceKindEnum.UNDEFINED
+ self.resourceClass = ResourceTypeEnum.UNDEFINED
self.extensions = []
+ self.version_number = 0
-class Resource(AgRoot, Serializer):
+ def serialize(self):
+ d = Serializer.serialize(self)
+ 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(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 = '') -> None:
+ description: str = '', extensions: str = '') -> None:
super().__init__()
self.resourceId = resourceId
- self.version_number = 0
+ self.description = description
self.resourceTypeId = resourceTypeId
- self.resourcePoolId = resourcePoolId
- self.name = name
self.globalAssetId = gAssetId
- self.parentId = parentId
+ self.resourcePoolId = resourcePoolId
self.elements = elements
- self.description = description
+ self.extensions = extensions
+
+ self.parentId = parentId
self.children = []
- self.extensions = []
+
+ self.version_number = 0
def set_children(self, children: list):
self.children = 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:
super().__init__()
self.oCloudId = ocloudid
- self.globalcloudId = globalcloudId
- self.version_number = version_number
+ self.globalCloudId = globalcloudId
self.name = name
self.description = description
self.serviceUri = imsendpoint
+ self.resourceTypes = []
self.resourcePools = []
self.deploymentManagers = []
- self.resourceTypes = []
+ self.smoRegistrationService = ''
self.extensions = []
+ 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):