From 63e07fce71ad5f4a0b992a8583a5347e6e0aba1b Mon Sep 17 00:00:00 2001 From: "wu.zhihui" Date: Mon, 27 Feb 2017 16:32:55 +0800 Subject: refactor code related with setup env - modify env.py and scripts - add unit test Change-Id: I416cd517bdddfeb907675705009d83ecada7f87c Signed-off-by: wu.zhihui --- qtip/scripts/fetch_compute_ips.sh | 117 ------------------------------------ qtip/scripts/generate_host_file.sh | 119 +++++++++++++++++++++++++++++++++++++ qtip/scripts/qtip_creds.sh | 24 ++++---- 3 files changed, 133 insertions(+), 127 deletions(-) delete mode 100755 qtip/scripts/fetch_compute_ips.sh create mode 100755 qtip/scripts/generate_host_file.sh (limited to 'qtip/scripts') diff --git a/qtip/scripts/fetch_compute_ips.sh b/qtip/scripts/fetch_compute_ips.sh deleted file mode 100755 index a2618ec9..00000000 --- a/qtip/scripts/fetch_compute_ips.sh +++ /dev/null @@ -1,117 +0,0 @@ -#!/bin/bash -############################################################################## -#Copyright (c) 2016 Ericsson AB, ZTE and others. -#jose.lausuch@ericsson.com -#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 -############################################################################## - - -usage(){ - echo "usage: $0 [-v] -i -a " >&2 - echo "[-v] Virtualized deployment" >&2 -} - -info() { - logger -s -t "fetch_compute_info.info" "$*" -} - - -error() { - logger -s -t "fetch_compute_info.error" "$*" - exit 1 -} - -verify_connectivity(){ - local ip=$1 - info "Verifying connectivity to $ip..." - for i in $(seq 0 10); do - if ping -c 1 -W 1 $ip > /dev/null; then - info "$ip is reachable!" - return 0 - fi - sleep 1 - done - error "Can not talk to $ip." -} - -:${DEPLOY_TYPE:=''} - -#Getoptions -while getopts ":i:a:h:v" optchar; do - case "${optchar}" in - i) installer_type=${OPTARG} ;; - a) installer_ip=${OPTARG} ;; - v) DEPLOY_TYPE="virt" ;; - *) echo "Non-option argument: '-${OPTARG}'" >&2 - usage - exit 2 - ;; - esac -done - -#set vars from env if not provided by user as options -installer_type=${installer_type:-$INSTALLER_TYPE} -installer_ip=${installer_ip:-$INSTALLER_IP} - -if [ -z $installer_type ] || [ -z $installer_ip ]; then - usage - exit 2 -fi - -ssh_options="-oUserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" - -#Start fetching compute ip -if [ "$installer_type" == "fuel" ]; then - verify_connectivity $installer_ip - - env=$(sshpass -p r00tme ssh 2>/dev/null $ssh_options root@${installer_ip} \ - 'fuel env'|grep operational|head -1|awk '{print $1}') &> /dev/null - if [ -z $env ]; then - error "No operational environment detected in Fuel" - fi - env_id="${FUEL_ENV:-$env}" - - # Check if compute is alive (online='True') - IPS=$(sshpass -p r00tme ssh 2>/dev/null $ssh_options root@${installer_ip} \ - "fuel node --env ${env_id} | grep compute | grep 'True\| 1' | awk -F\| '{print \$5}' " | \ - sed 's/ //g') &> /dev/null - - -elif [ "$installer_type" == "apex" ]; then - echo "not implement now" - exit 1 - -elif [ "$installer_type" == "compass" ]; then - # need test - verify_connectivity $installer_ip - IPS=$(sshpass -p'root' ssh 2>/dev/null $ssh_options root@${installer_ip} \ - 'mysql -ucompass -pcompass -Dcompass -e"select * from cluster;"' \ - | awk -F"," '{for(i=1;i $HOME/qtip/ips.log - echo $IPS -fi - -exit 0 diff --git a/qtip/scripts/generate_host_file.sh b/qtip/scripts/generate_host_file.sh new file mode 100755 index 00000000..1353cacd --- /dev/null +++ b/qtip/scripts/generate_host_file.sh @@ -0,0 +1,119 @@ +#!/bin/bash +############################################################################## +#Copyright (c) 2016 Ericsson AB, ZTE and others. +#jose.lausuch@ericsson.com +#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 +############################################################################## + + +usage(){ + echo "usage: $0 [-v] -i -a -d " >&2 + echo "[-v] Virtualized deployment" >&2 +} + +info() { + logger -s -t "generate_host_file.info" "$*" +} + + +error() { + logger -s -t "generate_host_file.error" "$*" + exit 1 +} + +verify_connectivity(){ + local ip=$1 + info "Verifying connectivity to $ip..." + for i in $(seq 0 10); do + if ping -c 1 -W 1 $ip > /dev/null; then + info "$ip is reachable!" + return 0 + fi + sleep 1 + done + error "Can not talk to $ip." +} + +:${DEPLOY_TYPE:=''} + +#Getoptions +while getopts ":i:a:h:v" optchar; do + case "${optchar}" in + i) installer_type=${OPTARG} ;; + a) installer_ip=${OPTARG} ;; + d) host_file=${OPTARG} ;; + v) DEPLOY_TYPE="virt" ;; + *) echo "Non-option argument: '-${OPTARG}'" >&2 + usage + exit 2 + ;; + esac +done + +#set vars from env if not provided by user as options +installer_type=${installer_type:-$INSTALLER_TYPE} +installer_ip=${installer_ip:-$INSTALLER_IP} + +if [ -z $installer_type ] || [ -z $installer_ip ]; then + usage + exit 2 +fi + +ssh_options="-oUserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" + +#Start fetching compute ip +if [ "$installer_type" == "fuel" ]; then + verify_connectivity $installer_ip + + env=$(sshpass -p r00tme ssh 2>/dev/null $ssh_options root@${installer_ip} \ + 'fuel env'|grep operational|head -1|awk '{print $1}') &> /dev/null + if [ -z $env ]; then + error "No operational environment detected in Fuel" + fi + env_id="${FUEL_ENV:-$env}" + + # Check if compute is alive (online='True') + IPS=$(sshpass -p r00tme ssh 2>/dev/null $ssh_options root@${installer_ip} \ + "fuel node --env ${env_id} | grep compute | grep 'True\| 1' | awk -F\| '{print \$5}' " | \ + sed 's/ //g') &> /dev/null + + +elif [ "$installer_type" == "apex" ]; then + echo "not implement now" + exit 1 + +elif [ "$installer_type" == "compass" ]; then + # need test + verify_connectivity $installer_ip + IPS=$(sshpass -p'root' ssh 2>/dev/null $ssh_options root@${installer_ip} \ + 'mysql -ucompass -pcompass -Dcompass -e"select * from cluster;"' \ + | awk -F"," '{for(i=1;i> $host_file + echo "$IPS" >> $host_file + cat $host_file +fi + +exit 0 diff --git a/qtip/scripts/qtip_creds.sh b/qtip/scripts/qtip_creds.sh index af051ac5..d338115f 100755 --- a/qtip/scripts/qtip_creds.sh +++ b/qtip/scripts/qtip_creds.sh @@ -1,30 +1,34 @@ #! /bin/bash DEST_IP=$1 +PRIVATE_KEY=$2 +PUBLIC_KEY=$2.pub +KEYNAME=$(basename PRIVATE_KEY) + echo $INSTALLER_TYPE echo $INSTALLER_IP sshoptions="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" case "$INSTALLER_TYPE" in apex) - scp $sshoptions -i $APEX_KEY ./config/QtipKey.pub stack@$INSTALLER_IP:/home/stack - scp $sshoptions -i $APEX_KEY ./config/QtipKey stack@$INSTALLER_IP:/home/stack - ssh $sshoptions -i $APEX_KEY stack@$INSTALLER_IP "ssh-copy-id $sshoptions -i /home/stack/QtipKey.pub heat-admin@$DEST_IP && rm -rf /home/stack/QtipKey && rm -rf /home/stack/QtipKey.pub" + scp $sshoptions -i $APEX_KEY $PUBLIC_KEY stack@$INSTALLER_IP:/home/stack + scp $sshoptions -i $APEX_KEY $PRIVATE_KEY stack@$INSTALLER_IP:/home/stack + ssh $sshoptions -i $APEX_KEY stack@$INSTALLER_IP "ssh-copy-id $sshoptions -i /home/stack/$KEYNAME.pub heat-admin@$DEST_IP && rm -rf /home/stack/$KEYNAME && rm -rf /home/stack/$KEYNAME.pub" ;; fuel) PSWD="r00tme" - sshpass -p $PSWD scp $sshoptions ./config/QtipKey.pub root@$INSTALLER_IP:/root - sshpass -p $PSWD scp $sshoptions ./config/QtipKey root@$INSTALLER_IP:/root + sshpass -p $PSWD scp $sshoptions $PUBLIC_KEY root@$INSTALLER_IP:/root + sshpass -p $PSWD scp $sshoptions $PRIVATE_KEY root@$INSTALLER_IP:/root sshpass -p $PSWD ssh $sshoptions root@$INSTALLER_IP "grep -q '\-F /dev/null ' /usr/bin/ssh-copy-id || sed -i 's/\(ssh -i.*$\)/\1\n -F \/dev\/null \\\/g' `which ssh-copy-id`" - sshpass -p $PSWD ssh $sshoptions root@$INSTALLER_IP "ssh-copy-id $sshoptions -i /root/QtipKey root@$DEST_IP && rm -rf /root/QtipKey && rm -rf /root/QtipKey.pub" + sshpass -p $PSWD ssh $sshoptions root@$INSTALLER_IP "ssh-copy-id $sshoptions -i /root/$KEYNAME root@$DEST_IP && rm -rf /root/$KEYNAME && rm -rf /root/$KEYNAME.pub" ;; compass) PSWD="root" - sshpass -p $PSWD scp $sshoptions ./config/QtipKey.pub root@$INSTALLER_IP:/root - sshpass -p $PSWD scp $sshoptions ./config/QtipKey root@$INSTALLER_IP:/root - sshpass -p $PSWD ssh $sshoptions root@$INSTALLER_IP "ssh-copy-id $sshoptions -i /root/QtipKey.pub root@$DEST_IP && rm -rf /root/QtipKey && rm -rf /root/QtipKey.pub" + sshpass -p $PSWD scp $sshoptions $PUBLIC_KEY root@$INSTALLER_IP:/root + sshpass -p $PSWD scp $sshoptions $PRIVATE_KEY root@$INSTALLER_IP:/root + sshpass -p $PSWD ssh $sshoptions root@$INSTALLER_IP "ssh-copy-id $sshoptions -i /root/$KEYNAME.pub root@$DEST_IP && rm -rf /root/$KEYNAME && rm -rf /root/$KEYNAME.pub" ;; joid) PSWD="joid";; *) echo "Unkown installer $INSTALLER_TYPE specified";; -esac +esac \ No newline at end of file -- cgit 1.2.3-korg