X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=osdfapp.py;h=8b672f4a9e109bcd05fabb46b74972f01a26bd2f;hb=HEAD;hp=fdc2c1d304577e639961427cfa192779a9f1019d;hpb=fcb37e97e37137d3111924e993e75fdb83c2a0a0;p=optf%2Fosdf.git diff --git a/osdfapp.py b/osdfapp.py index fdc2c1d..8b672f4 100755 --- a/osdfapp.py +++ b/osdfapp.py @@ -1,5 +1,6 @@ # ------------------------------------------------------------------------- # Copyright (c) 2015-2017 AT&T Intellectual Property +# Copyright (C) 2020 Wipro Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -28,21 +29,28 @@ from flask import request, g from osdf.apps.baseapp import app, run_app from apps.nst.models.api.nstSelectionRequest import NSTSelectionAPI +from apps.nsst.models.api.nsstSelectionRequest import NSSTSelectionAPI from apps.pci.models.api.pciOptimizationRequest import PCIOptimizationAPI -from apps.nst.optimizers.nst_select_processor import process_nst_selection +from apps.nst.optimizers.nst_select_processor import NstSelection +from apps.nsst.optimizers.nsst_select_processor import NsstSelection from apps.pci.optimizers.pci_opt_processor import process_pci_optimation from apps.placement.models.api.placementRequest import PlacementAPI from apps.placement.optimizers.conductor.remote_opt_processor import process_placement_opt +from apps.route.optimizers.inter_domain_route_opt import InterDomainRouteOpt from apps.route.optimizers.simple_route_opt import RouteOpt from apps.slice_selection.models.api.nsi_selection_request import NSISelectionAPI -from apps.slice_selection.optimizers.conductor.remote_opt_processor import process_nsi_selection_opt +from apps.slice_selection.models.api.nssi_selection_request import NSSISelectionAPI +from apps.slice_selection.optimizers.conductor.remote_opt_processor import SliceSelectionOptimizer from osdf.adapters.policy.interface import get_policies from osdf.adapters.policy.interface import upload_policy_models from osdf.config.base import osdf_config +from osdf.config.base import slice_config from osdf.logging.osdf_logging import MH, audit_log from osdf.operation.responses import osdf_response_for_request_accept as req_accept from osdf.utils import api_data_utils from osdf.webapp.appcontroller import auth_basic +from apps.nxi_termination.optimizers.remote_opt_processor import process_nxi_termination_opt +from apps.nxi_termination.models.api.nxi_termination_request import NxiTerminationApi @app.route("/api/oof/v1/healthcheck", methods=["GET"]) @@ -101,16 +109,47 @@ def do_route_calc(): """ request_json = request.get_json() audit_log.info("Calculate Route request received!") - response = RouteOpt().getRoute(request_json) + response = RouteOpt().get_route(request_json, osdf_config) return response + +@app.route("/api/oof/mdons/route/v1", methods=["POST"]) +def do_mdons_route_calc(): + """ + Perform the inter domain route calculation + """ + request_json = request.get_json() + audit_log.info("Inter Domain Calculation Route request received!") + response = InterDomainRouteOpt().get_route(request_json, osdf_config) + return response + + @app.route("/api/oof/v1/selection/nst", methods=["POST"]) def do_nst_selection(): request_json = request.get_json() req_id = request_json['requestInfo']['requestId'] + audit_log.info(MH.received_request(request.url, request.remote_addr, json.dumps(request_json))) NSTSelectionAPI(request_json).validate() - response = process_nst_selection(request_json, osdf_config) - return response + audit_log.info(MH.new_worker_thread(req_id, "[for NST selection]")) + nst_selection = NstSelection(osdf_config, request_json) + nst_selection.start() + return req_accept(request_id=req_id, + transaction_id=request_json['requestInfo']['transactionId'], + request_status="accepted", status_message="") + + +@app.route("/api/oof/v1/selection/nsst", methods=["POST"]) +def do_nsst_selection(): + request_json = request.get_json() + req_id = request_json['requestInfo']['requestId'] + audit_log.info(MH.received_request(request.url, request.remote_addr, json.dumps(request_json))) + NSSTSelectionAPI(request_json).validate() + audit_log.info(MH.new_worker_thread(req_id, "[for NSST selection]")) + nsst_selection = NsstSelection(osdf_config, request_json) + nsst_selection.start() + return req_accept(request_id=req_id, + transaction_id=request_json['requestInfo']['transactionId'], + request_status="accepted", status_message="") @app.route("/api/oof/v1/pci", methods=["POST"]) @app.route("/api/oof/pci/v1", methods=["POST"]) @@ -123,7 +162,7 @@ def do_pci_optimization(): req_id = request_json['requestInfo']['requestId'] audit_log.info('requestID obtained==>') audit_log.info(req_id) - + g.request_id = req_id audit_log.info(MH.received_request(request.url, request.remote_addr, json.dumps(request_json))) PCIOptimizationAPI(request_json).validate() @@ -146,7 +185,37 @@ def do_nsi_selection(): g.request_id = req_id audit_log.info(MH.received_request(request.url, request.remote_addr, json.dumps(request_json))) NSISelectionAPI(request_json).validate() - return process_nsi_selection_opt(request_json, osdf_config) + audit_log.info(MH.new_worker_thread(req_id, "[for NSI selection]")) + slice_opt = SliceSelectionOptimizer(osdf_config, slice_config, request_json, 'NSI') + slice_opt.start() + return req_accept(request_id=req_id, + transaction_id=request_json['requestInfo']['transactionId'], + request_status="accepted", status_message="") + + +@app.route("/api/oof/selection/nssi/v1", methods=["POST"]) +def do_nssi_selection(): + request_json = request.get_json() + req_id = request_json['requestInfo']['requestId'] + g.request_id = req_id + audit_log.info(MH.received_request(request.url, request.remote_addr, json.dumps(request_json))) + NSSISelectionAPI(request_json).validate() + audit_log.info(MH.new_worker_thread(req_id, "[for NSSI selection]")) + slice_opt = SliceSelectionOptimizer(osdf_config, slice_config, request_json, 'NSSI') + slice_opt.start() + return req_accept(request_id=req_id, + transaction_id=request_json['requestInfo']['transactionId'], + request_status="accepted", status_message="") + + +@app.route("/api/oof/terminate/nxi/v1",methods=["POST"]) +def do_nxi_terminaton(): + request_json = request.get_json() + req_id = request_json['requestInfo']['requestId'] + g.request_id = req_id + audit_log.info(MH.received_request(request.url, request.remote_addr, json.dumps(request_json))) + NxiTerminationApi(request_json).validate() + return process_nxi_termination_opt(request_json,osdf_config) if __name__ == "__main__":