summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docker/Dockerfile10
-rw-r--r--docker/supervisord.conf13
-rw-r--r--func/args_handler.py8
-rw-r--r--func/cli.py28
-rw-r--r--restful_server/qtip_server.py8
-rw-r--r--test_list/compute16
-rw-r--r--test_list/network9
-rw-r--r--test_list/storage8
-rw-r--r--tests/cli_test.py2
9 files changed, 47 insertions, 55 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 05286b09..204400cc 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -35,6 +35,7 @@ libjpeg62-dev \
zlib1g-dev \
python-tk \
curl \
+supervisor \
--no-install-recommends
RUN apt-add-repository ppa:ansible/ansible -y
@@ -60,4 +61,11 @@ RUN git clone https://gerrit.opnfv.org/gerrit/releng $REPOS_DIR/releng
RUN pip install -r $REPOS_DIR/qtip/requirements.txt
-CMD cd $REPOS_DIR/qtip && python restful_server/qtip_server.py>$HOME/qtip/logs/run.log
+#Config supervisor
+
+RUN mkdir -p /var/log/supervisor
+RUN locale-gen en_US en_US.UTF-8
+COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
+
+
+CMD ["/usr/bin/supervisord"]
diff --git a/docker/supervisord.conf b/docker/supervisord.conf
new file mode 100644
index 00000000..35d16c7e
--- /dev/null
+++ b/docker/supervisord.conf
@@ -0,0 +1,13 @@
+[supervisord]
+nodaemon=true
+
+[program:qtip_server]
+command=bash -c "cd $REPOS_DIR/qtip&&python restful_server/qtip_server.py"
+numprocs=1
+autostart=true
+autorestart=true
+user=root
+environment=INSTALLER_TYPE="%(ENV_INSTALLER_TYPE)s",INSTALLER_IP="%(ENV_INSTALLER_IP)s",NODE_NAME="%(ENV_NODE_NAME)s"
+stdout_logfile=/var/log/supervisor/%(program_name)s.log
+stderr_logfile=/var/log/supervisor/%(program_name)s.log
+
diff --git a/func/args_handler.py b/func/args_handler.py
index 59712800..2f7c8957 100644
--- a/func/args_handler.py
+++ b/func/args_handler.py
@@ -14,8 +14,8 @@ from func.spawn_vm import SpawnVM
from func.driver import Driver
-def get_files_in_test_list(suite_name, case_type='all'):
- benchmark_list = json.load(file('test_list/{0}'.format(suite_name)))
+def get_files_in_suite(suite_name, case_type='all'):
+ benchmark_list = json.load(file('benchmarks/suite/{0}'.format(suite_name)))
return reduce(add, benchmark_list.values()) \
if case_type == 'all' else benchmark_list[case_type]
@@ -30,8 +30,8 @@ def get_benchmark_path(lab, suit, benchmark):
return './test_cases/{0}/{1}/{2}'.format(lab, suit, benchmark)
-def check_suite_in_test_list(suite_name):
- return True if os.path.isfile('test_list/' + suite_name) else False
+def check_suite(suite_name):
+ return True if os.path.isfile('benchmarks/suite/' + suite_name) else False
def check_lab_name(lab_name):
diff --git a/func/cli.py b/func/cli.py
index d914a2de..c5f5d2b7 100644
--- a/func/cli.py
+++ b/func/cli.py
@@ -11,6 +11,9 @@ import sys
import os
import args_handler
import argparse
+from utils import logger_utils
+
+logger = logger_utils.QtipLogger('cli').get
class Cli:
@@ -26,40 +29,41 @@ class Cli:
' The user should list default after -l . all the fields in'
' the files are necessary and should be filled')
parser.add_argument('-f', '--file', required=True, help='File in '
- 'test_list with the list of tests. there are three files'
+ 'benchmarks/suite/ with the list of tests. there are three files'
'\n compute '
'\n storage '
'\n network '
'They contain all the tests that will be run. They are listed by suite.'
'Please ensure there are no empty lines')
parser.add_argument('-b', '--benchmark', help='Name of the benchmark.'
- 'Can be found in test_lists/file_name')
+ 'Can be found in benchmarks/suite/file_name')
return parser.parse_args(args)
def __init__(self, args=sys.argv[1:]):
args = self._parse_args(args)
- if not args_handler.check_suite_in_test_list(args.file):
- print('\n\n ERROR: Test File Does not exist in test_list/ please enter correct file \n\n')
+ if not args_handler.check_suite(args.file):
+ logger.error("ERROR: This suite file doesn't exist under benchmarks/suite/.\
+ Please enter correct file." % str(args.file))
sys.exit(1)
if not args_handler.check_lab_name(args.lab):
- print('\n\n You have specified a lab that is not present in test_cases/ please enter \
- correct file. If unsure how to proceed, use -l default.\n\n')
+ logger.error("You have specified a lab that is not present under test_cases/.\
+ Please enter correct file. If unsure how to proceed, use -l default.")
sys.exit(1)
suite = args.file
- benchmarks = args_handler.get_files_in_test_list(suite)
+ benchmarks = args_handler.get_files_in_suite(suite)
test_cases = args_handler.get_files_in_test_case(args.lab, suite)
benchmarks_list = filter(lambda x: x in test_cases, benchmarks)
if args.benchmark:
if not args_handler.check_benchmark_name(args.lab, args.file, args.benchmark):
- print('\n\n You have specified an incorrect benchmark. Please'
- 'enter the correct one.\n\n')
+ logger.error("You have specified an incorrect benchmark.\
+ Please enter the correct one.")
sys.exit(1)
else:
- print("Starting with " + args.benchmark)
+ logger.info("Starting with " + args.benchmark)
args_handler.prepare_and_run_benchmark(
os.environ['INSTALLER_TYPE'], os.environ['PWD'],
args_handler.get_benchmark_path(args.lab.lower(), args.file, args.benchmark))
@@ -68,5 +72,5 @@ class Cli:
os.environ['INSTALLER_TYPE'], os.environ['PWD'],
args_handler.get_benchmark_path(args.lab.lower(), suite, x)), benchmarks_list)
- print('{0} is not a Template in the Directory Enter a Valid file name.'
- 'or use qtip.py -h for list'.format(filter(lambda x: x not in test_cases, benchmarks)))
+ logger.info("{0} is not a Template in the Directory Enter a Valid file name.\
+ or use qtip.py -h for list".format(filter(lambda x: x not in test_cases, benchmarks)))
diff --git a/restful_server/qtip_server.py b/restful_server/qtip_server.py
index d9dc52ad..7b55020a 100644
--- a/restful_server/qtip_server.py
+++ b/restful_server/qtip_server.py
@@ -146,8 +146,8 @@ default is all benchmarks in suite with specified type,
help='testdb_url should be test db http url,for example http://testresults.opnfv.org/test/api/v1')
parser.add_argument('node_name', type=str, required=False, default=None, help='node_name should be string')
args = parser.parse_args()
- if not args_handler.check_suite_in_test_list(args["suite_name"]):
- return abort(404, 'message:Test suite {0} does not exist in test_list'.format(args["suite_name"]))
+ if not args_handler.check_suite(args["suite_name"]):
+ return abort(404, 'message:Test suite {0} does not exist under benchmarks/suite'.format(args["suite_name"]))
if not args_handler.check_lab_name(args["pod_name"]):
return abort(404, 'message: You have specified a lab {0}\
that is not present in test_cases'.format(args['pod_name']))
@@ -156,8 +156,8 @@ default is all benchmarks in suite with specified type,
if not job_id:
return abort(409, 'message:It already has one job running now!')
- benchmarks = args_handler.get_files_in_test_list(args["suite_name"],
- args["type"].lower())
+ benchmarks = args_handler.get_files_in_suite(args["suite_name"],
+ args["type"].lower())
test_cases = args_handler.get_files_in_test_case(args["pod_name"],
args["suite_name"],
args["type"].lower())
diff --git a/test_list/compute b/test_list/compute
deleted file mode 100644
index 3bf1b184..00000000
--- a/test_list/compute
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "bm": [
- "dhrystone_bm.yaml",
- "whetstone_bm.yaml",
- "ramspeed_bm.yaml",
- "dpi_bm.yaml",
- "ssl_bm.yaml"
- ],
- "vm": [
- "dhrystone_vm.yaml",
- "whetstone_vm.yaml",
- "ramspeed_vm.yaml",
- "dpi_vm.yaml",
- "ssl_vm.yaml"
- ]
-}
diff --git a/test_list/network b/test_list/network
deleted file mode 100644
index 58ce5cb9..00000000
--- a/test_list/network
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "bm": [
- "iperf_bm.yaml"
- ],
- "vm": [
- "iperf_vm.yaml",
- "iperf_vm_2.yaml"
- ]
-}
diff --git a/test_list/storage b/test_list/storage
deleted file mode 100644
index f3068dd5..00000000
--- a/test_list/storage
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "bm": [
- "fio_bm.yaml"
- ],
- "vm": [
- "fio_vm.yaml"
- ]
-}
diff --git a/tests/cli_test.py b/tests/cli_test.py
index 43a11089..e47d99ad 100644
--- a/tests/cli_test.py
+++ b/tests/cli_test.py
@@ -13,7 +13,7 @@ class TestClass:
(['-l',
'default',
'-f',
- 'test'], "Test File Does not exist in test_list")
+ 'test'], "This suite file doesn't exist under benchmarks/suite/")
])
def test_cli_error(self, capfd, test_input, expected):
k = mock.patch.dict(os.environ, {'INSTALLER_TYPE': 'fuel', 'PWD': '/home'})