# 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 o2common.service.messagebus import MessageBus
+from o2ims.views import ocloud_view
+from o2ims.views.api_ns import api_ims_inventory_v1
from o2ims.views.ocloud_dto import OcloudDTO, ResourceTypeDTO,\
ResourcePoolDTO, ResourceDTO, DeploymentManagerDTO, SubscriptionDTO
-apibase = config.get_o2ims_api_base()
+def configure_api_route():
+ # Set global bus for resource
+ global bus
+ bus = MessageBus.get_instance()
# ---------- OClouds ---------- #
@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)
@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/<subscriptionID>")
@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
-
-
-def configure_namespace(app, bus_new):
-
- # Set global bus for resource
- global bus
- bus = bus_new
-
- app.add_namespace(api_ims_inventory_v1, path=apibase)
+ result = ocloud_view.subscription_delete(subscriptionID, bus.uow)
+ return result, 204