From 375d7bd29cdc687e11ae27183a20653e76bfba3c Mon Sep 17 00:00:00 2001 From: Sithara Nambiar Date: Wed, 29 Apr 2020 11:11:46 +0530 Subject: NST selection changes- filenotfounderror Issue-ID: OPTFRA-675 Signed-off-by: Sithara Nambiar Change-Id: I2b5eb3017fc3a08921eb3e47013a65b90724806c --- apps/nst/optimizers/nst_select_processor.py | 73 ++++++++++++++--------------- 1 file changed, 35 insertions(+), 38 deletions(-) (limited to 'apps/nst/optimizers/nst_select_processor.py') diff --git a/apps/nst/optimizers/nst_select_processor.py b/apps/nst/optimizers/nst_select_processor.py index c340a90..04d5ba7 100644 --- a/apps/nst/optimizers/nst_select_processor.py +++ b/apps/nst/optimizers/nst_select_processor.py @@ -17,48 +17,45 @@ import json -from osdf.logging.osdf_logging import MH, audit_log +import os +BASE_DIR = os.path.dirname(__file__) """ This application generates NST SELECTION API calls using the information received from SO """ -def buildSolution(request_json): - return { - "NSTsolution" : getNSTSolution(request_json) - } -def getNSTSolution(request_json): -# the file is in the same folder for now will move it to the conf folder o fthe has once its integrated there... - with open('./conf/configIinputs.json', 'r') as openfile: - serviceProfile = request_json["serviceProfile"] - resourceName = "NST" - serviceProfileParameters = serviceProfile["serviceProfileParameters"] - nst_object = json.load(openfile) - foundNst = False - for nst in nst_object[resourceName]: - [(nstName, nstList)] = nst.items() - matchall = False - for constraint_name in serviceProfileParameters: - value = serviceProfileParameters[constraint_name] - constraint_value= nstList[constraint_name] - if constraint_value != value: - matchall = False - break - else: - matchall = True - if matchall: - foundNst = True - NSTName = nstList["name"] - matchlevel = 1 - if not(foundNst): - NSTName = None - matchlevel = 0 - return { - "invariantUUID" : "INvariant UUID", - "UUID" : "uuid", - "NSTName" : NSTName, - "matchLevel" : matchlevel - } +def get_nst_solution(request_json): +# the file is in the same folder for now will move it to the conf folder of the has once its integrated there... + config_input_json = os.path.join(BASE_DIR, 'conf/configIinputs.json') + try: + with open(config_input_json, 'r') as openfile: + serviceProfile = request_json["serviceProfile"] + nstSolutionList = [] + resourceName = "NST" + serviceProfileParameters = serviceProfile["serviceProfileParameters"] + nst_object = json.load(openfile) + for nst in nst_object[resourceName]: + [(nstName, nstList)] = nst.items() + individual_nst = dict() + matchall = False + for constraint_name in serviceProfileParameters: + value = serviceProfileParameters[constraint_name] + constraint_value = nstList.get(constraint_name) + if (not constraint_value): + matchall = False + break + else: + matchall = True + if matchall: + individual_nst["NSTName"] = nstList.get("name") + individual_nst["UUID"] = nstList.get("modeluuid") + individual_nst["invariantUUID"] = nstList.get("modelinvariantuuid") + individual_nst["individual_nst"] = 1 + nstSolutionList.append(individual_nst) + + return nstSolutionList + except Exception as err: + raise err def process_nst_selection( request_json, osdf_config): @@ -68,7 +65,7 @@ def process_nst_selection( request_json, osdf_config): :param osdf_config: Configuration specific to OSDF application (core + deployment) :return: response from NST Opt """ - solution = buildSolution(request_json) + solution = get_nst_solution(request_json) return { "requestId" : request_json['requestInfo']['requestId'], -- cgit 1.2.3-korg