From 6ffe08d76e98dd5eb44d9e5db4f8c549dc745144 Mon Sep 17 00:00:00 2001
From: Jeffrey Zhang <jeffrey.zhang@99cloud.net>
Date: Mon, 11 Apr 2016 23:57:39 +0800
Subject: [PATCH] Fix the gate lying

In some case, the gate is always green even when failure exist.

Closes-Bug: #1568389
Change-Id: I64116ba33ebf96268c28abb6a7091752a346f29b
---
 tools/deploy_aio.sh | 42 ++++++++++++++++++++----------------------
 1 file changed, 20 insertions(+), 22 deletions(-)

diff --git a/tools/deploy_aio.sh b/tools/deploy_aio.sh
index 1a06cddadc..88eb02526a 100755
--- a/tools/deploy_aio.sh
+++ b/tools/deploy_aio.sh
@@ -11,21 +11,32 @@ export KOLLA_TYPE=$2
 function copy_logs {
     cp -rnL /var/lib/docker/volumes/kolla_logs/_data/* /tmp/logs/kolla/
     # NOTE(SamYaple): Fix permissions for log extraction in gate
+
+    if [[ -x "$(command -v journalctl)" ]]; then
+        journalctl --no-pager -u docker.service > /tmp/logs/kolla/docker.log
+    else
+        cp /var/log/upstart/docker.log > /tmp/logs/kolla/docker.log
+    fi
+
     chmod -R 777 /tmp/logs/kolla/
 }
 
-function check_failure {
-    # Command failures after this point can be expected
-    set +o errexit
-
-    # TODO(SamYaple): Move these out of the check_failure function once logs
-    # are reddy with Heka
+function sanity_check {
     # Wait for service ready
     sleep 15
-    nova boot --poll --image $(openstack image list | awk '/cirros/ {print $2}') --nic net-id=$(openstack network list | awk '/demo-net/ {print $2}') --flavor 1 kolla_boot_test
+    source /etc/kolla/admin-openrc.sh
+    nova --debug service-list
+    neutron --debug agent-list
+    tools/init-runonce
+    nova --debug boot --poll --image $(openstack image list | awk '/cirros/ {print $2}') --nic net-id=$(openstack network list | awk '/demo-net/ {print $2}') --flavor 1 kolla_boot_test
+    nova --debug list
     # If the status is not ACTIVE, print info and exit 1
-    nova show kolla_boot_test | awk '{buf=buf"\n"$0} $2=="status" && $4!="ACTIVE" {failed="yes"}; END {if (failed=="yes") {print buf; exit 1}}'
+    nova --debug show kolla_boot_test | awk '{buf=buf"\n"$0} $2=="status" && $4!="ACTIVE" {failed="yes"}; END {if (failed=="yes") {print buf; exit 1}}'
+}
 
+function check_failure {
+    # Command failures after this point can be expected
+    set +o errexit
 
     docker ps -a
     failed_containers=$(docker ps -a --format "{{.Names}}" --filter status=exited)
@@ -34,18 +45,6 @@ function check_failure {
         docker logs --tail all ${failed}
     done
 
-    if [[ -x "$(command -v journalctl)" ]]; then
-        journalctl --no-pager -u docker.service
-    else
-        cat /var/log/upstart/docker.log
-    fi
-
-    nova service-list
-    neutron agent-list
-
-    nova list
-    nova list | awk '/4/ {print $2}' | xargs -n1 nova show
-
     copy_logs
 }
 
@@ -103,5 +102,4 @@ tools/kolla-ansible -vvv deploy
 tools/kolla-ansible -vvv post-deploy
 
 # Test OpenStack Environment
-source /etc/kolla/admin-openrc.sh
-tools/init-runonce
+sanity_check
-- 
GitLab