From 6881c732b4d15b801a9935050939d176770f89bd Mon Sep 17 00:00:00 2001
From: Xicheng Chang <xichengchang@huawei.com>
Date: Tue, 26 May 2015 14:29:34 -0700
Subject: [PATCH] Now ansible takes credentials passed by compass

But compass doesn't take them from UI. It provides
hard-coded values to package installers. We should
consider fixing this.

Change-Id: I7062e45ec4c7b1cc98ebfd63cbc96149d83beb05
---
 .../ansible_installer/ansible_installer.py    |  1 +
 .../openstack_juno/vars/allinone.tmpl         | 33 ++++++++++++-------
 .../openstack_juno/vars/multinodes.tmpl       | 33 ++++++++++++-------
 .../vars/single-controller.tmpl               | 33 ++++++++++++-------
 4 files changed, 67 insertions(+), 33 deletions(-)

diff --git a/compass/deployment/installers/pk_installers/ansible_installer/ansible_installer.py b/compass/deployment/installers/pk_installers/ansible_installer/ansible_installer.py
index 8dacc7e9..4f39b81b 100644
--- a/compass/deployment/installers/pk_installers/ansible_installer/ansible_installer.py
+++ b/compass/deployment/installers/pk_installers/ansible_installer/ansible_installer.py
@@ -179,6 +179,7 @@ class AnsibleInstaller(PKInstaller):
         )
 
     def _generate_group_vars_attributes(self, global_vars_dict):
+        logging.info("global vars dict is %s", global_vars_dict)
         group_vars_tmpl_path = os.path.join(
             os.path.join(self.tmpl_dir, self.GROUPVARS_TMPL_DIR),
             self.tmpl_name
diff --git a/conf/templates/ansible_installer/openstack_juno/vars/allinone.tmpl b/conf/templates/ansible_installer/openstack_juno/vars/allinone.tmpl
index 17f16cc7..7b1e382e 100644
--- a/conf/templates/ansible_installer/openstack_juno/vars/allinone.tmpl
+++ b/conf/templates/ansible_installer/openstack_juno/vars/allinone.tmpl
@@ -18,8 +18,19 @@ INTERNAL_INTERFACE: $network_internal_nic
 #end for
 
 #set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
 #set rabbit_username = $credentials.rabbitmq.username
 #set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password 
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set admin_pass = $console_credentials.admin.password
+#set neutron_pass = $console_credentials.network.password
 
 compute_controller_host: "{{ controller_host }}"
 db_host: "{{ controller_host }}"
@@ -45,18 +56,18 @@ ADMIN_TOKEN: admin
 CEILOMETER_TOKEN: c095d479023a0fd58a54
 
 RABBIT_PASS: $rabbit_password
-KEYSTONE_DBPASS: keystone_db_secret
+KEYSTONE_DBPASS: $keystone_dbpass
 DEMO_PASS: demo_secret
-ADMIN_PASS: admin_secret
-GLANCE_DBPASS: glance_db_secret
-GLANCE_PASS: glance_secret
-NOVA_DBPASS: nova_db_secret
-NOVA_PASS: nova_secret
-DASH_DBPASS: dash_db_secret
-CINDER_DBPASS: cinder_db_secret
-CINDER_PASS: cinder_secret
-NEUTRON_DBPASS: neutron_db_secret
-NEUTRON_PASS: netron_secret
+ADMIN_PASS: $admin_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_pass
+NEUTRON_PASS: $neutron_pass
 NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan']
 NEUTRON_TENANT_NETWORK_TYPES: ['vxlan']
 #NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
diff --git a/conf/templates/ansible_installer/openstack_juno/vars/multinodes.tmpl b/conf/templates/ansible_installer/openstack_juno/vars/multinodes.tmpl
index 7dafee43..45c80a5a 100644
--- a/conf/templates/ansible_installer/openstack_juno/vars/multinodes.tmpl
+++ b/conf/templates/ansible_installer/openstack_juno/vars/multinodes.tmpl
@@ -87,8 +87,19 @@ INTERNAL_INTERFACE: $network_internal_nic
 #end for
 
 #set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
 #set rabbit_username = $credentials.rabbitmq.username
 #set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set admin_pass = $console_credentials.admin.password
+#set neutron_pass = $console_credentials.network.password
 
 cluster_name: $cluster_name
 
@@ -106,18 +117,18 @@ ADMIN_TOKEN: admin
 CEILOMETER_TOKEN: c095d479023a0fd58a54
 
 RABBIT_PASS: $rabbit_password
-KEYSTONE_DBPASS: keystone_db_secret
+KEYSTONE_DBPASS: $keystone_dbpass
 DEMO_PASS: demo_secret
-ADMIN_PASS: admin_secret
-GLANCE_DBPASS: glance_db_secret
-GLANCE_PASS: glance_secret
-NOVA_DBPASS: nova_db_secret
-NOVA_PASS: nova_secret
-DASH_DBPASS: dash_db_secret
-CINDER_DBPASS: cinder_db_secret
-CINDER_PASS: cinder_secret
-NEUTRON_DBPASS: neutron_db_secret
-NEUTRON_PASS: netron_secret
+ADMIN_PASS: $admin_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_pass
+NEUTRON_PASS: $neutron_pass
 NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan']
 NEUTRON_TENANT_NETWORK_TYPES: ['vxlan']
 #NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
diff --git a/conf/templates/ansible_installer/openstack_juno/vars/single-controller.tmpl b/conf/templates/ansible_installer/openstack_juno/vars/single-controller.tmpl
index f4944634..0286df89 100644
--- a/conf/templates/ansible_installer/openstack_juno/vars/single-controller.tmpl
+++ b/conf/templates/ansible_installer/openstack_juno/vars/single-controller.tmpl
@@ -30,8 +30,19 @@ INTERNAL_INTERFACE: $network_internal_nic
 #end for
 
 #set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
 #set rabbit_username = $credentials.rabbitmq.username
 #set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set admin_pass = $console_credentials.admin.password
+#set neutron_pass = $console_credentials.network.password
 
 cluster_name: $cluster_name
 
@@ -57,18 +68,18 @@ ADMIN_TOKEN: admin
 CEILOMETER_TOKEN: c095d479023a0fd58a54
 
 RABBIT_PASS: $rabbit_password
-KEYSTONE_DBPASS: keystone_db_secret
+KEYSTONE_DBPASS: $keystone_dbpass
 DEMO_PASS: demo_secret
-ADMIN_PASS: admin_secret
-GLANCE_DBPASS: glance_db_secret
-GLANCE_PASS: glance_secret
-NOVA_DBPASS: nova_db_secret
-NOVA_PASS: nova_secret
-DASH_DBPASS: dash_db_secret
-CINDER_DBPASS: cinder_db_secret
-CINDER_PASS: cinder_secret
-NEUTRON_DBPASS: neutron_db_secret
-NEUTRON_PASS: netron_secret
+ADMIN_PASS: $admin_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_pass
+NEUTRON_PASS: $neutron_pass
 NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan']
 NEUTRON_TENANT_NETWORK_TYPES: ['vxlan']
 #NEUTRON_MECHANISM_DRIVERS: ['opendaylight']