[RabbitMQ] Parametrized message queue hosts to enable client-side HA.

Change-Id: Iba6bd1e0f24cdbf8fe2888b245f395915bd3eda2
diff --git a/README.rst b/README.rst
index b9058f1..d475a45 100644
--- a/README.rst
+++ b/README.rst
@@ -95,6 +95,27 @@
         version: icehouse
         notification: true
 
+
+Client-side RabbitMQ HA setup
+
+.. code-block:: yaml
+
+    heat:
+      server:
+        ....
+        message_queue:
+          engine: rabbitmq
+          members:
+            - host: 10.0.16.1
+            - host: 10.0.16.2
+            - host: 10.0.16.3
+          user: openstack
+          password: pwd
+          virtual_host: '/openstack'
+        ....
+
+
+
 Usage
 =====
 
diff --git a/heat/files/kilo/heat.conf.Debian b/heat/files/kilo/heat.conf.Debian
index 6fab1b7..e0aaf9a 100644
--- a/heat/files/kilo/heat.conf.Debian
+++ b/heat/files/kilo/heat.conf.Debian
@@ -784,16 +784,16 @@
 # Deprecated group/name - [DEFAULT]/kombu_reconnect_delay
 #kombu_reconnect_delay = 1.0
 
-# The RabbitMQ broker address where a single node is used. (string value)
-# Deprecated group/name - [DEFAULT]/rabbit_host
+{%- if server.message_queue.members is defined %}
+rabbit_hosts = {% for member in server.message_queue.members -%}
+                   {{ member.host }}:{{ member.get('port', 5672) }}
+                   {%- if not loop.last -%},{%- endif -%}
+               {%- endfor -%}
+{%- else %}
 rabbit_host = {{ server.message_queue.host }}
-
-# The RabbitMQ broker port where a single node is used.
-# (integer value)
 rabbit_port = {{ server.message_queue.port }}
+{%- endif %}
 
-# RabbitMQ HA cluster host:port pairs. (list value)
-#rabbit_hosts=$rabbit_host:$rabbit_port
 
 # Connect over SSL for RabbitMQ. (boolean value)
 #rabbit_use_ssl=false
diff --git a/heat/files/liberty/heat.conf.Debian b/heat/files/liberty/heat.conf.Debian
index 6fab1b7..7cb72be 100644
--- a/heat/files/liberty/heat.conf.Debian
+++ b/heat/files/liberty/heat.conf.Debian
@@ -783,17 +783,17 @@
 # notification. (floating point value)
 # Deprecated group/name - [DEFAULT]/kombu_reconnect_delay
 #kombu_reconnect_delay = 1.0
-
-# The RabbitMQ broker address where a single node is used. (string value)
-# Deprecated group/name - [DEFAULT]/rabbit_host
+{%- if server.message_queue.members is defined %}
+rabbit_hosts = {% for member in server.message_queue.members -%}
+                   {{ member.host }}:{{ member.get('port', 5672) }}
+                   {%- if not loop.last -%},{%- endif -%}
+               {%- endfor -%}
+{%- else %}
 rabbit_host = {{ server.message_queue.host }}
-
-# The RabbitMQ broker port where a single node is used.
-# (integer value)
 rabbit_port = {{ server.message_queue.port }}
+{%- endif %}
 
-# RabbitMQ HA cluster host:port pairs. (list value)
-#rabbit_hosts=$rabbit_host:$rabbit_port
+
 
 # Connect over SSL for RabbitMQ. (boolean value)
 #rabbit_use_ssl=false
diff --git a/metadata/service/server/cluster.yml b/metadata/service/server/cluster.yml
index b688139..1fd1cb5 100644
--- a/metadata/service/server/cluster.yml
+++ b/metadata/service/server/cluster.yml
@@ -49,4 +49,3 @@
         user: openstack
         password: ${_param:rabbitmq_openstack_password}
         virtual_host: '/openstack'
-        ha_queues: true
diff --git a/metadata/service/server/single.yml b/metadata/service/server/single.yml
index 082e429..253345c 100644
--- a/metadata/service/server/single.yml
+++ b/metadata/service/server/single.yml
@@ -49,4 +49,3 @@
         user: openstack
         password: ${_param:rabbitmq_openstack_password}
         virtual_host: '/openstack'
-        ha_queues: true
diff --git a/tests/pillar/server_cluster.sls b/tests/pillar/server_cluster.sls
index ef6a978..32c54d7 100644
--- a/tests/pillar/server_cluster.sls
+++ b/tests/pillar/server_cluster.sls
@@ -39,9 +39,10 @@
       password: password
     message_queue:
       engine: rabbitmq
-      host: 127.0.0.1
-      port: 5672
+      members:
+      - host: 127.0.0.1
+      - host: 127.0.1.1
+      - host: 127.0.2.1
       user: openstack
       password: password
       virtual_host: '/openstack'
-      ha_queues: true
\ No newline at end of file