X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=o2ims%2Fviews%2Focloud_dto.py;h=c1782bf6c9989fa4ede5135aa0ef74f9c314be7a;hb=refs%2Fchanges%2F82%2F7282%2F1;hp=02014516a057fe0e3c24bb744474088bd4d5b074;hpb=19ee63847f8eb032009e63634b90eb594f3c0408;p=pti%2Fo2.git diff --git a/o2ims/views/ocloud_dto.py b/o2ims/views/ocloud_dto.py index 0201451..c1782bf 100644 --- a/o2ims/views/ocloud_dto.py +++ b/o2ims/views/ocloud_dto.py @@ -14,13 +14,13 @@ from flask_restx import fields -from o2ims.views import api +from o2ims.views import api_ims_inventory_v1 class OcloudDTO: - ocloud = api.model( - "OcloudList", + ocloud = api_ims_inventory_v1.model( + "OcloudDto", { 'oCloudId': fields.String(required=True), 'globalCloudId': fields.String, @@ -33,8 +33,8 @@ class OcloudDTO: class ResourceTypeDTO: - resource_type_get = api.model( - "ResourceTypeGet", + resource_type_get = api_ims_inventory_v1.model( + "ResourceTypeGetDto", { 'resourceTypeId': fields.String(required=True, description='Resource type ID'), @@ -48,8 +48,8 @@ class ResourceTypeDTO: class ResourcePoolDTO: - resource_pool_get = api.model( - "ResourcePoolGet", + resource_pool_get = api_ims_inventory_v1.model( + "ResourcePoolGetDto", { 'resourcePoolId': fields.String(required=True, description='Resource pool ID'), @@ -63,35 +63,77 @@ class ResourcePoolDTO: class ResourceDTO: - resource_list = api.model( - "ResourceList", + resource_list = api_ims_inventory_v1.model( + "ResourceListDto", { 'resourceId': fields.String(required=True, description='Resource ID'), 'resourceTypeId': fields.String, 'resourcePoolId': fields.String, + 'name': fields.String, 'parentId': fields.String, 'description': fields.String, } ) - resource_get = api.model( - "ResourceGet", - { + def recursive_resource_mapping(iteration_number=2): + resource_json_mapping = { 'resourceId': fields.String(required=True, description='Resource ID'), 'resourceTypeId': fields.String, 'resourcePoolId': fields.String, + 'name': fields.String, 'parentId': fields.String, 'description': fields.String, + 'elements': fields.String, } - ) + if iteration_number: + resource_json_mapping['children'] = fields.List( + fields.Nested(ResourceDTO.recursive_resource_mapping( + iteration_number-1))) + return api_ims_inventory_v1.model( + 'ResourceGetDto' + str(iteration_number), resource_json_mapping) + + def _recursive_resource_mapping(self, iteration_number=2): + resource_json_mapping = { + 'resourceId': fields.String(required=True, + description='Resource ID'), + 'resourceTypeId': fields.String, + 'resourcePoolId': fields.String, + 'name': fields.String, + 'parentId': fields.String, + 'description': fields.String, + } + if iteration_number: + resource_json_mapping['children'] = fields.List( + fields.Nested(self._recursive_resource_mapping( + iteration_number-1))) + # print(type(resource_json_mapping['children'])) + if resource_json_mapping['children'] is None: + del resource_json_mapping['children'] + return resource_json_mapping + + def get_resource_get(self): + return api_ims_inventory_v1.model( + 'ResourceGetDto', + { + 'resourceId': fields.String(required=True, + description='Resource ID'), + 'resourceTypeId': fields.String, + 'resourcePoolId': fields.String, + 'name': fields.String, + 'parentId': fields.String, + 'description': fields.String, + 'children': fields.List(fields.Nested( + self._recursive_resource_mapping())) + } + ) class DeploymentManagerDTO: - deployment_manager_get = api.model( - "DeploymentManagerGet", + deployment_manager_get = api_ims_inventory_v1.model( + "DeploymentManagerGetDto", { 'deploymentManagerId': fields.String( required=True, @@ -108,8 +150,8 @@ class DeploymentManagerDTO: class SubscriptionDTO: - subscription_get = api.model( - "SubscriptionGet", + subscription_get = api_ims_inventory_v1.model( + "SubscriptionGetDto", { 'subscriptionId': fields.String(required=True, description='Subscription ID'), @@ -119,8 +161,8 @@ class SubscriptionDTO: } ) - subscription = api.model( - "SubscriptionCreate", + subscription = api_ims_inventory_v1.model( + "SubscriptionCreateDto", { 'callback': fields.String( required=True, description='Subscription callback address'), @@ -129,8 +171,8 @@ class SubscriptionDTO: } ) - subscription_post_resp = api.model( - "SubscriptionCreatedResp", + subscription_post_resp = api_ims_inventory_v1.model( + "SubscriptionCreatedRespDto", { 'subscriptionId': fields.String(required=True, description='Subscription ID'),