summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dovetail/container.py67
-rw-r--r--dovetail/test_runner.py3
-rw-r--r--dovetail/utils/dovetail_config.py12
-rw-r--r--etc/conf/yardstick_config.yml20
-rw-r--r--etc/testcase/ha.tc011.yml3
5 files changed, 34 insertions, 71 deletions
diff --git a/dovetail/container.py b/dovetail/container.py
index b77f4919..833f1ec9 100644
--- a/dovetail/container.py
+++ b/dovetail/container.py
@@ -68,42 +68,6 @@ class Container(object):
"File {} doesn't exist.".format(dovetail_config['openrc']))
return None
- # set yardstick external network name and log volume for its container.
- # external network is necessary for yardstick.
- @classmethod
- def set_yardstick_config(cls):
- dovetail_config = dt_cfg.dovetail_config
- ext_net = dt_utils.get_ext_net_name(dovetail_config['openrc'],
- cls.logger)
- if ext_net:
- envs = "%s%s" % (" -e EXTERNAL_NETWORK=", ext_net)
- else:
- cls.logger.error("Can't find any external network.")
- return None
- insecure = os.getenv("OS_INSECURE")
- if insecure and insecure.lower() == 'true':
- envs = envs + " -e OS_CACERT=False "
-
- log_vol = '-v %s:%s ' % (dovetail_config['result_dir'],
- dovetail_config["yardstick"]['result']['log'])
-
- # for yardstick, support pod.yaml configuration
- pod_file = os.path.join(dovetail_config['config_dir'],
- dovetail_config['pod_file'])
- if not os.path.isfile(pod_file):
- cls.logger.error("File {} doesn't exist.".format(pod_file))
- return None
- key_file = os.path.join(dovetail_config['config_dir'],
- dovetail_config['pri_key'])
- key_container_path = dovetail_config["yardstick"]['result']['key_path']
- if not os.path.isfile(key_file):
- cls.logger.debug("Key file {} is not found, must use password in "
- "{} to do HA test.".format(key_file, pod_file))
- key_vol = ''
- else:
- key_vol = '-v %s:%s ' % (key_file, key_container_path)
- return "%s %s %s" % (envs, log_vol, key_vol)
-
@classmethod
def set_bottlenecks_config(cls, testcase_name):
dovetail_config = dt_cfg.dovetail_config
@@ -168,8 +132,6 @@ class Container(object):
# set_yardstick_config
# set_bottlenecks_config
config = " "
- if type.lower() == "yardstick":
- config = cls.set_yardstick_config()
if type.lower() == "bottlenecks":
config = cls.set_bottlenecks_config(testcase_name)
if type.lower() == "vnftest":
@@ -216,9 +178,7 @@ class Container(object):
" | awk '{print $1}' | head -1", cls.logger)
cls.container_list[type] = container_id
- if type.lower() == 'yardstick':
- cls.set_yardstick_conf_file(container_id)
- elif type.lower() == 'vnftest':
+ if type.lower() == 'vnftest':
cls.set_vnftest_conf_file(container_id)
return container_id
@@ -309,8 +269,8 @@ class Container(object):
return dt_utils.exec_cmd(cmd, cls.logger, exit_on_error)
@classmethod
- def pre_copy(cls, container_id, src_path, dest_path,
- exit_on_error=False):
+ def copy_file(cls, container_id, src_path, dest_path,
+ exit_on_error=False):
if not src_path or not dest_path:
return (1, 'src_path or dest_path is empty')
cmd = 'cp %s %s' % (src_path, dest_path)
@@ -324,19 +284,14 @@ class Container(object):
return dt_utils.exec_cmd(cmd, cls.logger)
@classmethod
- def set_yardstick_conf_file(cls, container_id):
- valid_type = 'yardstick'
- src = dt_cfg.dovetail_config[valid_type]['yard_conf']['src_file']
- dest = dt_cfg.dovetail_config[valid_type]['yard_conf']['dest_file']
- cls.pre_copy(container_id, src, dest)
- url = dt_cfg.dovetail_config['report_dest']
- if url.startswith("http"):
- cmd = ("sed -i '17s#http://127.0.0.1:8000/results#{}#g' {}"
- .format(url, dest))
- cls.exec_cmd(container_id, cmd)
- if url.lower() == 'file':
- cmd = ("sed -i '13s/http/file/g' {}".format(dest))
- cls.exec_cmd(container_id, cmd)
+ def copy_files_in_container(cls, valid_type, container_id):
+ project_config = dt_cfg.dovetail_config[valid_type]
+ if 'copy_file_in_container' not in project_config.keys():
+ return
+ if not project_config['copy_file_in_container']:
+ return
+ for item in project_config['copy_file_in_container']:
+ cls.copy_file(container_id, item['src_file'], item['dest_file'])
@classmethod
def set_vnftest_conf_file(cls, container_id):
diff --git a/dovetail/test_runner.py b/dovetail/test_runner.py
index b059047f..fbc33b6f 100644
--- a/dovetail/test_runner.py
+++ b/dovetail/test_runner.py
@@ -47,7 +47,7 @@ class DockerRunner(object):
file_path = dt_cfg.dovetail_config[self.type]['config']['dir']
src_path = os.path.join(file_path, 'pre_config', exist_file)
- Container.pre_copy(container_id, src_path, dest_path)
+ Container.copy_file(container_id, src_path, dest_path)
return dest_path
def run(self):
@@ -166,6 +166,7 @@ class YardstickRunner(DockerRunner):
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):
diff --git a/dovetail/utils/dovetail_config.py b/dovetail/utils/dovetail_config.py
index 316be312..37a20dbe 100644
--- a/dovetail/utils/dovetail_config.py
+++ b/dovetail/utils/dovetail_config.py
@@ -67,12 +67,16 @@ class DovetailConfig(object):
@classmethod
def get_opts(cls, valid_type):
- if 'opts' in cls.dovetail_config[valid_type].keys():
- return cls.dovetail_config[valid_type]['opts']
+ project_config = cls.dovetail_config[valid_type]
+ if 'opts' in project_config.keys():
+ if project_config['opts']:
+ return project_config['opts']
return ""
@classmethod
def get_envs(cls, valid_type):
- if 'envs' in cls.dovetail_config[valid_type].keys():
- return cls.dovetail_config[valid_type]['envs']
+ project_config = cls.dovetail_config[valid_type]
+ if 'envs' in project_config.keys():
+ if project_config['envs']:
+ return project_config['envs']
return ""
diff --git a/etc/conf/yardstick_config.yml b/etc/conf/yardstick_config.yml
index 1b924d85..6e09c271 100644
--- a/etc/conf/yardstick_config.yml
+++ b/etc/conf/yardstick_config.yml
@@ -4,31 +4,35 @@
{% set attack_process = attack_process or '' %}
{% set validate_testcase = validate_testcase or '' %}
{% set testcase = testcase or '' %}
+{% set os_insecure = os_insecure or 'False' %}
+{% set os_cacert = '' %}
+{% if os_insecure == 'True' %}
+ {% set os_cacert = ' -e OS_CACERT=False ' %}
+{% endif %}
yardstick:
image_name: opnfv/yardstick
docker_tag: opnfv-5.1.0
opts: '-id --privileged=true'
+ envs: {{os_cacert}}
config:
dir: '/home/opnfv/userconfig'
pre_condition:
- 'echo this is pre_condition'
cmds:
- - 'mkdir -p /home/opnfv/yardstick/results/'
- "cd /home/opnfv/repos/yardstick && source /etc/yardstick/openstack.creds &&
yardstick task start tests/opnfv/test_cases/{{validate_testcase}}.yaml
- --output-file /home/opnfv/yardstick/results/{{testcase}}.out
+ --output-file /tmp/yardstick/{{testcase}}.out
--task-args '{'file': '/home/opnfv/userconfig/pre_config/pod.yaml',
'attack_host': {{attack_host}},
'attack_process': {{attack_process}}}'"
post_condition:
- 'echo this is post_condition'
result:
- dir: '/home/opnfv/yardstick/results'
- log: '/tmp/yardstick'
+ dir: '/tmp/yardstick'
file_path: 'yardstick.log'
- key_path: '/root/.ssh/id_rsa'
openrc: '/etc/yardstick/openstack.creds'
- yard_conf:
- src_file: '/home/opnfv/repos/yardstick/etc/yardstick/yardstick.conf.sample'
- dest_file: '/etc/yardstick/yardstick.conf'
+ copy_file_in_container:
+ -
+ src_file: 'pre_config/id_rsa'
+ dest_file: '/root/.ssh/id_rsa'
diff --git a/etc/testcase/ha.tc011.yml b/etc/testcase/ha.tc011.yml
index e7e67e75..7f5a7d4b 100644
--- a/etc/testcase/ha.tc011.yml
+++ b/etc/testcase/ha.tc011.yml
@@ -10,10 +10,9 @@ dovetail.ha.tc011:
--disk-format qcow2 --container-format bare --public
--file /home/opnfv/userconfig/images/cirros-0.3.5-x86_64-disk.img'
cmds:
- - 'mkdir -p /home/opnfv/yardstick/results/'
- "cd /home/opnfv/repos/yardstick && source /etc/yardstick/openstack.creds &&
yardstick task start tests/opnfv/test_cases/{{validate_testcase}}.yaml
- --output-file /home/opnfv/yardstick/results/{{testcase}}.out
+ --output-file /tmp/yardstick/{{testcase}}.out
--task-args '{'file': '/home/opnfv/userconfig/pre_config/pod.yaml',
'image': 'cirros-ha-11', 'flavor': 'm1.tiny'}'"
post_condition: