diff --git a/src/utils/SConscript b/src/utils/SConscript index 534e4fd504e..851bacf7412 100644 --- a/src/utils/SConscript +++ b/src/utils/SConscript @@ -1,6 +1,6 @@ # -*- mode: python; -*- # -# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. # Import('BuildEnv') diff --git a/src/utils/contrail-cli/SConscript b/src/utils/contrail-cli/SConscript index 70c39dd110f..dedd572fb7b 100644 --- a/src/utils/contrail-cli/SConscript +++ b/src/utils/contrail-cli/SConscript @@ -1,7 +1,5 @@ - -# -*- mode: python; -*- # -# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. # Import('BuildEnv') diff --git a/src/utils/contrail-cli/commandlist.py b/src/utils/contrail-cli/commandlist.py deleted file mode 100644 index 9034789da2b..00000000000 --- a/src/utils/contrail-cli/commandlist.py +++ /dev/null @@ -1 +0,0 @@ -entry_points_dict = {} diff --git a/src/utils/contrail-cli/contrail_analytics_cli/SConscript b/src/utils/contrail-cli/contrail_analytics_cli/SConscript index 7c2249dab9a..897cfae38d5 100644 --- a/src/utils/contrail-cli/contrail_analytics_cli/SConscript +++ b/src/utils/contrail-cli/contrail_analytics_cli/SConscript @@ -1,6 +1,5 @@ -# -*- mode: python; -*- # -# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. # Import('BuildEnv') diff --git a/src/utils/contrail-cli/contrail_analytics_cli/commandlist.py b/src/utils/contrail-cli/contrail_analytics_cli/commandlist.py index e69de29bb2d..66323518c5e 100644 --- a/src/utils/contrail-cli/contrail_analytics_cli/commandlist.py +++ b/src/utils/contrail-cli/contrail_analytics_cli/commandlist.py @@ -0,0 +1,3 @@ +# +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. +# diff --git a/src/utils/contrail-cli/contrail_analytics_cli/entry_points.py b/src/utils/contrail-cli/contrail_analytics_cli/entry_points.py index 6e04902647b..1f2bbc726d7 100644 --- a/src/utils/contrail-cli/contrail_analytics_cli/entry_points.py +++ b/src/utils/contrail-cli/contrail_analytics_cli/entry_points.py @@ -1 +1,5 @@ +# +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. +# + entry_points_dict = dict() diff --git a/src/utils/contrail-cli/contrail_analytics_cli/main.py b/src/utils/contrail-cli/contrail_analytics_cli/main.py index 7b24c1be924..38d3ed38134 100644 --- a/src/utils/contrail-cli/contrail_analytics_cli/main.py +++ b/src/utils/contrail-cli/contrail_analytics_cli/main.py @@ -1,3 +1,6 @@ +# +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. +# from ContrailCli.main import ContrailCliApp from commandlist import commands_list import sys, os diff --git a/src/utils/contrail-cli/contrail_analytics_cli/setup.py b/src/utils/contrail-cli/contrail_analytics_cli/setup.py index a5c76e76bf2..ef48765370c 100755 --- a/src/utils/contrail-cli/contrail_analytics_cli/setup.py +++ b/src/utils/contrail-cli/contrail_analytics_cli/setup.py @@ -1,21 +1,20 @@ -#!/usr/bin/env python +# +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. +# PROJECT = 'ContrailAnalyticsCli' VERSION = '0.1' -from setuptools import setup, find_packages +from setuptools import setup from entry_points import entry_points_dict setup( name=PROJECT, version=VERSION, - description='Contrail Analytics Command Line Interfae', + description='Contrail Analytics Command Line Interface', platforms=['Any'], install_requires=['cliff>=2.2.0'], - packages=find_packages(), - package_data={'': ['*.html', '*.css', '*.xml']}, - include_package_data=True, entry_points=entry_points_dict, zip_safe=False, ) diff --git a/src/utils/contrail-cli/contrail_cli/SConscript b/src/utils/contrail-cli/contrail_cli/SConscript index 688cc0d3e47..dd78403a2e6 100644 --- a/src/utils/contrail-cli/contrail_cli/SConscript +++ b/src/utils/contrail-cli/contrail_cli/SConscript @@ -1,6 +1,5 @@ -# -*- mode: python; -*- # -# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. # Import('BuildEnv') diff --git a/src/utils/contrail-cli/contrail_cli/commandlist.py b/src/utils/contrail-cli/contrail_cli/commandlist.py index e69de29bb2d..66323518c5e 100644 --- a/src/utils/contrail-cli/contrail_cli/commandlist.py +++ b/src/utils/contrail-cli/contrail_cli/commandlist.py @@ -0,0 +1,3 @@ +# +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. +# diff --git a/src/utils/contrail-cli/contrail_cli/commandmanager.py b/src/utils/contrail-cli/contrail_cli/commandmanager.py index d8f3a0d4cc1..0b783100b68 100644 --- a/src/utils/contrail-cli/contrail_cli/commandmanager.py +++ b/src/utils/contrail-cli/contrail_cli/commandmanager.py @@ -15,15 +15,11 @@ """Modify cliff.CommandManager""" -import logging import pkg_resources import cliff.commandmanager from cliff.commandmanager import EntryPointWrapper -LOG = logging.getLogger(__name__) - - class CommandManager(cliff.commandmanager.CommandManager): """Add additional functionality to cliff.CommandManager diff --git a/src/utils/contrail-cli/contrail_cli/contrailCli.py b/src/utils/contrail-cli/contrail_cli/contrailCli.py index 68483103e7e..bd473a2d50f 100755 --- a/src/utils/contrail-cli/contrail_cli/contrailCli.py +++ b/src/utils/contrail-cli/contrail_cli/contrailCli.py @@ -1,9 +1,12 @@ +# +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. +# + import sys if 'threading' in sys.modules: del sys.modules['threading'] from opserver.opserver_util import OpServerUtils import json -import subprocess from cliff.command import Command import xmltodict import requests @@ -29,23 +32,23 @@ def get_description(self, cmd_name=None): if cmd_name == None: return for command in self.cmd_list: - if cmd_name in command[1].keys(): - return command[1].values()[0].keys()[0] + if cmd_name == command.cli_name: + return command.cli_help return #end get_description + def _add_fields_to_parser(self, parser, command): + for fields in command.cli_params: + parser.add_argument("--"+fields.param_name, nargs=1, help=fields.param_help, metavar='\b') + #end _add_fields_to_parser + def get_parser(self, prog_name): self.prog_name = prog_name parser = super(ContrailCli, self).get_parser(prog_name) - cmd_name = None - if self.cmd_name: - cmd_name = '_'.join(self.cmd_name.split(' ')) cmd_name = self.cmd_name for command in self.cmd_list: - if cmd_name in command[1].keys(): - for fields in command[1].values()[0].values(): - for args in fields: - parser.add_argument("--"+args[0], nargs=1, help=args[1], metavar='\b') + if cmd_name == command.cli_name: + self._add_fields_to_parser(parser, command) return parser def set_http_port(self, port, http_ip): @@ -55,29 +58,31 @@ def set_http_port(self, port, http_ip): def set_cmd_list(self, cmd_list): self.cmd_list = cmd_list - def take_action(self, parsed_args): + def _prepare_query_url(self, parsed_args, command): ip_addr = self.http_ip http_port = self.http_port + url = "http://" + ip_addr + ":" + http_port + "/Snh_" + command.struct_name + arg_count = 0 + for params in command.cli_params: + if arg_count > 0: + url = url + "&" + else: + url = url + "?" + url = url + params.param_name + "=" + if hasattr(parsed_args, params.param_name) == True: + if getattr(parsed_args, params.param_name) != None: + url = url + getattr(parsed_args, params.param_name)[0] + arg_count = arg_count + 1 + return url + #end _prepare_query_url + + def take_action(self, parsed_args): cmd_name = self.cmd_name for command in self.cmd_list: - if cmd_name in command[1].keys(): - tab_url = "http://" + ip_addr + ":" +\ - http_port + "/Snh_" + command[0].encode("utf-8") - arg_count = 0 - if len(command[1].values()[0].values()): - tab_url = tab_url + "?" - for params in command[1].values()[0].values(): - for args in params: - args[0] = args[0].encode("utf-8") - if arg_count > 0: - tab_url = tab_url + "&" - tab_url = tab_url + args[0] + "=" - if hasattr(parsed_args, args[0]) == True: - if getattr(parsed_args, args[0]) != None: - tab_url = tab_url + getattr(parsed_args, args[0])[0] - arg_count = arg_count + 1 - tables = self.web_invoke(tab_url) - if tables: - doc = xmltodict.parse(tables) - OpServerUtils.messages_dict_scrub(doc) - print json.dumps(doc, indent=4) + if cmd_name == command.cli_name: + url = self._prepare_query_url(parsed_args, command) + result = self.web_invoke(url) + if result: + output = xmltodict.parse(result) + OpServerUtils.messages_dict_scrub(output) + print json.dumps(output, indent=4) diff --git a/src/utils/contrail-cli/contrail_cli/entry_points.py b/src/utils/contrail-cli/contrail_cli/entry_points.py index 6e04902647b..1f2bbc726d7 100644 --- a/src/utils/contrail-cli/contrail_cli/entry_points.py +++ b/src/utils/contrail-cli/contrail_cli/entry_points.py @@ -1 +1,5 @@ +# +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. +# + entry_points_dict = dict() diff --git a/src/utils/contrail-cli/contrail_cli/help.py b/src/utils/contrail-cli/contrail_cli/help.py index 938e48645c3..b0c2b8c3a87 100644 --- a/src/utils/contrail-cli/contrail_cli/help.py +++ b/src/utils/contrail-cli/contrail_cli/help.py @@ -1,7 +1,11 @@ +# +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. +# + import argparse import sys -import traceback -import os +from prettytable import PrettyTable +from prettytable import PLAIN_COLUMNS from cliff.command import Command @@ -15,21 +19,21 @@ class HelpAction(argparse.Action): """ def __call__(self, parser, namespace, commands, option_string=None): - rows, columns = os.popen('stty size', 'r').read().split() app = self.default app.stdout.write('\nCommands:\n') command_manager = app.command_manager + table = PrettyTable(["cli_name", "cli_help"]) + table.set_style(PLAIN_COLUMNS) + table.border = False + table.header = False + table.align = "l" + table.left_padding_width = 2 for name, ep in sorted(command_manager): if name == "complete": continue for command in commands: - if name in command[1].keys(): - one_liner = command[1].values()[0].keys()[0] - if len(name) > 35: - app.stdout.write('%s\n' % (name)) - app.stdout.write(' %s\n' % (one_liner)) - elif 35 + len(one_liner) > columns: - app.stdout.write('%s\n' % (name)) - app.stdout.write(' %s\n' % (one_liner)) - else: - app.stdout.write(' %-33s %s\n' % (name, one_liner)) + if name == command.cli_name: + one_liner = command.cli_help + table.add_row([name, one_liner]) + break + app.stdout.write('%s\n' %table) diff --git a/src/utils/contrail-cli/contrail_cli/main.py b/src/utils/contrail-cli/contrail_cli/main.py old mode 100755 new mode 100644 index f141f771320..e3e936889cb --- a/src/utils/contrail-cli/contrail_cli/main.py +++ b/src/utils/contrail-cli/contrail_cli/main.py @@ -1,12 +1,22 @@ +# +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. +# + import sys import argparse import inspect from cliff.app import App +import logging +logging.basicConfig() from .contrailCli import ContrailCli from .help import HelpAction from .commandmanager import CommandManager from sandesh_common.vns.constants import ServiceHttpPortMap +from collections import namedtuple +cli_mapping = namedtuple("cli_mapping", ("struct_name", "cli_name", + "cli_help", "cli_params")) +cli_params = namedtuple("cli_params", ("param_name", "param_help")) class ContrailCliApp(App): @@ -17,9 +27,20 @@ def __init__(self, commands_list): command_manager=CommandManager(self.NAME), deferred_help=True, ) - self.cmd_list = commands_list + self.cmd_list = [] + for command in commands_list: + cps_list = [] + for fields in command[1].values()[0].values(): + for args in fields: + cps = cli_params(param_name=args[0], param_help=args[1]) + cps_list.append(cps) + scm = cli_mapping(struct_name=command[0], + cli_name=command[1].keys()[0], + cli_help=command[1].values()[0].keys()[0], + cli_params=cps_list) + self.cmd_list.append(scm) for command in self.cmd_list: - self.command_manager.add_command(command[1].keys()[0], None) + self.command_manager.add_command(command.cli_name, None) self.command_manager.del_command('help') self.port = None self.mod_name = self.NAME @@ -30,7 +51,7 @@ def __init__(self, commands_list): self.port = ServiceHttpPortMap[self.mod_name] if self.port == None: print "No port specified, exiting" - exit(0) + exit(-1) def run_subcommand(self, argv): try: @@ -58,7 +79,6 @@ def run_subcommand(self, argv): cmd.set_http_port(self.port if self.options.http_server_port is None else self.options.http_server_port, self.options.http_server_ip) cmd.set_cmd_list(self.cmd_list) - result = 1 self.prepare_to_run_command(cmd) full_name = (cmd_name if self.interactive_mode @@ -100,7 +120,7 @@ def get_matching_commands(self, cmd): """ all_cmds = [] for command in self.cmd_list: - all_cmds.append(command[1].keys()[0]) + all_cmds.append(command.cli_name) dist = [] for candidate in sorted(all_cmds): if candidate.startswith(cmd): @@ -109,8 +129,9 @@ def get_matching_commands(self, cmd): return dist def clean_up(self, cmd, result, err): - if err: - self.LOG.debug('got an error: %s', err) + if result: + self.LOG.error('got an error: %s while executing cmd %s, \ + exception %s', result, cmd.cmd_name, err) def build_option_parser(self, description, version, argparse_kwargs=None): diff --git a/src/utils/contrail-cli/contrail_cli/setup.py b/src/utils/contrail-cli/contrail_cli/setup.py index bce456a45ac..2a35dcfd3d5 100755 --- a/src/utils/contrail-cli/contrail_cli/setup.py +++ b/src/utils/contrail-cli/contrail_cli/setup.py @@ -1,21 +1,20 @@ -#!/usr/bin/env python +# +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. +# PROJECT = 'ContrailCli' VERSION = '0.1' -from setuptools import setup, find_packages +from setuptools import setup from entry_points import entry_points_dict setup( name=PROJECT, version=VERSION, - description='Contrail Command Line Interfae', + description='Contrail Command Line Interface', platforms=['Any'], install_requires=['cliff>=2.2.0'], - packages=find_packages(), - package_data={'': ['*.html', '*.css', '*.xml']}, - include_package_data=True, entry_points=entry_points_dict, zip_safe=False, ) diff --git a/src/utils/contrail-cli/contrail_config_cli/SConscript b/src/utils/contrail-cli/contrail_config_cli/SConscript index 363c6641c4e..9d63da021ce 100644 --- a/src/utils/contrail-cli/contrail_config_cli/SConscript +++ b/src/utils/contrail-cli/contrail_config_cli/SConscript @@ -1,6 +1,5 @@ -# -*- mode: python; -*- # -# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. # Import('BuildEnv') diff --git a/src/utils/contrail-cli/contrail_config_cli/commandlist.py b/src/utils/contrail-cli/contrail_config_cli/commandlist.py index e69de29bb2d..9bdf6c65a60 100644 --- a/src/utils/contrail-cli/contrail_config_cli/commandlist.py +++ b/src/utils/contrail-cli/contrail_config_cli/commandlist.py @@ -0,0 +1,4 @@ +# +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. +# + diff --git a/src/utils/contrail-cli/contrail_config_cli/entry_points.py b/src/utils/contrail-cli/contrail_config_cli/entry_points.py index 6e04902647b..1f2bbc726d7 100644 --- a/src/utils/contrail-cli/contrail_config_cli/entry_points.py +++ b/src/utils/contrail-cli/contrail_config_cli/entry_points.py @@ -1 +1,5 @@ +# +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. +# + entry_points_dict = dict() diff --git a/src/utils/contrail-cli/contrail_config_cli/main.py b/src/utils/contrail-cli/contrail_config_cli/main.py index e6dc02f5a4d..b0fea849b9e 100644 --- a/src/utils/contrail-cli/contrail_config_cli/main.py +++ b/src/utils/contrail-cli/contrail_config_cli/main.py @@ -1,3 +1,7 @@ +# +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. +# + from ContrailCli.main import ContrailCliApp from commandlist import commands_list import sys, os diff --git a/src/utils/contrail-cli/contrail_config_cli/setup.py b/src/utils/contrail-cli/contrail_config_cli/setup.py index 576200e40b4..5302930cf35 100755 --- a/src/utils/contrail-cli/contrail_config_cli/setup.py +++ b/src/utils/contrail-cli/contrail_config_cli/setup.py @@ -1,21 +1,20 @@ -#!/usr/bin/env python +# +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. +# PROJECT = 'ContrailConfigCli' VERSION = '0.1' -from setuptools import setup, find_packages +from setuptools import setup from entry_points import entry_points_dict setup( name=PROJECT, version=VERSION, - description='Contrail Config Command Line Interfae', + description='Contrail Config Command Line Interface', platforms=['Any'], install_requires=['cliff>=2.2.0'], - packages=find_packages(), - package_data={'': ['*.html', '*.css', '*.xml']}, - include_package_data=True, entry_points=entry_points_dict, zip_safe=False, ) diff --git a/src/utils/contrail-cli/contrail_control_cli/SConscript b/src/utils/contrail-cli/contrail_control_cli/SConscript index 8ea63412e73..7efb5413a08 100644 --- a/src/utils/contrail-cli/contrail_control_cli/SConscript +++ b/src/utils/contrail-cli/contrail_control_cli/SConscript @@ -1,6 +1,5 @@ -# -*- mode: python; -*- # -# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. # Import('BuildEnv') diff --git a/src/utils/contrail-cli/contrail_control_cli/commandlist.py b/src/utils/contrail-cli/contrail_control_cli/commandlist.py index e69de29bb2d..66323518c5e 100644 --- a/src/utils/contrail-cli/contrail_control_cli/commandlist.py +++ b/src/utils/contrail-cli/contrail_control_cli/commandlist.py @@ -0,0 +1,3 @@ +# +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. +# diff --git a/src/utils/contrail-cli/contrail_control_cli/entry_points.py b/src/utils/contrail-cli/contrail_control_cli/entry_points.py index 6e04902647b..9bbc0552875 100644 --- a/src/utils/contrail-cli/contrail_control_cli/entry_points.py +++ b/src/utils/contrail-cli/contrail_control_cli/entry_points.py @@ -1 +1,4 @@ +# +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. +# entry_points_dict = dict() diff --git a/src/utils/contrail-cli/contrail_control_cli/main.py b/src/utils/contrail-cli/contrail_control_cli/main.py index 339a4871715..3583d6b78bc 100644 --- a/src/utils/contrail-cli/contrail_control_cli/main.py +++ b/src/utils/contrail-cli/contrail_control_cli/main.py @@ -1,3 +1,6 @@ +# +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. +# from ContrailCli.main import ContrailCliApp from commandlist import commands_list import sys, os diff --git a/src/utils/contrail-cli/contrail_control_cli/setup.py b/src/utils/contrail-cli/contrail_control_cli/setup.py index 4bceb510c57..7f4726b5c10 100755 --- a/src/utils/contrail-cli/contrail_control_cli/setup.py +++ b/src/utils/contrail-cli/contrail_control_cli/setup.py @@ -1,21 +1,20 @@ -#!/usr/bin/env python +# +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. +# PROJECT = 'ContrailControlCli' VERSION = '0.1' -from setuptools import setup, find_packages +from setuptools import setup from entry_points import entry_points_dict setup( name=PROJECT, version=VERSION, - description='Contrail Control Command Line Interfae', + description='Contrail Control Command Line Interface', platforms=['Any'], install_requires=['cliff>=2.2.0'], - packages=find_packages(), - package_data={'': ['*.html', '*.css', '*.xml']}, - include_package_data=True, entry_points=entry_points_dict, zip_safe=False, ) diff --git a/src/utils/contrail-cli/contrail_vrouter_cli/SConscript b/src/utils/contrail-cli/contrail_vrouter_cli/SConscript index f983fd95606..5bb1c46b783 100644 --- a/src/utils/contrail-cli/contrail_vrouter_cli/SConscript +++ b/src/utils/contrail-cli/contrail_vrouter_cli/SConscript @@ -1,6 +1,5 @@ -# -*- mode: python; -*- # -# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. # Import('BuildEnv') diff --git a/src/utils/contrail-cli/contrail_vrouter_cli/commandlist.py b/src/utils/contrail-cli/contrail_vrouter_cli/commandlist.py index e69de29bb2d..66323518c5e 100644 --- a/src/utils/contrail-cli/contrail_vrouter_cli/commandlist.py +++ b/src/utils/contrail-cli/contrail_vrouter_cli/commandlist.py @@ -0,0 +1,3 @@ +# +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. +# diff --git a/src/utils/contrail-cli/contrail_vrouter_cli/entry_points.py b/src/utils/contrail-cli/contrail_vrouter_cli/entry_points.py index 6e04902647b..9bbc0552875 100644 --- a/src/utils/contrail-cli/contrail_vrouter_cli/entry_points.py +++ b/src/utils/contrail-cli/contrail_vrouter_cli/entry_points.py @@ -1 +1,4 @@ +# +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. +# entry_points_dict = dict() diff --git a/src/utils/contrail-cli/contrail_vrouter_cli/main.py b/src/utils/contrail-cli/contrail_vrouter_cli/main.py index 7070a80c429..a36a08d7c97 100644 --- a/src/utils/contrail-cli/contrail_vrouter_cli/main.py +++ b/src/utils/contrail-cli/contrail_vrouter_cli/main.py @@ -1,3 +1,6 @@ +# +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. +# from ContrailCli.main import ContrailCliApp from commandlist import commands_list import sys, os diff --git a/src/utils/contrail-cli/contrail_vrouter_cli/setup.py b/src/utils/contrail-cli/contrail_vrouter_cli/setup.py index 709240b8768..5f14fe5cabc 100755 --- a/src/utils/contrail-cli/contrail_vrouter_cli/setup.py +++ b/src/utils/contrail-cli/contrail_vrouter_cli/setup.py @@ -1,21 +1,20 @@ -#!/usr/bin/env python +# +# Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. +# PROJECT = 'ContrailVrouterCli' VERSION = '0.1' -from setuptools import setup, find_packages +from setuptools import setup from entry_points import entry_points_dict setup( name=PROJECT, version=VERSION, - description='Contrail Vrouter Command Line Interfae', + description='Contrail Vrouter Command Line Interface', platforms=['Any'], install_requires=['cliff>=2.2.0'], - packages=find_packages(), - package_data={'': ['*.html', '*.css', '*.xml']}, - include_package_data=True, entry_points=entry_points_dict, zip_safe=False, )