X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=src%2Femuvim%2Fcli%2Fcompute.py;h=4869a17c1bde0764219c3bdedb4dab4beeadce53;hb=581bb196e383ec7b6c01b834688b741d8b9e5a34;hp=642391775a1b533797343e1616a043e3959d53d6;hpb=994245bc4fb59f4c5129a5cb977af1871f08ce13;p=osm%2Fvim-emu.git diff --git a/src/emuvim/cli/compute.py b/src/emuvim/cli/compute.py index 6423917..4869a17 100755 --- a/src/emuvim/cli/compute.py +++ b/src/emuvim/cli/compute.py @@ -15,7 +15,7 @@ pp = pprint.PrettyPrinter(indent=4) class ZeroRpcClient(object): def __init__(self): - self.c = zerorpc.Client() + self.c = zerorpc.Client(heartbeat=None, timeout=120) #heartbeat=None, timeout=120 self.c.connect("tcp://127.0.0.1:4242") # TODO hard coded for now. we'll change this later self.cmds = {} @@ -24,15 +24,12 @@ class ZeroRpcClient(object): # call the local method with the same name as the command arg getattr(self, args["command"])(args) else: - print "Command not implemented." + print("Command not implemented.") def start(self, args): nw_list = list() if args.get("network") is not None: nw_list = self._parse_network(args.get("network")) - - pp.pprint('nwlist1: {0}'.format(nw_list)) - r = self.c.compute_action_start( args.get("datacenter"), args.get("name"), @@ -59,9 +56,9 @@ class ZeroRpcClient(object): eth0ip = None eth0status = "down" if len(status.get("network")) > 0: - eth0ip = status.get("network")[0][1] + eth0ip = status.get("network")[0].get("ip") eth0status = "up" if status.get( - "network")[0][3] else "down" + "network")[0].get("up") else "down" table.append([status.get("datacenter"), name, status.get("image"), @@ -74,7 +71,7 @@ class ZeroRpcClient(object): "eth0 IP", "eth0 status", "Status"] - print tabulate(table, headers=headers, tablefmt="grid") + print(tabulate(table, headers=headers, tablefmt="grid")) def status(self, args): r = self.c.compute_status( @@ -85,17 +82,25 @@ class ZeroRpcClient(object): nw_list = list() if args.get("network") is not None: nw_list = self._parse_network(args.get("network")) - logging.info('nwlist: {0}'.format(nw_list)) - r = self.c.compute_profile( - args.get("datacenter"), - args.get("name"), - args.get("image"), + + params = self._create_dict( network=nw_list, command=args.get("docker_command"), + image=args.get("image"), input=args.get("input"), - output=args.get("output") - ) - pp.pprint(r) + output=args.get("output")) + + for output in self.c.compute_profile( + args.get("datacenter"), + args.get("name"), + params): + print(output + '\n') + + #pp.pprint(r) + #print(r) + + def _create_dict(self, **kwargs): + return kwargs def _parse_network(self, network_str): ''' @@ -116,7 +121,7 @@ class ZeroRpcClient(object): parser = argparse.ArgumentParser(description='son-emu compute') parser.add_argument( "command", - choices=['start', 'stop', 'list', 'status'], + choices=['start', 'stop', 'list', 'status', 'profile'], help="Action to be executed.") parser.add_argument( "--datacenter", "-d", dest="datacenter", @@ -132,8 +137,8 @@ parser.add_argument( help="Startup command of the container e.g. './start.sh'") parser.add_argument( "--net", dest="network", - help="Network properties of compute instance e.g. \ - '10.0.0.123/8' or '10.0.0.123/8,11.0.0.123/24' for multiple interfaces.") + help="Network properties of a compute instance e.g. \ + '(id=input,ip=10.0.10.3/24),(id=output,ip=10.0.10.4/24)' for multiple interfaces.") parser.add_argument( "--input", "-in", dest="input", help="input interface of the vnf to profile")