test: fix bugs (ssh args and force-down in cleanup)
[doctor.git] / tests / run.sh
index 5c58463..9bd6573 100755 (executable)
@@ -41,6 +41,17 @@ if [[ "$COMPUTE_IP" == "none" ]] ; then
                   | awk '/ ctlplane network /{print \$5}'")
 fi
 
+prepare_compute_ssh() {
+    # verify connectivity to target compute host
+    ping -c 1 "$COMPUTE_IP"
+
+    # get ssh key from installer node
+    sudo scp $ssh_opts root@"$INSTALLER_IP":/home/stack/.ssh/id_rsa instack_key
+    sudo chown $(whoami):$(whoami) instack_key
+    chmod 400 instack_key
+    ssh_opts_cpu="$ssh_opts -i instack_key"
+}
+
 download_image() {
     [ -e "$IMAGE_FILE" ] && return 0
     wget "$IMAGE_URL" -o "$IMAGE_FILE"
@@ -127,16 +138,13 @@ inject_failure() {
 dev=$(/usr/sbin/ip route | awk '/^default/{print $5}')
 sleep 1
 echo sudo ip link set $dev down
-sleep 120
+sleep 180
 echo sudo ip link set $dev up
 sleep 1
 END_TXT
     chmod +x disable_network.sh
-    sudo scp $ssh_opts disable_network.sh $INSTALLER_IP:
-    ssh_opts_cpu="$ssh_opts -i /home/stack/.ssh/id_rsa"
-    sudo ssh $ssh_opts $INSTALLER_IP \
-        "scp $ssh_opts_cpu disable_network.sh heat-admin@$COMPUTE_HOST: && \
-         ssh $ssh_opts_cpu 'nohup ./disable_network.sh > c 2>&1 &'"
+    scp $ssh_opts_cpu disable_network.sh "heat-admin@$COMPUTE_IP:"
+    ssh $ssh_opts_cpu "heat-admin@$COMPUTE_IP" 'nohup ./disable_network.sh > disable_network.log 2>&1 &'
 }
 
 calculate_notification_time() {
@@ -153,8 +161,10 @@ cleanup() {
     stop_monitor
     stop_inspector
     stop_consumer
+    ssh $ssh_opts_cpu "heat-admin@$COMPUTE_IP" \
+        "[ -e disable_network.log ] && cat disable_network.log"
 
-    nova service-force-down --unset "$COMPUTE_HOST" nova-compute
+    python ./clean.py
     sleep 1
     nova delete "$VM_NAME"
     sleep 1
@@ -173,9 +183,9 @@ cleanup() {
 
 echo "Note: doctor/tests/run.sh has been executed."
 
-ping -c 1 "$COMPUTE_IP"
+prepare_compute_ssh
 
-trap cleanup ERR
+trap cleanup EXIT
 
 echo "preparing VM image..."
 download_image
@@ -198,6 +208,4 @@ sleep 10
 
 calculate_notification_time
 
-cleanup
-
 echo "done"