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=bb4e63fecde6f5e11698c430f5c365b8ecd2a414;hpb=6bc82510fcc73a6dc2f817caa2ce74b52daa345c;p=pti%2Fo2.git diff --git a/o2ims/views/ocloud_route.py b/o2ims/views/ocloud_route.py index bb4e63f..99adb5f 100644 --- a/o2ims/views/ocloud_route.py +++ b/o2ims/views/ocloud_route.py @@ -12,14 +12,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -import uuid from flask_restx import Resource from o2ims.views import ocloud_view, api_ims_inventory_v1 from o2common.config import config -from o2ims.domain.ocloud import Subscription from o2ims.views.ocloud_dto import OcloudDTO, ResourceTypeDTO,\ - ResourcePoolDTO, ResourceDTO, DeploymentManagerDTO, SubscriptionDTO + ResourcePoolDTO, ResourceDTO, DeploymentManagerDTO, SubscriptionDTO,\ + RegistrationDTO apibase = config.get_o2ims_api_base() @@ -119,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) @@ -180,12 +181,8 @@ class SubscriptionsListRouter(Resource): @api_ims_inventory_v1.marshal_with(post_resp, code=201) def post(self): data = api_ims_inventory_v1.payload - sub_uuid = str(uuid.uuid4()) - subscription = Subscription( - sub_uuid, data['callback'], data['consumerSubscriptionId'], - data['filter']) - ocloud_view.subscription_create(subscription, bus.uow) - return {"subscriptionId": sub_uuid}, 201 + result = ocloud_view.subscription_create(data, bus.uow) + return result, 201 @api_ims_inventory_v1.route("/subscriptions/") @@ -208,10 +205,54 @@ class SubscriptionGetDelRouter(Resource): @api_ims_inventory_v1.doc('Delete subscription by ID') @api_ims_inventory_v1.response(204, 'Subscription deleted') def delete(self, subscriptionID): - with bus.uow: - bus.uow.subscriptions.delete(subscriptionID) - bus.uow.commit() - return '', 204 + result = ocloud_view.subscription_delete(subscriptionID, bus.uow) + 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):