X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=src%2Femuvim%2Fcli%2Fcompute.py;h=0b3f38dd027729afbc3b12285a0731d03a9c7fa1;hb=a3ddebae7ff1346806d1a52abed12dae9969114f;hp=006b57b4570dd4b9fd2a67b50d8e2ca65d9882bd;hpb=14c89055e7a3951898feb2d70e68448ce31114a1;p=osm%2Fvim-emu.git diff --git a/src/emuvim/cli/compute.py b/src/emuvim/cli/compute.py index 006b57b..0b3f38d 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 = {} @@ -35,8 +35,9 @@ class ZeroRpcClient(object): args.get("datacenter"), args.get("name"), args.get("image"), - args.get("docker_command"), - nw_list) + nw_list, + args.get("docker_command") + ) pp.pprint(r) def stop(self, args): @@ -56,9 +57,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"), @@ -78,6 +79,31 @@ class ZeroRpcClient(object): args.get("datacenter"), args.get("name")) pp.pprint(r) + def profile(self, args): + nw_list = list() + if args.get("network") is not None: + nw_list = self._parse_network(args.get("network")) + + params = self._create_dict( + network=nw_list, + command=args.get("docker_command"), + input=args.get("input"), + output=args.get("output")) + + for output in self.c.compute_profile( + args.get("datacenter"), + args.get("name"), + args.get("image"), + params + ): + print(output + '\n') + + #pp.pprint(r) + #print(r) + + def _create_dict(self, **kwargs): + return kwargs + def _parse_network(self, network_str): ''' parse the options for all network interfaces of the vnf @@ -97,7 +123,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", @@ -107,7 +133,7 @@ parser.add_argument( help="Name of compute instance e.g. 'vnf1'") parser.add_argument( "--image","-i", dest="image", - help="Name of container image to be used e.g. 'ubuntu'") + help="Name of container image to be used e.g. 'ubuntu:trusty'") parser.add_argument( "--dcmd", "-c", dest="docker_command", help="Startup command of the container e.g. './start.sh'") @@ -115,6 +141,12 @@ 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.") +parser.add_argument( + "--input", "-in", dest="input", + help="input interface of the vnf to profile") +parser.add_argument( + "--output", "-out", dest="output", + help="output interface of the vnf to profile") def main(argv):