From cc78db7c49dcff6d96390e31ad31870734054680 Mon Sep 17 00:00:00 2001 From: SerenaFeng Date: Thu, 13 Oct 2016 14:46:10 +0800 Subject: add CLI framework for qtip add cli framework to implement commands JIRA: QTIP-125 Change-Id: I442e9df9d3ea8443adb7a7aedd5849457dcead7e Signed-off-by: SerenaFeng --- __init__.py | 0 cli/README.rst | 11 +++++++++++ cli/__init__.py | 0 cli/cli_entry.py | 44 ++++++++++++++++++++++++++++++++++++++++++++ cli/commands/__init__.py | 0 cli/commands/cli_ansible.py | 32 ++++++++++++++++++++++++++++++++ cli/setup.py | 23 +++++++++++++++++++++++ 7 files changed, 110 insertions(+) create mode 100644 __init__.py create mode 100644 cli/README.rst create mode 100644 cli/__init__.py create mode 100644 cli/cli_entry.py create mode 100644 cli/commands/__init__.py create mode 100644 cli/commands/cli_ansible.py create mode 100644 cli/setup.py diff --git a/__init__.py b/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/cli/README.rst b/cli/README.rst new file mode 100644 index 00000000..65f4af86 --- /dev/null +++ b/cli/README.rst @@ -0,0 +1,11 @@ +QTIP CLI +======== +Note: The cli is only tested within docker + +install +------- +pip install . + +usage +----- +qtip -h diff --git a/cli/__init__.py b/cli/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/cli/cli_entry.py b/cli/cli_entry.py new file mode 100644 index 00000000..f6838f0c --- /dev/null +++ b/cli/cli_entry.py @@ -0,0 +1,44 @@ +############################################################################## +# Copyright (c) 2016 ZTE Corp and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +import click + +from cli.commands.cli_ansible import CliAnsible + +CONTEXT_SETTINGS = dict(help_option_names=['-h', '--help']) + + +@click.group(context_settings=CONTEXT_SETTINGS) +@click.version_option(version='opnfv qtip.0.1 ') +def cli(): + pass + +_ansible = CliAnsible() + + +@cli.group() +@click.pass_context +def ansible(ctx): + pass + + +@ansible.command('prepare', help="Prepares the ansible environment. " + "This step is needed run benchmarks.") +def ansible_prepare(): + _ansible.prepare() + + +@ansible.command('show', help="Shows the current ansible configuration.") +def ansible_show(): + _ansible.show() + + +@ansible.command('status', help="Checks if ansible still connects to hosts.") +def ansible_status(): + _ansible.status() diff --git a/cli/commands/__init__.py b/cli/commands/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/cli/commands/cli_ansible.py b/cli/commands/cli_ansible.py new file mode 100644 index 00000000..5919b7ac --- /dev/null +++ b/cli/commands/cli_ansible.py @@ -0,0 +1,32 @@ +############################################################################## +# Copyright (c) 2016 ZTE Corp and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +import os + +import click + +ANSIBLE_CONF = '{}/conf/ansible.cfg'.format(os.environ['HOME']) + + +class CliAnsible: + + def __init__(self): + pass + + def show(self): + click.echo("show ansible configuration") + pass + + def prepare(self): + click.echo("prepare ansible env") + pass + + def status(self): + click.echo("check connectivity") + pass diff --git a/cli/setup.py b/cli/setup.py new file mode 100644 index 00000000..1c2808b8 --- /dev/null +++ b/cli/setup.py @@ -0,0 +1,23 @@ +############################################################################## +# Copyright (c) 2016 ZTE Corp and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +from setuptools import setup + +setup( + name='qtip', + py_modules=['cli_entry'], + include_package_data=True, + install_requires=[ + 'click', + ], + entry_points=''' + [console_scripts] + qtip=cli_entry:cli + ''', +) -- cgit 1.2.3-korg