X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=osdfapp.py;h=6ae84cc3a47a0efeab5e6ced57602ea92986541f;hb=20341f67d4cc4be4e048aa26840ec55b66341c3f;hp=775bb071970715a99f55e5e45eaedcdc7090b6b1;hpb=1989be6667eeb3b70e959c688c6b423b30dde78a;p=optf%2Fosdf.git diff --git a/osdfapp.py b/osdfapp.py index 775bb07..6ae84cc 100755 --- a/osdfapp.py +++ b/osdfapp.py @@ -45,6 +45,8 @@ from requests import RequestException from schematics.exceptions import DataError from osdf.logging.osdf_logging import MH, audit_log, error_log, debug_log from osdf.models.api.placementRequest import PlacementAPI +from osdf.operation.responses import osdf_response_for_request_accept as req_accept +from osdf.optimizers.routeopt.simple_route_opt import RouteOpt ERROR_TEMPLATE = osdf.ERROR_TEMPLATE @@ -96,6 +98,7 @@ def handle_data_error(e): @app.route("/api/oof/v1/healthcheck", methods=["GET"]) def do_osdf_health_check(): """Simple health check""" + audit_log.info("A health check request is processed!") return "OK" @@ -113,13 +116,48 @@ def do_placement_opt(): PlacementAPI(request_json).validate() policies = get_policies(request_json, "placement") audit_log.info(MH.new_worker_thread(req_id, "[for placement]")) - t = Thread(target=process_placement_opt, args=(request_json, policies, osdf_config, "")) + t = Thread(target=process_placement_opt, args=(request_json, policies, osdf_config)) t.start() audit_log.info(MH.accepted_valid_request(req_id, request)) - return osdf.operation.responses.osdf_response_for_request_accept( - req_id=req_id, text="Accepted placement request. Response will be posted to callback URL") + return req_accept(request_id=req_id, + transaction_id=request_json['requestInfo']['transactionId'], + request_status="accepted", status_message="") +@app.route("/api/oof/v1/route", methods=["POST"]) +def do_route_calc(): + """ + Perform the basic route calculations and returnn the vpn-bindings + """ + request_json = request.get_json() + audit_log.info("Calculate Route request received!") + src_access_node_id = "" + dst_access_node_id = "" + try: + src_access_node_id = request_json["srcPort"]["src-access-node-id"] + audit_log.info( src_access_node_id ) + dst_access_node_id = request_json["dstPort"]["dst-access-node-id"] + except Exception as ex: + error_log.error("Exception while retriving the src and dst node info") + # for the case of request_json for same domain, return the same node with destination update + if src_access_node_id == dst_access_node_id: + audit_log.info("src and dst are same") + data = '{'\ + '"vpns":['\ + '{'\ + '"access-topology-id": "' + request_json["srcPort"]["src-access-topology-id"] + '",'\ + '"access-client-id": "' + request_json["srcPort"]["src-access-client-id"] + '",'\ + '"access-provider-id": "' + request_json["srcPort"]["src-access-provider-id"]+ '",'\ + '"access-node-id": "' + request_json["srcPort"]["src-access-node-id"]+ '",'\ + '"src-access-ltp-id": "' + request_json["srcPort"]["src-access-ltp-id"]+ '",'\ + '"dst-access-ltp-id": "' + request_json["dstPort"]["dst-access-ltp-id"] +'"'\ + '}'\ + ']'\ + '}' + return data + else: + return RouteOpt.getRoute(request_json) + @app.errorhandler(500) def internal_failure(error): """Returned when unexpected coding errors occur during initial synchronous processing"""