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,
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'),
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'),
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,
class SubscriptionDTO:
- subscription_get = api.model(
- "SubscriptionGet",
+ subscription_get = api_ims_inventory_v1.model(
+ "SubscriptionGetDto",
{
'subscriptionId': fields.String(required=True,
description='Subscription ID'),
}
)
- subscription = api.model(
- "SubscriptionCreate",
+ subscription = api_ims_inventory_v1.model(
+ "SubscriptionCreateDto",
{
'callback': fields.String(
required=True, description='Subscription callback address'),
}
)
- subscription_post_resp = api.model(
- "SubscriptionCreatedResp",
+ subscription_post_resp = api_ims_inventory_v1.model(
+ "SubscriptionCreatedRespDto",
{
'subscriptionId': fields.String(required=True,
description='Subscription ID'),