X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=src%2Femuvim%2Fapi%2Frest%2Fcompute.py;h=baa1830e1cda43d922526c88b158878142fd6572;hb=aa8823c85d94a4fa72de058076195296334cdb91;hp=5120b9ee916f243d259d24d4dea3c72050c0ceca;hpb=72f09885db3935e77901c3dee132cb176b927c7b;p=osm%2Fvim-emu.git diff --git a/src/emuvim/api/rest/compute.py b/src/emuvim/api/rest/compute.py index 5120b9e..baa1830 100755 --- a/src/emuvim/api/rest/compute.py +++ b/src/emuvim/api/rest/compute.py @@ -79,20 +79,27 @@ class Compute(Resource): try: config = c.dcinfo.get("Config", dict()) env = config.get("Env", list()) + legacy_command_execution = False for env_var in env: var, cmd = map(str.strip, map(str, env_var.split('=', 1))) logging.debug("%r = %r" % (var, cmd)) if var == "SON_EMU_CMD" or var == "VIM_EMU_CMD": - logging.info( - "Executing entry point script in %r: %r" % (c.name, cmd)) + logging.info("Executing script in '{}': {}={}" + .format(compute_name, var, cmd)) # execute command in new thread to ensure that API is # not blocked by VNF t = threading.Thread(target=c.cmdPrint, args=(cmd,)) t.daemon = True t.start() + legacy_command_execution = True + break + if not legacy_command_execution: + c.start() except Exception as ex: logging.warning("Couldn't run Docker entry point VIM_EMU_CMD") - logging.exception("Exception:") + logging.exception( + "Exception: " + str(ex) + "; " + str(type(ex)) + ) # return docker inspect dict return c.getStatus(), 200, CORS_HEADER except Exception as ex: @@ -148,25 +155,16 @@ class ComputeList(Resource): if dc_label is None or dc_label == 'None': # return list with all compute nodes in all DCs all_containers = [] - all_extSAPs = [] - for dc in dcs.itervalues(): + for dc in dcs.values(): all_containers += dc.listCompute() - all_extSAPs += dc.listExtSAPs() - - extSAP_list = [(sap.name, sap.getStatus()) - for sap in all_extSAPs] container_list = [(c.name, c.getStatus()) for c in all_containers] - total_list = container_list + extSAP_list - return total_list, 200, CORS_HEADER + return container_list, 200, CORS_HEADER else: # return list of compute nodes for specified DC container_list = [(c.name, c.getStatus()) for c in dcs.get(dc_label).listCompute()] - extSAP_list = [(sap.name, sap.getStatus()) - for sap in dcs.get(dc_label).listExtSAPs()] - total_list = container_list + extSAP_list - return total_list, 200, CORS_HEADER + return container_list, 200, CORS_HEADER except Exception as ex: logging.exception("API error.") return ex.message, 500, CORS_HEADER @@ -250,7 +248,7 @@ class DatacenterList(Resource): def get(self): logging.debug("API CALL: datacenter list") try: - return [d.getStatus() for d in dcs.itervalues()], 200, CORS_HEADER + return [d.getStatus() for d in dcs.values()], 200, CORS_HEADER except Exception as ex: logging.exception("API error.") return ex.message, 500, CORS_HEADER