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.
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']
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 = \
--- /dev/null
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+# sample config file about the POD information, including the
+# name/IP/user/ssh key and Controllers/Computes
+#
+# The options of this config file include:
+# name: the name of this node
+# role: node's role, support role: Master/Controller/Comupte/BareMetal
+# ip: the node's IP address
+# user: the username for login
+# key_filename:the path of the private key file for login
+
+nodes:
+-
+ name: node1
+ role: Controller
+ ip: 10.1.0.50
+ user: root
+ key_filename: /root/.ssh/id_rsa
+-
+ name: node2
+ role: Controller
+ ip: 10.1.0.51
+ user: root
+ key_filename: /root/.ssh/id_rsa
+-
+ name: node3
+ role: Controller
+ ip: 10.1.0.52
+ user: root
+ key_filename: /root/.ssh/id_rsa
+-
+ name: node4
+ role: Compute
+ ip: 10.1.0.53
+ user: root
+ key_filename: /root/.ssh/id_rsa
+-
+ name: node5
+ role: Compute
+ ip: 10.1.0.54
+ user: root
+ key_filename: /root/.ssh/id_rsa