summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryuyang <Gabriel.yuyang@huawei.com>2016-11-26 23:07:41 +0800
committeryuyang <Gabriel.yuyang@huawei.com>2016-11-28 19:29:38 +0800
commit7aaf17f0cfbcfcf12cb2e0424d9f3603b11431c3 (patch)
treea4198d071f59313263d7df1603c5201d3569b51c
parentcefb61eb31acce1c04cf31c42a7b17fd9d00a5b5 (diff)
Add CLI framework for Bottlenecks
JIRA: BOTTLENECK-65 Adding cli framwork for Bottlenecks. Usage: bottlenecks testcase run <testcase> 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 <Gabriel.yuyang@huawei.com>
-rw-r--r--__init__.py0
-rw-r--r--cli/__init__.py0
-rw-r--r--cli/bottlenecks_cli.py43
-rw-r--r--cli/command_group/__init__.py0
-rw-r--r--cli/command_group/testcase.py26
-rw-r--r--cli/setup.py26
-rw-r--r--setup.py29
7 files changed, 124 insertions, 0 deletions
diff --git a/__init__.py b/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/__init__.py
diff --git a/cli/__init__.py b/cli/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/cli/__init__.py
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 <testcase>
+ """
+ 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
--- /dev/null
+++ b/cli/command_group/__init__.py
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
+ ''',
+)
+
diff --git a/setup.py b/setup.py
new file mode 100644
index 00000000..38b8546b
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,29 @@
+#!/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, find_packages
+
+
+setup(
+ name="bottlenecks",
+ version="master",
+ py_modules=['bottlenecks_cli'],
+ packages=find_packages(),
+ include_package_data=True,
+ package_data={
+ },
+ url="https://www.opnfv.org",
+ install_requires=["click"],
+ entry_points={
+ 'console_scripts': [
+ 'bottlenecks=cli.bottlenecks_cli:main'
+ ],
+ },
+)