ZeroMQ driver to default to redis matchmaker
Switching to the redis matchmaker.
The localhost matchmaker does not presently work.
Also, the localhost matchmaker could not work for
multi-host setups.
Change-Id: I81a26b9af78328e360a18b87371c619e194365d2
diff --git a/README.md b/README.md
index 1987db8..8573638 100644
--- a/README.md
+++ b/README.md
@@ -153,6 +153,7 @@
MYSQL_HOST=$SERVICE_HOST
RABBIT_HOST=$SERVICE_HOST
Q_HOST=$SERVICE_HOST
+ MATCHMAKER_REDIS_HOST=$SERVICE_HOST
# Cells
diff --git a/lib/rpc_backend b/lib/rpc_backend
index fc439ec..e64d098 100644
--- a/lib/rpc_backend
+++ b/lib/rpc_backend
@@ -78,11 +78,11 @@
fi
elif is_service_enabled zeromq; then
if is_fedora; then
- uninstall_package zeromq python-zmq
+ uninstall_package zeromq python-zmq redis
elif is_ubuntu; then
- uninstall_package libzmq1 python-zmq
+ uninstall_package libzmq1 python-zmq redis-server
elif is_suse; then
- uninstall_package libzmq1 python-pyzmq
+ uninstall_package libzmq1 python-pyzmq redis
else
exit_distro_not_supported "zeromq installation"
fi
@@ -115,12 +115,15 @@
exit_distro_not_supported "qpid installation"
fi
elif is_service_enabled zeromq; then
+ # NOTE(ewindisch): Redis is not strictly necessary
+ # but there is a matchmaker driver that works
+ # really well & out of the box for multi-node.
if is_fedora; then
- install_package zeromq python-zmq
+ install_package zeromq python-zmq redis
elif is_ubuntu; then
- install_package libzmq1 python-zmq
+ install_package libzmq1 python-zmq redis-server
elif is_suse; then
- install_package libzmq1 python-pyzmq
+ install_package libzmq1 python-pyzmq redis
else
exit_distro_not_supported "zeromq installation"
fi
@@ -158,6 +161,11 @@
local section=$3
if is_service_enabled zeromq; then
iniset $file $section rpc_backend ${package}.openstack.common.rpc.impl_zmq
+ iniset $file $section rpc_zmq_matchmaker \
+ ${package}.openstack.common.rpc.matchmaker_redis.MatchMakerRedis
+ # Set MATCHMAKER_REDIS_HOST if running multi-node.
+ MATCHMAKER_REDIS_HOST=${MATCHMAKER_REDIS_HOST:-127.0.0.1}
+ iniset $file matchmaker_redis host $MATCHMAKER_REDIS_HOST
elif is_service_enabled qpid; then
iniset $file $section rpc_backend ${package}.openstack.common.rpc.impl_qpid
if is_ubuntu; then