X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=o2dms%2Fviews%2Fdms_route.py;h=0fc6e692847336fb09e0c696da729b05e4535e99;hb=7fb3d02a3744ecb368b0531f16175034b987d42f;hp=e9fd2e20636c847d638dfcd9775a11ed0e2e315e;hpb=c3ab2dcb442a0e66b7a621c59c6c7a679c26cee9;p=pti%2Fo2.git diff --git a/o2dms/views/dms_route.py b/o2dms/views/dms_route.py index e9fd2e2..0fc6e69 100644 --- a/o2dms/views/dms_route.py +++ b/o2dms/views/dms_route.py @@ -17,6 +17,8 @@ from flask_restx import Resource from o2common.config import config from o2dms.views.dms_dto import DmsDTO, DmsLcmNfDeploymentDescriptorDTO +from o2dms.views.dms_dto import DmsLcmNfDeploymentDTO +from o2dms.views.dms_dto import DmsLcmNfOCloudVResourceDTO from o2dms.views import dms_lcm_view, api_dms_lcm_v1 apibase = config.get_o2dms_api_base() @@ -50,7 +52,7 @@ class DmsGetRouter(Resource): @api_dms_lcm_v1.response(404, 'DMS LCM not found') class DmsLcmNfDeploymentDescListRouter(Resource): - model = DmsLcmNfDeploymentDescriptorDTO.dmslcm_NfDeploymentDescriptor_get + model = DmsLcmNfDeploymentDescriptorDTO.NfDeploymentDescriptor_get createdto = DmsLcmNfDeploymentDescriptorDTO.NfDeploymentDescriptor_create post_resp = DmsLcmNfDeploymentDescriptorDTO.\ @@ -82,7 +84,7 @@ class DmsLcmNfDeploymentDescListRouter(Resource): @api_dms_lcm_v1.response(404, 'DMS LCM not found') class DmsLcmNfDeploymentDescGetRouter(Resource): - model = DmsLcmNfDeploymentDescriptorDTO.dmslcm_NfDeploymentDescriptor_get + model = DmsLcmNfDeploymentDescriptorDTO.NfDeploymentDescriptor_get updatedto = DmsLcmNfDeploymentDescriptorDTO.\ NfDeploymentDescriptor_update @@ -114,6 +116,127 @@ class DmsLcmNfDeploymentDescGetRouter(Resource): return '', 204 +# LCM services # +@api_dms_lcm_v1\ + .route("//O2dms_DeploymentLifecycle/" + "NfDeployment") +@api_dms_lcm_v1\ + .param('deploymentManagerID', 'ID of the deployment manager') +@api_dms_lcm_v1.response(404, 'DMS LCM not found') +class DmsLcmNfDeploymentListRouter(Resource): + + model = DmsLcmNfDeploymentDTO.NfDeployment_get + + createdto = DmsLcmNfDeploymentDTO.NfDeployment_create + post_resp = DmsLcmNfDeploymentDTO.\ + NfDeployment_create_post_resp + + @api_dms_lcm_v1.doc('Get a list of NfDeployment') + @api_dms_lcm_v1.marshal_list_with(model) + def get(self, deploymentManagerID): + return dms_lcm_view.lcm_nfdeployment_list( + deploymentManagerID, bus.uow) + + @api_dms_lcm_v1.doc('Create a NfDeployment') + @api_dms_lcm_v1.expect(createdto) + @api_dms_lcm_v1.marshal_with(post_resp, code=201) + def post(self, deploymentManagerID): + data = api_dms_lcm_v1.payload + id = dms_lcm_view.lcm_nfdeployment_create( + deploymentManagerID, data, bus.uow) + return {"id": id}, 201 + + +@api_dms_lcm_v1\ + .route("//O2dms_DeploymentLifecycle/" + "NfDeployment/") +@api_dms_lcm_v1\ + .param('deploymentManagerID', 'ID of the deployment manager') +@api_dms_lcm_v1.param('nfDeploymentId', + 'ID of the NfDeployment') +@api_dms_lcm_v1.response(404, 'DMS LCM not found') +class DmsLcmNfDeploymentGetRouter(Resource): + + model = DmsLcmNfDeploymentDTO.NfDeployment_get + updatedto = DmsLcmNfDeploymentDTO.\ + NfDeployment_update + + @api_dms_lcm_v1.doc('Get a NfDeploymentDescriptor') + @api_dms_lcm_v1.marshal_with(model) + def get(self, nfDeploymentId, deploymentManagerID): + result = dms_lcm_view\ + .lcm_nfdeployment_one(nfDeploymentId, bus.uow) + if result is not None: + return result + api_dms_lcm_v1.abort( + 404, "NfDeploymentDescriptor {} doesn't exist".format( + nfDeploymentId)) + + @api_dms_lcm_v1.doc('Update a NfDeployment') + @api_dms_lcm_v1.expect(updatedto) + def put(self, nfDeploymentId, deploymentManagerID): + data = api_dms_lcm_v1.payload + dms_lcm_view.lcm_nfdeployment_update( + nfDeploymentId, data, bus.uow) + return {}, 201 + + @api_dms_lcm_v1.doc('Delete NfDeployment by ID') + @api_dms_lcm_v1.response(204, 'NfDeployment deleted') + def delete(self, nfDeploymentId, deploymentManagerID): + with bus.uow: + bus.uow.nfdeployments.delete(nfDeploymentId) + bus.uow.commit() + return '', 204 + + +# LCM services # +@api_dms_lcm_v1\ + .route("//O2dms_DeploymentLifecycle/" + "NfDeployment//NfOCloudVirtualResource") +@api_dms_lcm_v1\ + .param('deploymentManagerID', 'ID of the Deployment Manager') +@api_dms_lcm_v1.param('nfDeploymentId', + 'ID of the NfDeployment') +@api_dms_lcm_v1.response(404, 'DMS LCM not found') +class DmsLcmNfOCloudVResListRouter(Resource): + + model = DmsLcmNfOCloudVResourceDTO.NfOCloudVResource_get + + @api_dms_lcm_v1.doc('Get a list of NfOCloudVirtualResource') + @api_dms_lcm_v1.marshal_list_with(model) + def get(self, nfDeploymentId, deploymentManagerID): + return dms_lcm_view.lcm_nfocloudvresource_list( + nfDeploymentId, bus.uow) + + +@api_dms_lcm_v1\ + .route("//O2dms_DeploymentLifecycle/" + "NfDeployment/" + "NfOCloudVirtualResource/") +@api_dms_lcm_v1\ + .param('deploymentManagerID', 'ID of the deployment manager') +@api_dms_lcm_v1.param('nfDeploymentId', + 'ID of the NfDeployment') +@api_dms_lcm_v1.param('nfOCloudVirtualResourceId', + 'ID of the NfOCloudVirtualResource') +@api_dms_lcm_v1.response(404, 'DMS LCM not found') +class DmsLcmNfOCloudVResGetRouter(Resource): + + model = DmsLcmNfOCloudVResourceDTO.NfOCloudVResource_get + + @api_dms_lcm_v1.doc('Get a NfOCloudVirtualResource') + @api_dms_lcm_v1.marshal_with(model) + def get(self, nfOCloudVirtualResourceId, + nfDeploymentId, deploymentManagerID): + result = dms_lcm_view\ + .lcm_nfocloudvresource_one(nfOCloudVirtualResourceId, bus.uow) + if result is not None: + return result + api_dms_lcm_v1.abort( + 404, "NfOCloudVirtualResource {} doesn't exist".format( + nfOCloudVirtualResourceId)) + + def configure_namespace(app, bus_new): app.add_namespace(api_dms_lcm_v1, path=apibase)