X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=o2ims%2Fviews%2Focloud_dto.py;h=14d9873bbfd46e4221bb0eb3a886ce1a53454118;hb=d9000f0859a254f2c3c32f30ed71a143e731e2ff;hp=1a489e1f68b0b78f1d03fb5fc3a3c9e1e1c12b7f;hpb=6bc82510fcc73a6dc2f817caa2ce74b52daa345c;p=pti%2Fo2.git diff --git a/o2ims/views/ocloud_dto.py b/o2ims/views/ocloud_dto.py index 1a489e1..14d9873 100644 --- a/o2ims/views/ocloud_dto.py +++ b/o2ims/views/ocloud_dto.py @@ -14,7 +14,7 @@ from flask_restx import fields -from o2ims.views import api_ims_inventory_v1 +from o2ims.views.api_ns import api_ims_inventory as api_ims_inventory_v1 class OcloudDTO: @@ -23,15 +23,38 @@ class OcloudDTO: "OcloudDto", { 'oCloudId': fields.String(required=True), - 'globalCloudId': fields.String, + 'globalcloudId': fields.String(attribute='globalCloudId'), 'name': fields.String, 'description': fields.String, - 'infrastructureManagementServiceEndpoint': fields.String, - } + 'serviceUri': fields.String(attribute='serviceUri'), + # 'infrastructureManagementServiceEndpoint': fields.String( + # attribute='serviceUri'), + # 'infrastructureMangementServiceEndPoint': fields.String( + # attribute='serviceUri'), + # 'resourceTypes': fields.String, + # 'resourcePools': fields.String, + # 'deploymentManagers': fields.String, + # 'smoRegistrationService': fields.String + 'extensions': fields.String + }, + mask='{oCloudId,globalcloudId,name,description,serviceUri}' ) class ResourceTypeDTO: + alarm_dictionary = api_ims_inventory_v1.model( + "AlarmDictionaryDto", + { + 'id': fields.String, + 'alarmDictionaryVersion': fields.String, + 'alarmDictionarySchemVersion': fields.String, + 'entityType': fields.String, + 'vendor': fields.String, + 'managementInterfaceId': fields.String, + 'pkNotificationField': fields.String, + 'alarmDefinition': fields.String, + } + ) resource_type_get = api_ims_inventory_v1.model( "ResourceTypeGetDto", @@ -39,10 +62,16 @@ class ResourceTypeDTO: 'resourceTypeId': fields.String(required=True, description='Resource type ID'), 'name': fields.String, + 'description': fields.String, 'vendor': fields.String, + 'model': fields.String, 'version': fields.String, - 'description': fields.String, - } + 'alarmDictionary': fields.Nested(alarm_dictionary, False, True), + # 'resourceKind': fields.String, + # 'resourceClass': fields.String, + 'extensions': fields.String + }, + mask='{resourceTypeId,name,description,model,vendor,version}' ) @@ -53,16 +82,19 @@ class ResourcePoolDTO: { 'resourcePoolId': fields.String(required=True, description='Resource pool ID'), - 'name': fields.String, 'globalLocationId': fields.String, - 'location': fields.String, + 'name': fields.String, 'description': fields.String, - } + 'oCloudId': fields.String, + 'location': fields.String, + # 'resources': fields.String, + 'extensions': fields.String + }, + mask='{resourcePoolId,oCloudId,globalLocationId,name,description}' ) class ResourceDTO: - resource_list = api_ims_inventory_v1.model( "ResourceListDto", { @@ -70,26 +102,81 @@ class ResourceDTO: description='Resource ID'), 'resourceTypeId': fields.String, 'resourcePoolId': fields.String, + 'globalAssetId': fields.String, + # 'name': fields.String, 'parentId': fields.String, 'description': fields.String, - } + # 'elements': fields.String, + 'extensions': fields.String + }, + mask='{resourceId,resourcePoolId,resourceTypeId,description,parentId}' ) - resource_get = api_ims_inventory_v1.model( - "ResourceGetDto", - { + def recursive_resource_mapping(iteration_number=2): + resource_json_mapping = { 'resourceId': fields.String(required=True, description='Resource ID'), 'resourceTypeId': fields.String, 'resourcePoolId': fields.String, + 'globalAssetId': fields.String, + # 'name': fields.String, 'parentId': fields.String, 'description': fields.String, + # 'elements': fields.String, + 'extensions': fields.String } - ) + if iteration_number: + resource_json_mapping['elements'] = fields.List( + fields.Nested(ResourceDTO.recursive_resource_mapping( + iteration_number-1)), attribute='children') + return api_ims_inventory_v1.model( + 'ResourceGetDto' + str(iteration_number), resource_json_mapping, + mask='{resourceId,resourcePoolId,resourceTypeId,description,' + + 'parentId}') class DeploymentManagerDTO: + deployment_manager_list = api_ims_inventory_v1.model( + "DeploymentManagerListDto", + { + 'deploymentManagerId': fields.String( + required=True, + description='Deployment manager ID'), + 'name': fields.String, + 'description': fields.String, + 'oCloudId': fields.String, + 'serviceUri': fields.String(attribute='serviceUri'), + # 'deploymentManagementServiceEndpoint': fields.String( + # attribute='serviceUri'), + # 'supportedLocations': fields.String, + # 'capabilities': fields.String, + # 'capacity': fields.String, + 'profileSupportList': fields.List( + fields.String, + description='Profile support list, use default for the return \ + endpoint'), + 'extensions': fields.String + }, + mask='{deploymentManagerId,name,description,oCloudId,serviceUri,' + \ + 'profileSupportList}' + ) + + profile = api_ims_inventory_v1.model("DeploymentManagerGetDtoProfile", { + 'cluster_api_endpoint': fields.String( + attribute='cluster_api_endpoint'), + 'cluster_ca_cert': fields.String(attribute='cluster_ca_cert'), + 'admin_user': fields.String(attribute='admin_user'), + 'admin_client_cert': fields.String(attribute='admin_client_cert'), + 'admin_client_key': fields.String(attribute='admin_client_key'), + # 'kube_config_file': fields.String(attribute='kube_config_file') + 'helmcli_host_with_port': fields.String( + attribute='helmcli_host_with_port'), + 'helmcli_username': fields.String(attribute='helmcli_username'), + 'helmcli_password': fields.String(attribute='helmcli_password'), + 'helmcli_kubeconfig': fields.String(attribute='helmcli_kubeconfig'), + }) + deployment_manager_get = api_ims_inventory_v1.model( "DeploymentManagerGetDto", { @@ -98,11 +185,19 @@ class DeploymentManagerDTO: description='Deployment manager ID'), 'name': fields.String, 'description': fields.String, - 'deploymentManagementServiceEndpoint': fields.String, - 'supportedLocations': fields.String, - 'capabilities': fields.String, - 'capacity': fields.String, - } + 'oCloudId': fields.String, + 'serviceUri': fields.String(attribute='serviceUri'), + # 'deploymentManagementServiceEndpoint': fields.String( + # attribute='serviceUri'), + # 'supportedLocations': fields.String, + # 'capabilities': fields.String, + # 'capacity': fields.String, + 'profileName': fields.String, + 'profileData': fields.Nested(profile, False, True), + 'extensions': fields.String + }, + mask='{deploymentManagerId,name,description,oCloudId,serviceUri,' +\ + 'profileName,profileData}' ) @@ -116,7 +211,8 @@ class SubscriptionDTO: 'callback': fields.String, 'consumerSubscriptionId': fields.String, 'filter': fields.String, - } + }, + mask='{subscriptionId,callback}' ) subscription = api_ims_inventory_v1.model(