diff options
Diffstat (limited to 'ci/deploy')
-rwxr-xr-x | ci/deploy/deploy.sh | 41 |
1 files changed, 27 insertions, 14 deletions
diff --git a/ci/deploy/deploy.sh b/ci/deploy/deploy.sh index f6299a1b..31382623 100755 --- a/ci/deploy/deploy.sh +++ b/ci/deploy/deploy.sh @@ -158,8 +158,15 @@ VMDEPLOY_DAISY_SERVER_VM=$WORKSPACE/templates/virtual_environment/vms/daisy.xml VMDEPLOY_TARGET_NODE_VM=$WORKSPACE/templates/virtual_environment/vms/all_in_one.xml VMDEPLOY_NODE=[] -for ((i=0;i<${#VM_MULTINODE[@]};i++));do +for ((i=0; i < ${#VM_MULTINODE[@]}; i++)); do + if [[ ${VM_MULTINODE[$i]} == *controller* ]]; then + nodename_prefix="controller" + else + nodename_prefix="computer" + fi VMDEPLOY_NODE[$i]=$WORKSPACE/templates/virtual_environment/vms/${VM_MULTINODE[$i]}.xml + cp $WORKSPACE/templates/virtual_environment/vms/${nodename_prefix}.xml ${VMDEPLOY_NODE[$i]} + sed -i "s/nodename/${VM_MULTINODE[$i]}/g" ${VMDEPLOY_NODE[$i]} echo ${VMDEPLOY_NODE[$i]} done @@ -268,25 +275,31 @@ function update_config fi } -function clean_up +function clean_up_virtual_env() { - local vm_name=$1 - local network_name=$2 + local vms=$(virsh list --all | tail -n +3 | awk '{print $2}') + local active_vms=$(virsh list | tail -n +3 | awk '{print $2}') + for vm_name in ${VM_MULTINODE[@]} all_in_one daisy; do + if [[ $(echo $vms | tr " " "\n" | grep ^$vm_name$) ]]; then + [[ $(echo $active_vms | tr " " "\n" | grep ^$vm_name$) ]] && virsh destroy $vm_name + virsh undefine $vm_name + fi + done - virsh destroy $vm_name - virsh undefine $vm_name - virsh net-destroy $network_name - virsh net-undefine $network_name + local nets=$(virsh net-list --all | tail -n +3 |awk '{print $1}') + local active_nets=$(virsh net-list | tail -n +3 |awk '{print $1}') + for net_template in ${VMDELOY_DAISY_SERVER_NET} ${VMDEPLOY_TARGET_NODE_NET} ${VMDEPLOY_TARGET_KEEPALIVED_NET}; do + network_name=$(grep "<name>" $net_template | awk -F "<|>" '{print $3}') + if [[ $(echo $nets | tr " " "\n" | grep ^$network_name$) ]]; then + [[ $(echo $active_nets | tr " " "\n" | grep ^$network_name$) ]] && virsh net-destroy $network_name + virsh net-undefine $network_name + fi + done } echo "====== clean up all node and network ======" if [ $IS_BARE == 0 ];then - clean_up all_in_one daisy2 - for ((i=0;i<${#VM_MULTINODE[@]};i++));do - virsh destroy ${VM_MULTINODE[$i]} - virsh undefine ${VM_MULTINODE[$i]} - done - clean_up daisy daisy1 + clean_up_virtual_env else virsh destroy daisy virsh undefine daisy |