summaryrefslogtreecommitdiffstats
path: root/dovetail/test_runner.py
diff options
context:
space:
mode:
authorxudan <xudan16@huawei.com>2018-04-25 03:35:02 -0400
committerxudan <xudan16@huawei.com>2018-05-07 02:54:02 -0400
commit27109727907de0a275946765b201fbc0bd71116f (patch)
treead8553f952bfead5b69be50d7a3f9a4290dccd80 /dovetail/test_runner.py
parente112118754bbd297de52538d003fc21273e9cf3d (diff)
Decoupling Bottlenecks Docker config items from source code
There are some special Docker setting items when creating Bottlenecks Docker Cntainers. Move the special settings to config files. Disable the function to push results to DB. JIRA: DOVETAIL-645 Change-Id: Icc033222edf74c0fe4853dede2794f4226fd4252 Signed-off-by: xudan <xudan16@huawei.com>
Diffstat (limited to 'dovetail/test_runner.py')
-rw-r--r--dovetail/test_runner.py90
1 files changed, 48 insertions, 42 deletions
diff --git a/dovetail/test_runner.py b/dovetail/test_runner.py
index 28988de8..f43b4739 100644
--- a/dovetail/test_runner.py
+++ b/dovetail/test_runner.py
@@ -118,6 +118,50 @@ class DockerRunner(object):
def save_logs(self):
pass
+ @staticmethod
+ def _render(task_template, **kwargs):
+ return jinja2.Template(task_template).render(**kwargs)
+
+ @staticmethod
+ def _add_testcase_info(testcase, config_item=None):
+ if not config_item:
+ config_item = {}
+ config_item['validate_testcase'] = testcase.validate_testcase()
+ config_item['testcase'] = testcase.name()
+ config_item['os_insecure'] = os.getenv("OS_INSECURE")
+ return config_item
+
+ def _update_config(self, testcase):
+ config_item = None
+ pod_file = os.path.join(dt_cfg.dovetail_config['config_dir'],
+ dt_cfg.dovetail_config['pod_file'])
+ config_file = os.path.join(constants.CONF_PATH, self.config_file_name)
+ pod_info = dt_utils.read_yaml_file(pod_file, self.logger)
+ task_template = dt_utils.read_plain_file(config_file, self.logger)
+ if not task_template:
+ return None
+ if pod_info:
+ try:
+ process_info = pod_info['process_info']
+ except KeyError as e:
+ process_info = None
+ else:
+ process_info = None
+ if process_info:
+ for item in process_info:
+ try:
+ if item['testcase_name'] == testcase.name():
+ config_item = self._add_testcase_info(testcase, item)
+ break
+ except KeyError as e:
+ self.logger.error('Need key {} in {}'.format(e, item))
+ if not config_item:
+ config_item = self._add_testcase_info(testcase)
+ full_task = self._render(task_template, **config_item)
+ full_task_yaml = yaml.load(full_task)
+ dt_cfg.dovetail_config.update(full_task_yaml)
+ return dt_cfg.dovetail_config
+
class FunctestRunner(DockerRunner):
@@ -156,55 +200,17 @@ class YardstickRunner(DockerRunner):
def __init__(self, testcase):
self.type = 'yardstick'
super(YardstickRunner, self).__init__(testcase)
- self._update_yardstick_config(testcase)
-
- @staticmethod
- def _render(task_template, **kwargs):
- return jinja2.Template(task_template).render(**kwargs)
-
- @staticmethod
- def _add_testcase_info(testcase, config_item=None):
- if not config_item:
- config_item = {}
- config_item['validate_testcase'] = testcase.validate_testcase()
- config_item['testcase'] = testcase.name()
- config_item['os_insecure'] = os.getenv("OS_INSECURE")
- return config_item
-
- def _update_yardstick_config(self, testcase):
- config_item = None
- pod_file = os.path.join(dt_cfg.dovetail_config['config_dir'],
- dt_cfg.dovetail_config['pod_file'])
- config_file = os.path.join(constants.CONF_PATH, self.config_file_name)
- pod_info = dt_utils.read_yaml_file(pod_file, self.logger)
- task_template = dt_utils.read_plain_file(config_file, self.logger)
- if not (pod_info and task_template):
- return None
- try:
- process_info = pod_info['process_info']
- except KeyError as e:
- process_info = None
- if process_info:
- for item in process_info:
- try:
- if item['testcase_name'] == testcase.name():
- config_item = self._add_testcase_info(testcase, item)
- break
- except KeyError as e:
- self.logger.error('Need key {} in {}'.format(e, item))
- if not config_item:
- config_item = self._add_testcase_info(testcase)
- full_task = self._render(task_template, **config_item)
- full_task_yaml = yaml.load(full_task)
- dt_cfg.dovetail_config.update(full_task_yaml)
- return dt_cfg.dovetail_config
+ self._update_config(testcase)
class BottlenecksRunner(DockerRunner):
+ config_file_name = 'bottlenecks_config.yml'
+
def __init__(self, testcase):
self.type = 'bottlenecks'
super(BottlenecksRunner, self).__init__(testcase)
+ self._update_config(testcase)
class ShellRunner(object):