X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=o2ims%2Fviews%2Focloud_route.py;h=99adb5f064c5c7c10bcbc198b5c50d0194aac8e7;hb=3da89330f3837ac6cffd2cad4c4018c9f8c3327d;hp=6d5e8e38bcb14b62c46609e245381939bd230014;hpb=f73c8e3b01b8f5b7438ba544870e06d8f30cdea0;p=pti%2Fo2.git diff --git a/o2ims/views/ocloud_route.py b/o2ims/views/ocloud_route.py index 6d5e8e3..99adb5f 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() @@ -117,7 +118,9 @@ class ResourcesListRouter(Resource): @api_ims_inventory_v1.response(404, 'Resource not found') class ResourceGetRouter(Resource): - model = ResourceDTO.resource_get + # dto = ResourceDTO() + # model = dto.get_resource_get() + model = ResourceDTO.recursive_resource_mapping() @api_ims_inventory_v1.doc('Get resource') @api_ims_inventory_v1.marshal_with(model) @@ -206,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) + 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