aboutsummaryrefslogtreecommitdiffstats
path: root/qtip
diff options
context:
space:
mode:
authorYujun Zhang <zhang.yujunz@zte.com.cn>2017-05-13 11:15:49 +0800
committerYujun Zhang <zhang.yujunz@zte.com.cn>2017-05-15 15:16:10 +0000
commit426ad7b517f20ff8c77ed69dcd056db7d5278f18 (patch)
tree57518b7531da0ebfa6ea6436ea14c91d947abf6c /qtip
parent284cc6fe24375ad6d32cc567d0c64eedc1a4f4b7 (diff)
Refactoring workspace related commands to `project` group
- renamed `workspace` to `project`, which is more accurate - group create/setup/run/teardown into `project` - shortcut for project commands, e.g. `qtip create` <=> `qtip project create` - even shorter command alias, e.g. `qtip s` => `qtip setup` Change-Id: I69ba5aa571bccc1cc4687481189c329b099bee91 Signed-off-by: Yujun Zhang <zhang.yujunz@zte.com.cn>
Diffstat (limited to 'qtip')
-rw-r--r--qtip/cli/commands/cmd_project.py (renamed from qtip/cli/commands/cmd_workspace.py)36
-rw-r--r--qtip/cli/commands/cmd_setup.py17
-rw-r--r--qtip/cli/entry.py13
-rw-r--r--qtip/runner/project.py (renamed from qtip/cli/commands/cmd_run.py)17
4 files changed, 55 insertions, 28 deletions
diff --git a/qtip/cli/commands/cmd_workspace.py b/qtip/cli/commands/cmd_project.py
index a5b6828f..0bf7d82f 100644
--- a/qtip/cli/commands/cmd_workspace.py
+++ b/qtip/cli/commands/cmd_project.py
@@ -12,15 +12,30 @@ import click
import os
from qtip.cli import utils
+from qtip.runner import project
-@click.group()
+class AliasedGroup(click.Group):
+
+ def get_command(self, ctx, cmd_name):
+ rv = click.Group.get_command(self, ctx, cmd_name)
+ if rv is not None:
+ return rv
+ matches = [x for x in self.list_commands(ctx)
+ if x.startswith(cmd_name)]
+ if not matches:
+ return None
+ elif len(matches) == 1:
+ return click.Group.get_command(self, ctx, matches[0])
+ ctx.fail('Too many matches: %s' % ', '.join(sorted(matches)))
+
+
+@click.command(cls=AliasedGroup, help="Project commands")
def cli():
- """ Manage QTIP workspace """
pass
-@cli.command("create", help="Create QTIP workspace")
+@cli.command(help="Create new testing project")
@click.option('--pod', default='unknown', help='Name of pod under test')
@click.option('--installer', help='OPNFV installer', required=True)
@click.option('--master-host', help='Installer hostname', required=True)
@@ -43,3 +58,18 @@ def create(pod, installer, master_host, scenario, name):
"".format(qtip_package=utils.QTIP_PACKAGE,
roles_path=utils.ROLES_PATH,
extra_vars=utils.join_vars(**extra_vars)))
+
+
+@cli.command(help='Setup testing environment')
+def setup():
+ project.setup()
+
+
+@cli.command(help='Execute testing plan')
+def run():
+ project.run()
+
+
+@cli.command(help='Teardown testing environment')
+def teardown():
+ project.teardown()
diff --git a/qtip/cli/commands/cmd_setup.py b/qtip/cli/commands/cmd_setup.py
deleted file mode 100644
index ac434561..00000000
--- a/qtip/cli/commands/cmd_setup.py
+++ /dev/null
@@ -1,17 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 taseer94@gmail.com 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
-import os
-
-
-@click.command('setup', help='Setup QTIP workspace')
-def cli():
- os.system('ansible-playbook {}/setup.yml'.format(os.getcwd()))
diff --git a/qtip/cli/entry.py b/qtip/cli/entry.py
index b84a03d0..b557047d 100644
--- a/qtip/cli/entry.py
+++ b/qtip/cli/entry.py
@@ -12,6 +12,7 @@ import os
import pkg_resources as pkg
import sys
+from qtip.cli.commands.cmd_project import cli as project_commands
CONTEXT_SETTINGS = dict(help_option_names=['-h', '--help'])
@@ -28,7 +29,7 @@ cmd_folder = os.path.abspath(os.path.join(os.path.dirname(__file__),
'commands'))
-class QtipCli(click.MultiCommand):
+class SubCommand(click.MultiCommand):
def list_commands(self, ctx):
rv = []
@@ -50,7 +51,15 @@ class QtipCli(click.MultiCommand):
return mod.cli
-@click.command(cls=QtipCli, context_settings=CONTEXT_SETTINGS,
+@click.command(cls=SubCommand, context_settings=CONTEXT_SETTINGS,
+ invoke_without_command=True)
+def sub_commands(ctx, verbose, debug):
+ pass
+
+
+@click.command(cls=click.CommandCollection,
+ help="Platform performance benchmarking",
+ sources=[sub_commands, project_commands],
invoke_without_command=True)
@click.option('-v', '--verbose', is_flag=True, help='Enable verbose mode.')
@click.option('-d', '--debug', is_flag=True, help='Enable debug mode.')
diff --git a/qtip/cli/commands/cmd_run.py b/qtip/runner/project.py
index 56d416ab..9eadc9db 100644
--- a/qtip/cli/commands/cmd_run.py
+++ b/qtip/runner/project.py
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 taseer94@gmail.com and others.
+# Copyright (c) 2017 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
@@ -7,11 +7,16 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-
-import click
import os
-@click.command('run', help='Run performance tests')
-def cli():
- os.system('ansible-playbook {}/run.yml'.format(os.getcwd()))
+def setup():
+ os.system('ansible-playbook setup.yml')
+
+
+def run():
+ os.system('ansible-playbook run.yml')
+
+
+def teardown():
+ os.system('ansible-playbook teardown.yml')