From 7aaf17f0cfbcfcf12cb2e0424d9f3603b11431c3 Mon Sep 17 00:00:00 2001 From: yuyang Date: Sat, 26 Nov 2016 23:07:41 +0800 Subject: Add CLI framework for Bottlenecks JIRA: BOTTLENECK-65 Adding cli framwork for Bottlenecks. Usage: bottlenecks testcase run Currently only the cli framwork and testcase command group is added. run, list, etc., commands and openstack command group will added afterwards. Two setup entries are added. One is within the top directory and the other is within the cli directory. Change-Id: I304f6f2e9b29b9f582953c2739806c1fb3e87fed Signed-off-by: yuyang --- cli/__init__.py | 0 cli/bottlenecks_cli.py | 43 +++++++++++++++++++++++++++++++++++++++++++ cli/command_group/__init__.py | 0 cli/command_group/testcase.py | 26 ++++++++++++++++++++++++++ cli/setup.py | 26 ++++++++++++++++++++++++++ 5 files changed, 95 insertions(+) create mode 100644 cli/__init__.py create mode 100644 cli/bottlenecks_cli.py create mode 100644 cli/command_group/__init__.py create mode 100644 cli/command_group/testcase.py create mode 100644 cli/setup.py (limited to 'cli') diff --git a/cli/__init__.py b/cli/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/cli/bottlenecks_cli.py b/cli/bottlenecks_cli.py new file mode 100644 index 00000000..0328578f --- /dev/null +++ b/cli/bottlenecks_cli.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +############################################################################## +# Copyright (c) 2016 Huawei Technologies Co.,Ltd 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 command_group.testcase import Testcase + +CONTEXT_SETTINGS = dict(help_option_names=['-h', '--help']) + + +@click.group(context_settings=CONTEXT_SETTINGS) +@click.version_option(version='0.1') +@click.pass_context +def main(ctx): + """cli for bottlenecks project + + commands: + bottlenecks testcase run + """ + pass + +_testcase = Testcase() + +@main.group() +@click.pass_context +def testcase(ctx): + """testcase cli group for bottlenecks project""" + pass + +@testcase.command('run', help="To execute a test case.") +@click.argument('testname', type=click.STRING, required=True) +@click.option('-n', '--noclean', is_flag=True, default=False, + help='Openstack resources created by the test' + 'will not be cleaned after the testcase execution.') +def testcase_run(testname, noclean): + _testcase.run(testname, noclean) diff --git a/cli/command_group/__init__.py b/cli/command_group/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/cli/command_group/testcase.py b/cli/command_group/testcase.py new file mode 100644 index 00000000..1fe0fba7 --- /dev/null +++ b/cli/command_group/testcase.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python +############################################################################## +# Copyright (c) 2016 Huawei Technologies Co.,Ltd 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 + + +class Testcase(object): + """Test command group. + + Set of commnads to execute and list testcases + """ + + def __init__(self): + self.test_case_path = '/home/opnfv/bottlenecks/testsuites/' + self.test_case_list = [] + + def run(self, testname, noclean=False): + if testname == 'posca': + os.system('bash /home/opnfv/bottlenecks/run_tests.sh -s posca') diff --git a/cli/setup.py b/cli/setup.py new file mode 100644 index 00000000..28314910 --- /dev/null +++ b/cli/setup.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python +############################################################################## +# Copyright (c) 2016 Huawei Technologies Co.,Ltd 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='bottlenecks', + version='0.1', + py_modules=['bottlenecks_cli'], + include_package_data=True, + install_requires=[ + 'click', + ], + entry_points=''' + [console_scripts] + bottlenecks=bottlenecks_cli:main + ''', +) + -- cgit 1.2.3-korg