add cli start xterm feature
authorstevenvanrossem <steven.vanrossem@intec.ugent.be>
Tue, 8 Nov 2016 07:47:20 +0000 (08:47 +0100)
committerstevenvanrossem <steven.vanrossem@intec.ugent.be>
Tue, 8 Nov 2016 07:47:20 +0000 (08:47 +0100)
src/emuvim/cli/rest/compute.py

index 870eea1..9e5e0ab 100755 (executable)
@@ -30,6 +30,7 @@ from tabulate import tabulate
 import pprint
 import argparse
 import json
+from subprocess import Popen
 
 pp = pprint.PrettyPrinter(indent=4)
 
@@ -77,7 +78,7 @@ 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"),
@@ -103,6 +104,11 @@ 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
     
@@ -113,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.")