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)
"".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()
+++ /dev/null
-##############################################################################
-# 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()))
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'])
'commands'))
-class QtipCli(click.MultiCommand):
+class SubCommand(click.MultiCommand):
def list_commands(self, ctx):
rv = []
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.')
##############################################################################
-# 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
# 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')