Eliminate error logs in virtual deployment 27/38627/2
authorAlex Yang <yangyang1@zte.com.cn>
Wed, 2 Aug 2017 12:26:50 +0000 (20:26 +0800)
committerAlex Yang <yangyang1@zte.com.cn>
Wed, 2 Aug 2017 15:49:16 +0000 (23:49 +0800)
There are some error messages in virtual deployment, such as
"Domain not found" or "network is already active".
The script forgets to destroy the keep-alived network, and should
not destroy a non-existent VM or network.

Change-Id: I8d9dce9d70f732bd6942b293e407e1845d81fc39
Signed-off-by: Alex Yang <yangyang1@zte.com.cn>
ci/deploy/deploy.sh

index 8dbda71..ca4f337 100755 (executable)
@@ -267,25 +267,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