Cleaned up son-emu cli: removed old zerorpc implementation
[osm/vim-emu.git] / src / emuvim / cli / compute.py
diff --git a/src/emuvim/cli/compute.py b/src/emuvim/cli/compute.py
deleted file mode 100755 (executable)
index b5f775f..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-"""
-Copyright (c) 2015 SONATA-NFV and Paderborn University
-ALL RIGHTS RESERVED.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-Neither the name of the SONATA-NFV [, ANY ADDITIONAL AFFILIATION]
-nor the names of its contributors may be used to endorse or promote
-products derived from this software without specific prior written
-permission.
-
-This work has been performed in the framework of the SONATA project,
-funded by the European Commission under Grant number 671517 through
-the Horizon 2020 and 5G-PPP programmes. The authors would like to
-acknowledge the contributions of their colleagues of the SONATA
-partner consortium (www.sonata-nfv.eu).
-"""
-
-import argparse
-import pprint
-from tabulate import tabulate
-import zerorpc
-
-
-pp = pprint.PrettyPrinter(indent=4)
-
-
-class ZeroRpcClient(object):
-
-    def __init__(self):
-        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 = {}
-
-    def execute_command(self, args):
-        if getattr(self, args["command"]) is not None:
-            # call the local method with the same name as the command arg
-            getattr(self, args["command"])(args)
-        else:
-            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"))
-        r = self.c.compute_action_start(
-            args.get("datacenter"),
-            args.get("name"),
-            args.get("image"),
-            nw_list,
-            args.get("docker_command")
-            )
-        pp.pprint(r)
-
-    def stop(self, args):
-        r = self.c.compute_action_stop(
-            args.get("datacenter"), args.get("name"))
-        pp.pprint(r)
-
-    def list(self, args):
-        r = self.c.compute_list(
-            args.get("datacenter"))
-        table = []
-        for c in r:
-            # for each container add a line to the output table
-            if len(c) > 1:
-                name = c[0]
-                status = c[1]
-                eth0ip = None
-                eth0status = "down"
-                if len(status.get("network")) > 0:
-                    eth0ip = status.get("network")[0].get("ip")
-                    eth0status = "up" if status.get(
-                        "network")[0].get("up") else "down"
-                table.append([status.get("datacenter"),
-                              name,
-                              status.get("image"),
-                              eth0ip,
-                              eth0status,
-                              status.get("state").get("Status")])
-        headers = ["Datacenter",
-                   "Container",
-                   "Image",
-                   "eth0 IP",
-                   "eth0 status",
-                   "Status"]
-        print(tabulate(table, headers=headers, tablefmt="grid"))
-
-    def status(self, args):
-        r = self.c.compute_status(
-            args.get("datacenter"), args.get("name"))
-        pp.pprint(r)
-
-    def _create_dict(self, **kwargs):
-        return kwargs
-
-    def _parse_network(self, network_str):
-        '''
-        parse the options for all network interfaces of the vnf
-        :param network_str: (id=x,ip=x.x.x.x/x), ...
-        :return: list of dicts [{"id":x,"ip":"x.x.x.x/x"}, ...]
-        '''
-        nw_list = list()
-        networks = network_str[1:-1].split('),(')
-        for nw in networks:
-            nw_dict = dict(tuple(e.split('=')) for e in nw.split(','))
-            nw_list.append(nw_dict)
-
-        return nw_list
-
-
-
-parser = argparse.ArgumentParser(description='son-emu compute')
-parser.add_argument(
-    "command",
-    choices=['start', 'stop', 'list', 'status'],
-    help="Action to be executed.")
-parser.add_argument(
-    "--datacenter", "-d", dest="datacenter",
-    help="Data center to in which the compute instance should be executed")
-parser.add_argument(
-    "--name", "-n", dest="name",
-    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:trusty'")
-parser.add_argument(
-    "--dcmd", "-c", dest="docker_command",
-    help="Startup command of the container e.g. './start.sh'")
-parser.add_argument(
-    "--net", dest="network",
-    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.")
-
-def main(argv):
-    args = vars(parser.parse_args(argv))
-    c = ZeroRpcClient()
-    c.execute_command(args)