Merge "Change API layer for NSI selection"
[optf/osdf.git] / osdfapp.py
index 1099e55..9b84bc9 100755 (executable)
@@ -33,6 +33,7 @@ from apps.nst.optimizers.nst_select_processor import process_nst_selection
 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
@@ -104,6 +105,16 @@ def do_route_calc():
     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()
@@ -123,7 +134,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 +157,12 @@ 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]"))
+    t = Thread(target=process_nsi_selection_opt, args=(request_json, osdf_config))
+    t.start()
+    return req_accept(request_id=req_id,
+                      transaction_id=request_json['requestInfo']['transactionId'],
+                      request_status="accepted", status_message="")
 
 
 if __name__ == "__main__":