# See the License for the specific language governing permissions and
# limitations under the License.
-from flask_restx import Namespace, fields
+from flask_restx import fields
+from o2ims.views.api_ns import api_ims_inventory_v1
-class OcloudDTO:
- api = Namespace("Ocloud", description='Ocloud related operations.')
+class OcloudDTO:
- ocloud = api.model(
- "OcloudList",
+ ocloud = api_ims_inventory_v1.model(
+ "OcloudDto",
{
'oCloudId': fields.String(required=True),
'globalCloudId': fields.String,
class ResourceTypeDTO:
- api = Namespace(
- "ResourceType", description='Resource type related operations.')
-
- 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:
- api = Namespace(
- "ResourcePool", description='Resource pool related operations.')
-
- 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:
- api = Namespace("Resource", description='Resource related operations.')
-
- 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:
- api = Namespace("DeploymentManager",
- description='Deployment manager related operations.')
+ deployment_manager_list = api_ims_inventory_v1.model(
+ "DeploymentManagerListDto",
+ {
+ 'deploymentManagerId': fields.String(
+ required=True,
+ description='Deployment manager ID'),
+ 'name': fields.String,
+ 'description': fields.String,
+ 'deploymentManagementServiceEndpoint': fields.String,
+ 'supportedLocations': fields.String,
+ 'capabilities': fields.String,
+ 'capacity': fields.String,
+ }
+ )
- deployment_manager_get = api.model(
- "DeploymentManagerGet",
+ profile = api_ims_inventory_v1.model("DeploymentManagerGetDtoProfile", {
+ 'cluster_api_endpoint': fields.String(
+ attributes='cluster_api_endpoint'),
+ 'cluster_ca_cert': fields.String(attributes='cluster_ca_cert'),
+ 'admin_user': fields.String(attributes='admin_user'),
+ 'admin_client_cert': fields.String(attributes='admin_client_cert'),
+ 'admin_client_key': fields.String(attributes='admin_client_key'),
+ 'kube_config_file': fields.String(attributes='kube_config_file')
+ })
+
+ deployment_manager_get = api_ims_inventory_v1.model(
+ "DeploymentManagerGetDto",
{
'deploymentManagerId': fields.String(
required=True,
'supportedLocations': fields.String,
'capabilities': fields.String,
'capacity': fields.String,
+ 'profile': fields.Nested(profile, False, True),
}
)
class SubscriptionDTO:
- api = Namespace(
- "Subscription", description='Subscription related operations.')
-
- 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'),