X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=emuvim%2Fapi%2Fzerorpcapi.py;h=fd814b323ac20f5dbae5c632c0fc9e24170d64b8;hb=237994203f93612c140186ccf0920b43e5fcb702;hp=bbb95cacb99547a8b3fff8e8ce651ee428acf7c6;hpb=326d06d0db129a0b0f981ee84fc62a9a5e41a3e0;p=osm%2Fvim-emu.git diff --git a/emuvim/api/zerorpcapi.py b/emuvim/api/zerorpcapi.py old mode 100644 new mode 100755 index bbb95ca..fd814b3 --- a/emuvim/api/zerorpcapi.py +++ b/emuvim/api/zerorpcapi.py @@ -56,30 +56,30 @@ class MultiDatacenterApi(object): def __init__(self, dcs): self.dcs = dcs - def compute_action_start(self, dc_name, compute_name, image, network): + def compute_action_start(self, dc_label, compute_name, image, command, 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: - c = self.dcs.get(dc_name).startCompute( - compute_name, image=image, network=network) + c = self.dcs.get(dc_label).startCompute( + compute_name, image=image, command=command, 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): + def compute_action_stop(self, dc_label, compute_name): logging.debug("RPC CALL: compute stop") try: - return self.dcs.get(dc_name).stopCompute(compute_name) + return self.dcs.get(dc_label).stopCompute(compute_name) except Exception as ex: logging.exception("RPC error.") return ex.message - def compute_list(self, dc_name): + def compute_list(self, dc_label): logging.debug("RPC CALL: compute list") try: - if dc_name is None: + if dc_label is None: # return list with all compute nodes in all DCs all_containers = [] for dc in self.dcs.itervalues(): @@ -89,16 +89,32 @@ class MultiDatacenterApi(object): else: # return list of compute nodes for specified DC return [(c.name, c.getStatus()) - for c in self.dcs.get(dc_name).listCompute()] + for c in self.dcs.get(dc_label).listCompute()] except Exception as ex: logging.exception("RPC error.") return ex.message - def compute_status(self, dc_name, compute_name): + def compute_status(self, dc_label, compute_name): logging.debug("RPC CALL: compute status") try: return self.dcs.get( - dc_name).containers.get(compute_name).getStatus() + dc_label).containers.get(compute_name).getStatus() + except Exception as ex: + logging.exception("RPC error.") + return ex.message + + def datacenter_list(self): + logging.debug("RPC CALL: datacenter list") + try: + return [d.getStatus() for d in self.dcs.itervalues()] + except Exception as ex: + logging.exception("RPC error.") + return ex.message + + def datacenter_status(self, dc_label): + logging.debug("RPC CALL: datacenter status") + try: + return self.dcs.get(dc_label).getStatus() except Exception as ex: logging.exception("RPC error.") return ex.message