summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarry Huang <huangxiangyu5@huawei.com>2017-03-21 11:31:56 +0800
committerHarry Huang <huangxiangyu5@huawei.com>2017-03-21 16:14:39 +0800
commitb21d57081d4b705689cb6d7372e254818b84a760 (patch)
treef57efd74a899a87d039c5a21fe057f00b0c277d9
parentb7fb5c062e0e806e34ebc53fe670f00f8417cd4a (diff)
Opera adapter fix
* CI return 0 when opera_adapter fails which cover the error. * opera_adapter runs with no sudo will fail when generate ssh key. * opera_adapter.py use simple ip replacement for openrc file will lead to error when openrc file changed in compass. 1. add judgement to tell if opera_adapter fails 2. add sudo when run opera_adapter 3. pass data in openrc files to opera openrc instead of ip rewriting Change-Id: I681717947746b768791529975a5b0d2a23c6069a Signed-off-by: Harry Huang <huangxiangyu5@huawei.com>
-rwxr-xr-xdeploy/launch.sh5
-rw-r--r--deploy/opera_adapter.py23
2 files changed, 22 insertions, 6 deletions
diff --git a/deploy/launch.sh b/deploy/launch.sh
index aa476784..5f1ee1cb 100755
--- a/deploy/launch.sh
+++ b/deploy/launch.sh
@@ -142,5 +142,8 @@ echo "NOTE: openrc file is in the controller nodes"
echo ""
if [[ ${DHA##*/} =~ "openo" ]]; then
- python ${COMPASS_DIR}/deploy/opera_adapter.py $DHA $NETWORK
+ sudo python ${COMPASS_DIR}/deploy/opera_adapter.py $DHA $NETWORK
+ if [[ $? -ne 0 ]]; then
+ exit 1
+ fi
fi
diff --git a/deploy/opera_adapter.py b/deploy/opera_adapter.py
index 09702fc8..71f19951 100644
--- a/deploy/opera_adapter.py
+++ b/deploy/opera_adapter.py
@@ -47,11 +47,24 @@ def sync_openo_config(openo_config, dha, network):
def sync_admin_openrc(network, admin_openrc_file):
- ip = re.compile("\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}")
- with open(admin_openrc_file, 'r+') as fd:
- data = fd.read()
- fd.seek(0)
- fd.write(re.sub(ip, network['public_vip']['ip'], data))
+ ssh_opts = "-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
+ vip = network['public_vip']['ip']
+ cmd = 'sshpass -p"root" ssh %s root@%s "cat /opt/admin-openrc.sh"' \
+ % (ssh_opts, vip)
+ ssh = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
+ if ssh.stdout is None:
+ print("fetch openrc fail")
+ sys.exit(1)
+
+ rcdata = ssh.stdout.readlines()
+ with open(admin_openrc_file, 'w') as fd:
+ ip = re.compile("\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}")
+ for i in rcdata:
+ if 'OS_AUTH_URL' in i:
+ i = re.sub(ip, vip, i)
+ fd.write(i)
+
+ fd.write('export OS_REGION_NAME=RegionOne')
if __name__ == "__main__":