diff options
-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.py | 17 | ||||
-rw-r--r-- | qtip/cli/entry.py | 13 | ||||
-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') |