aboutsummaryrefslogtreecommitdiffstats
path: root/qtip/cli
diff options
context:
space:
mode:
Diffstat (limited to 'qtip/cli')
-rw-r--r--qtip/cli/commands/cmd_plan.py69
-rw-r--r--qtip/cli/commands/cmd_project.py34
-rw-r--r--qtip/cli/utils.py2
3 files changed, 24 insertions, 81 deletions
diff --git a/qtip/cli/commands/cmd_plan.py b/qtip/cli/commands/cmd_plan.py
deleted file mode 100644
index b7c540b7..00000000
--- a/qtip/cli/commands/cmd_plan.py
+++ /dev/null
@@ -1,69 +0,0 @@
-##############################################################################
-# Copyright (c) 2016 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
-from colorama import Fore
-import os
-
-from qtip.base.error import InvalidContentError
-from qtip.base.error import NotFoundError
-from qtip.cli import utils
-from qtip.cli.entry import Context
-from qtip.loader.plan import Plan
-
-
-pass_context = click.make_pass_decorator(Context, ensure=False)
-
-
-@click.group()
-@pass_context
-def cli(ctx):
- ''' Bechmarking Plan '''
- pass
-
-
-@cli.command('init', help='Initialize Environment')
-@pass_context
-def init(ctx):
- pass
-
-
-@cli.command('list', help='List the Plans')
-@pass_context
-def list(ctx):
- plans = Plan.list_all()
- table = utils.table('Plans', plans)
- click.echo(table)
-
-
-@cli.command('show', help='View details of a Plan')
-@click.argument('name')
-@pass_context
-def show(ctx, name):
- try:
- plan = Plan('{}.yaml'.format(name))
- except NotFoundError as nf:
- click.echo(Fore.RED + "ERROR: plan spec: " + nf.message)
- except InvalidContentError as ice:
- click.echo(Fore.RED + "ERROR: plan spec: " + ice.message)
- else:
- cnt = plan.content
- output = utils.render('plan', cnt)
- click.echo(output)
-
-
-@cli.command('run', help='Execute a Plan')
-@click.argument('name')
-@click.option('-p', '--path', help='Path to store results')
-@pass_context
-def run(ctx, name, path):
- runner_path = os.path.join(os.path.dirname(__file__), os.path.pardir, os.path.pardir,
- 'runner/runner.py')
- os.system('python {0} -b all -d {1}'.format(runner_path, path))
diff --git a/qtip/cli/commands/cmd_project.py b/qtip/cli/commands/cmd_project.py
index 740fb1c4..f7ac3a83 100644
--- a/qtip/cli/commands/cmd_project.py
+++ b/qtip/cli/commands/cmd_project.py
@@ -39,12 +39,22 @@ def cli():
@cli.command(help="Create new testing project")
-@click.option('--pod', default='unknown', help='Name of pod under test')
-@click.option('--installer', help='OPNFV installer', default='manual')
-@click.option('--master-host', help='Installer hostname', default='dummy-host')
-@click.option('--scenario', default='unknown', help='OPNFV scenario')
+@click.option('--template',
+ prompt='Choose project template',
+ type=click.Choice(['compute', 'doctor']),
+ default='compute',
+ help='Choose project template')
+@click.option('--pod', default='unknown', prompt='Pod Name',
+ help='Name of pod under test')
+@click.option('--installer', prompt='OPNFV Installer',
+ help='OPNFV installer', default='manual')
+@click.option('--master-host', prompt='Installer Hostname',
+ help='Installer hostname', default='dummy-host')
+@click.option('--scenario', prompt='OPNFV Scenario', default='unknown',
+ help='OPNFV scenario')
@click.argument('name')
-def create(pod, installer, master_host, scenario, name):
+def create(pod, installer, master_host, scenario, name, template):
+ qtip_generator_role = os.path.join(utils.QTIP_ANSIBLE_ROLES, 'qtip-generator')
extra_vars = {
'qtip_package': utils.QTIP_PACKAGE,
'cwd': os.getcwd(),
@@ -52,14 +62,16 @@ def create(pod, installer, master_host, scenario, name):
'installer': installer,
'scenario': scenario,
'installer_master_host': master_host,
- 'workspace': name
+ 'project_name': name,
+ 'project_template': template
}
- os.system("ANSIBLE_ROLES_PATH={qtip_package}/{roles_path} ansible-playbook"
- " -i {qtip_package}/{roles_path}/qtip-workspace/hosts"
- " {qtip_package}/{roles_path}/qtip-workspace/create.yml"
+ os.system("ANSIBLE_ROLES_PATH={roles_path} ansible-playbook"
+ " -i {hosts}"
+ " {playbook}"
" --extra-vars '{extra_vars}'"
- "".format(qtip_package=utils.QTIP_PACKAGE,
- roles_path=utils.ROLES_PATH,
+ "".format(roles_path=utils.QTIP_ANSIBLE_ROLES,
+ hosts=os.path.join(qtip_generator_role, 'hosts'),
+ playbook=os.path.join(qtip_generator_role, 'main.yml'),
extra_vars=utils.join_vars(**extra_vars)))
diff --git a/qtip/cli/utils.py b/qtip/cli/utils.py
index 832e5ba9..0f0e7e95 100644
--- a/qtip/cli/utils.py
+++ b/qtip/cli/utils.py
@@ -15,7 +15,7 @@ from prettytable import PrettyTable
QTIP_PACKAGE = path.join(path.dirname(__file__), os.pardir, os.pardir)
-ROLES_PATH = 'resources/ansible_roles'
+QTIP_ANSIBLE_ROLES = path.join(QTIP_PACKAGE, 'resources', 'ansible_roles')
def join_vars(**kwargs):