[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