summaryrefslogtreecommitdiffstats
path: root/dovetail/test_runner.py
diff options
context:
space:
mode:
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):