X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=src%2Femuvim%2Fcli%2Frest%2Fcompute.py;h=fdfc11bb6fc62b670c8721f488c669a177b61454;hb=3e16acbebd2c6669c1bbe5a7e3bb313aa1494e20;hp=b92fd4f2cf709a11770ec36526a63fc4f03cbf10;hpb=6efa9137f3fb89ac42351b0fd3cc76042b4059b0;p=osm%2Fvim-emu.git diff --git a/src/emuvim/cli/rest/compute.py b/src/emuvim/cli/rest/compute.py index b92fd4f..fdfc11b 100755 --- a/src/emuvim/cli/rest/compute.py +++ b/src/emuvim/cli/rest/compute.py @@ -30,6 +30,7 @@ from tabulate import tabulate import pprint import argparse import json +from subprocess import Popen pp = pprint.PrettyPrinter(indent=4) @@ -77,18 +78,21 @@ class RestApiClient(): if len(c) > 1: name = c[0] status = c[1] - eth0ip = status.get("docker_network", "-") + #eth0ip = status.get("docker_network", "-") + netw_list = [netw_dict['intf_name'] for netw_dict in status.get("network")] + dc_if_list = [netw_dict['dc_portname'] for netw_dict in status.get("network")] table.append([status.get("datacenter"), name, status.get("image"), - eth0ip, - status.get("state").get("Status")]) + ','.join(netw_list), + ','.join(dc_if_list)]) + #status.get("state").get("Status")] headers = ["Datacenter", "Container", "Image", - "docker0", - "Status"] + "Interface list", + "Datacenter interfaces"] print(tabulate(table, headers=headers, tablefmt="grid")) def status(self, args): @@ -100,8 +104,13 @@ class RestApiClient(): pp.pprint(list) + def xterm(self, args): + vnf_names = args.get("vnf_names") + for vnf_name in vnf_names: + Popen(['xterm', '-xrm', 'XTerm.vt100.allowTitleOps: false', '-T', vnf_name, + '-e', "docker exec -it mn.{0} /bin/bash".format(vnf_name)]) -parser = argparse.ArgumentParser(description="""son-emu compute +parser = argparse.ArgumentParser(description="""son-emu-cli compute Examples: - son-emu-cli compute start -d dc2 -n client -i sonatanfv/sonata-iperf3-vnf @@ -110,8 +119,12 @@ parser = argparse.ArgumentParser(description="""son-emu compute """, formatter_class=argparse.RawTextHelpFormatter) parser.add_argument( "command", - choices=['start', 'stop', 'list', 'status'], + choices=['start', 'stop', 'list', 'status', 'xterm'], help="Action to be executed.") +parser.add_argument( + "vnf_names", + nargs='*', + help="vnf names to open an xterm for") parser.add_argument( "--datacenter", "-d", dest="datacenter", help="Data center to which the command should be applied.") @@ -131,7 +144,7 @@ parser.add_argument( parser.add_argument( "--endpoint", "-e", dest="endpoint", default="http://127.0.0.1:5001", - help="UUID of the plugin to be manipulated.") + help="REST API endpoint of son-emu (default:http://127.0.0.1:5001)") def main(argv):