From de4747afaea3738de062730dced853591e190d32 Mon Sep 17 00:00:00 2001
From: Eduardo Gonzalez <dabarren@gmail.com>
Date: Tue, 11 Apr 2017 18:10:06 +0100
Subject: [PATCH] Temporaly fix deploy gate

Nova service-list is returning empty registered service
when in database they are. Because of this, simple_cell_setup
is not executed and deploy stucks waiting for nova-compute.

This change temporaly checks the database for existing nova services
instead of openstack compute service list.

This change will need to be reverted once the command is fixed.

Change-Id: Ic508eb3ff03b5f233186353fc7697305cc792d14
---
 .../roles/nova/tasks/simple_cell_setup.yml    | 41 +++++++++++++------
 1 file changed, 29 insertions(+), 12 deletions(-)

diff --git a/ansible/roles/nova/tasks/simple_cell_setup.yml b/ansible/roles/nova/tasks/simple_cell_setup.yml
index 8643a07390..23a903dfef 100644
--- a/ansible/roles/nova/tasks/simple_cell_setup.yml
+++ b/ansible/roles/nova/tasks/simple_cell_setup.yml
@@ -1,16 +1,33 @@
 ---
-- name: Waiting for nova-compute service up
+#- name: Waiting for nova-compute service up
+#  command: >
+#    docker exec kolla_toolbox openstack
+#    --os-interface internal
+#    --os-auth-url {{ keystone_admin_url }}
+#    --os-identity-api-version 3
+#    --os-project-domain-name default
+#    --os-tenant-name admin
+#    --os-username admin
+#    --os-password {{ keystone_admin_password }}
+#    --os-user-domain-name default
+#    compute service list -f json --service nova-compute
+#  register: nova_compute_services
+#  changed_when: false
+#  run_once: True
+#  delegate_to: "{{ groups['nova-api'][0] }}"
+#  retries: 20
+#  delay: 10
+#  until:
+#    - nova_compute_services | success
+#    - nova_compute_services.stdout | from_json | length != 0
+
+# NOTE (egonzalez) Remove after service-list is fixed
+- name: TMP Waiting for nova-compute service up
   command: >
-    docker exec kolla_toolbox openstack
-    --os-interface internal
-    --os-auth-url {{ keystone_admin_url }}
-    --os-identity-api-version 3
-    --os-project-domain-name default
-    --os-tenant-name admin
-    --os-username admin
-    --os-password {{ keystone_admin_password }}
-    --os-user-domain-name default
-    compute service list -f json --service nova-compute
+    docker exec kolla_toolbox mysql
+      -unova -p{{ nova_database_password }}
+      -h {{ database_address }} nova
+      -e "SELECT topic from services WHERE topic = 'compute'";
   register: nova_compute_services
   changed_when: false
   run_once: True
@@ -19,7 +36,7 @@
   delay: 10
   until:
     - nova_compute_services | success
-    - nova_compute_services.stdout | from_json | length != 0
+    - nova_compute_services.stdout | length != 0
 
 - name: Running nova simple cell setup
   command: docker exec nova_api nova-manage cell_v2 simple_cell_setup