summaryrefslogtreecommitdiffstats
path: root/dovetail/container.py
diff options
context:
space:
mode:
authorxudan <xudan16@huawei.com>2017-04-27 14:16:12 +0000
committerxudan <xudan16@huawei.com>2017-04-27 14:36:34 +0000
commit434cfad3103b8871f5eb22ceb3a2c7526b312383 (patch)
tree657d5241a16cb1456d64e1be39a2ba753bc444db /dovetail/container.py
parentb8722fae5e61ca71a43f3d69d1d093906b140bbe (diff)
support HA test cases to run with key
JIRA: DOVETAIL-409 1. HA test cases need a file pod.yaml, in this file it can use the password or the key. 2. If use key, Dovetail need to pass the key file $DOVETAIL_HOME/dovetail/userconfig/id_rsa to yardstick Container. 3. Add a directory $DOVETAIL_HOME/dovetail/userconfig and a sample_pod.yaml 4. ha.tc001 tc003 tc005 tc006 tc009 are ready. Change-Id: I391cc211dba2cf0740dd0dcaee8a5c2d712eaee1 Signed-off-by: xudan <xudan16@huawei.com>
Diffstat (limited to 'dovetail/container.py')
-rw-r--r--dovetail/container.py17
1 files changed, 12 insertions, 5 deletions
diff --git a/dovetail/container.py b/dovetail/container.py
index 8e032c75..5c128c0b 100644
--- a/dovetail/container.py
+++ b/dovetail/container.py
@@ -76,7 +76,8 @@ class Container(object):
file_path = os.path.join(func_res_conf['dir'],
func_res_conf['file_path'])
report = " -e TEST_DB_URL=file://%s " % file_path
- return "%s %s" % (envs, report)
+ key_vol = " -v /root/.ssh/id_rsa:/root/.ssh/id_rsa "
+ return "%s %s %s" % (envs, report, key_vol)
# set yardstick external network name and log volume for its container.
# external network is necessary for yardstick.
@@ -97,11 +98,13 @@ class Container(object):
log_vol = '-v %s:%s ' % (dovetail_config['result_dir'],
dovetail_config["yardstick"]['result']['log'])
- return "%s %s" % (envs, log_vol)
+ key_path = os.path.join(dovetail_config['userconfig_dir'], 'id_rsa')
+ key_con_path = dovetail_config["yardstick"]['result']['key_path']
+ key_vol = '-v %s:%s ' % (key_path, key_con_path)
+ return "%s %s %s" % (envs, log_vol, key_vol)
@classmethod
def create(cls, type, testcase_name):
- sshkey = "-v /root/.ssh/id_rsa:/root/.ssh/id_rsa "
dovetail_config = dt_cfg.dovetail_config
docker_image = cls.get_docker_image(type)
opts = dovetail_config[type]['opts']
@@ -131,14 +134,18 @@ class Container(object):
if type.lower() == "yardstick" and not os.path.exists(pod_file):
cls.logger.error("File %s doesn't exist.", pod_file)
return None
+ key_file = os.path.join(dovetail_config['userconfig_dir'], 'id_rsa')
+ if type.lower() == "yardstick" and not os.path.exists(key_file):
+ cls.logger.debug("File %s doesn't exist.", key_file)
+ cls.logger.debug("Can just use password in %s.", pod_file)
config_volume = \
' -v %s:%s ' % (dovetail_config['userconfig_dir'],
dovetail_config["functest"]['config']['dir'])
result_volume = ' -v %s:%s ' % (dovetail_config['result_dir'],
dovetail_config[type]['result']['dir'])
- cmd = 'sudo docker run %s %s %s %s %s %s %s %s /bin/bash' % \
- (opts, envs, config, sshkey, openrc, config_volume,
+ cmd = 'sudo docker run %s %s %s %s %s %s %s /bin/bash' % \
+ (opts, envs, config, openrc, config_volume,
result_volume, docker_image)
dt_utils.exec_cmd(cmd, cls.logger)
ret, container_id = \