X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=emuvim%2Fapi%2Fzerorpcapi.py;h=7aecba4e8bd71f67b1a2b15efd1773fdd558a310;hb=726a45874fda781f19d1bc1c21b18ba8526e2c19;hp=28519c6b4cdf8a1aced1433b9e155b607f6a2b88;hpb=7aae68563f4ca72f321bd264215f6a58dec6c346;p=osm%2Fvim-emu.git diff --git a/emuvim/api/zerorpcapi.py b/emuvim/api/zerorpcapi.py index 28519c6..7aecba4 100644 --- a/emuvim/api/zerorpcapi.py +++ b/emuvim/api/zerorpcapi.py @@ -7,7 +7,7 @@ import logging import threading import zerorpc -logging.basicConfig(level=logging.DEBUG) +logging.basicConfig(level=logging.INFO) class ZeroRpcApiEndpoint(object): @@ -56,17 +56,20 @@ class MultiDatacenterApi(object): def __init__(self, dcs): self.dcs = dcs - def compute_action_start(self, dc_name, compute_name): + def compute_action_start(self, dc_name, compute_name, image, network): + # network e.g. {"ip": "10.0.0.254/8"} # TODO what to return UUID / given name / internal name ? logging.debug("RPC CALL: compute start") try: - return self.dcs.get(dc_name).startCompute(compute_name) + c = self.dcs.get(dc_name).startCompute( + compute_name, image=image, network=network) + return str(c.name) except Exception as ex: logging.exception("RPC error.") return ex.message def compute_action_stop(self, dc_name, compute_name): - logging.info("RPC CALL: compute stop") + logging.debug("RPC CALL: compute stop") try: return self.dcs.get(dc_name).stopCompute(compute_name) except Exception as ex: @@ -74,16 +77,25 @@ class MultiDatacenterApi(object): return ex.message def compute_list(self, dc_name): - logging.info("RPC CALL: compute list") + logging.debug("RPC CALL: compute list") try: - return [(c.name, c.IP()) - for c in self.dcs.get(dc_name).listCompute()] + if dc_name is None: + # return list with all compute nodes in all DCs + all_containers = [] + for dc in self.dcs.itervalues(): + all_containers += dc.listCompute() + return [(c.name, c.getStatus()) + for c in all_containers] + else: + # return list of compute nodes for specified DC + return [(c.name, c.getStatus()) + for c in self.dcs.get(dc_name).listCompute()] except Exception as ex: logging.exception("RPC error.") return ex.message def compute_status(self, dc_name, compute_name): - logging.info("RPC CALL: compute status") + logging.debug("RPC CALL: compute status") try: return self.dcs.get( dc_name).containers.get(compute_name).getStatus()