X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=o2ims%2Fviews%2Focloud_route.py;fp=o2ims%2Fviews%2Focloud_route.py;h=c50907b297b69afc202f8fd1fe7400c918eda8df;hb=f2998d71e3fe6c455d5ea5070866d927e59a65c9;hp=a01021efc0c00c3d03ca7809f58054ba263b1532;hpb=b86917339a9fc4ea0da6c2deadace89c3b0e1bef;p=pti%2Fo2.git diff --git a/o2ims/views/ocloud_route.py b/o2ims/views/ocloud_route.py index a01021e..c50907b 100644 --- a/o2ims/views/ocloud_route.py +++ b/o2ims/views/ocloud_route.py @@ -17,7 +17,8 @@ from flask_restx import Resource from o2ims.views import ocloud_view, api_ims_inventory_v1 from o2common.config import config from o2ims.views.ocloud_dto import OcloudDTO, ResourceTypeDTO,\ - ResourcePoolDTO, ResourceDTO, DeploymentManagerDTO, SubscriptionDTO + ResourcePoolDTO, ResourceDTO, DeploymentManagerDTO, SubscriptionDTO,\ + RegistrationDTO apibase = config.get_o2ims_api_base() @@ -208,6 +209,52 @@ class SubscriptionGetDelRouter(Resource): return result, 204 +# ---------- Registration ---------- # +@api_ims_inventory_v1.route("/registrations") +class RegistrationListRouter(Resource): + + model = RegistrationDTO.registration_get + expect = RegistrationDTO.registration + post_resp = RegistrationDTO.registration_post_resp + + @api_ims_inventory_v1.doc('List registrations') + @api_ims_inventory_v1.marshal_list_with(model) + def get(self): + return ocloud_view.registrations(bus.uow) + + @api_ims_inventory_v1.doc('Create a registration') + @api_ims_inventory_v1.expect(expect) + @api_ims_inventory_v1.marshal_with(post_resp, code=201) + def post(self): + data = api_ims_inventory_v1.payload + result = ocloud_view.registration_create(data, bus.uow) + return result, 201 + + +@api_ims_inventory_v1.route("/registrations/") +@api_ims_inventory_v1.param('registrationID', 'ID of the registration') +@api_ims_inventory_v1.response(404, 'Registration not found') +class RegistrationGetDelRouter(Resource): + + model = RegistrationDTO.registration_get + + @api_ims_inventory_v1.doc('Get registration by ID') + @api_ims_inventory_v1.marshal_with(model) + def get(self, registrationID): + result = ocloud_view.registration_one( + registrationID, bus.uow) + if result is not None: + return result + api_ims_inventory_v1.abort(404, "Registration {} doesn't exist".format( + registrationID)) + + @api_ims_inventory_v1.doc('Delete registration by ID') + @api_ims_inventory_v1.response(204, 'Registration deleted') + def delete(self, registrationID): + result = ocloud_view.registration_delete(registrationID, bus.uow) + return result, 204 + + def configure_namespace(app, bus_new): # Set global bus for resource