X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=o2ims%2Fviews%2Focloud_dto.py;h=c6896e0bd8bb35041f32fb68737ed7180a4d981e;hb=f3ce354b2e6c538b50ed990ba359d3af2283c901;hp=1a489e1f68b0b78f1d03fb5fc3a3c9e1e1c12b7f;hpb=6bc82510fcc73a6dc2f817caa2ce74b52daa345c;p=pti%2Fo2.git diff --git a/o2ims/views/ocloud_dto.py b/o2ims/views/ocloud_dto.py index 1a489e1..c6896e0 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_v1 class OcloudDTO: @@ -70,22 +70,64 @@ class ResourceDTO: description='Resource ID'), 'resourceTypeId': fields.String, 'resourcePoolId': fields.String, + 'name': fields.String, 'parentId': fields.String, 'description': fields.String, } ) - 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, + '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: