Add support for using Qpid instead of RabbitMQ.

To use Qpid instead of RabbitMQ, you set 'qpid' instead of 'rabbit' in
ENABLED_SERVICES in your localrc file. Otherwise, RabbitMQ is still
used by default.

(dtroyer) fixed problem with service test that failed to configure
rabbitmq if it was still selected.

Change-Id: I8c62b588a461a068463821b2c079ffa4bfa1f804
This commit is contained in:
Russell Bryant 2012-03-13 13:44:12 -04:00 committed by Dean Troyer
parent 461203b2c8
commit 4a221459b7
3 changed files with 31 additions and 8 deletions

View File

@ -19,6 +19,7 @@ libvirt-bin # NOPRIME
vlan vlan
curl curl
rabbitmq-server # NOPRIME rabbitmq-server # NOPRIME
qpidd # NOPRIME
socat # used by ajaxterm socat # used by ajaxterm
python-mox python-mox
python-paste python-paste
@ -42,3 +43,4 @@ python-boto
python-kombu python-kombu
python-feedparser python-feedparser
python-iso8601 python-iso8601
python-qpid # dist:precise

View File

@ -29,11 +29,13 @@ python-netaddr
python-paramiko python-paramiko
python-paste python-paste
python-paste-deploy python-paste-deploy
python-qpid
python-routes python-routes
python-sqlalchemy python-sqlalchemy
python-suds python-suds
python-tempita python-tempita
rabbitmq-server # NOPRIME rabbitmq-server # NOPRIME
qpid-cpp-server # NOPRIME
sqlite sqlite
sudo sudo
vconfig vconfig

View File

@ -94,6 +94,12 @@ if [[ ! ${DISTRO} =~ (oneiric|precise|quantal|f16) ]]; then
fi fi
fi fi
if [ "${DISTRO}" = "oneiric" ] && is_service_enabled qpid ; then
# Qpid was introduced in precise
echo "You must use Ubuntu Precise or newer for Qpid support."
exit 1
fi
# Set the paths of certain binaries # Set the paths of certain binaries
if [[ "$os_PACKAGE" = "deb" ]]; then if [[ "$os_PACKAGE" = "deb" ]]; then
NOVA_ROOTWRAP=/usr/local/bin/nova-rootwrap NOVA_ROOTWRAP=/usr/local/bin/nova-rootwrap
@ -381,8 +387,8 @@ FLAT_INTERFACE=${FLAT_INTERFACE:-$GUEST_INTERFACE_DEFAULT}
# host. # host.
# MySQL & RabbitMQ # MySQL & (RabbitMQ or Qpid)
# ---------------- # --------------------------
# We configure Nova, Horizon, Glance and Keystone to use MySQL as their # We configure Nova, Horizon, Glance and Keystone to use MySQL as their
# database server. While they share a single server, each has their own # database server. While they share a single server, each has their own
@ -400,8 +406,10 @@ read_password MYSQL_PASSWORD "ENTER A PASSWORD TO USE FOR MYSQL."
BASE_SQL_CONN=${BASE_SQL_CONN:-mysql://$MYSQL_USER:$MYSQL_PASSWORD@$MYSQL_HOST} BASE_SQL_CONN=${BASE_SQL_CONN:-mysql://$MYSQL_USER:$MYSQL_PASSWORD@$MYSQL_HOST}
# Rabbit connection info # Rabbit connection info
RABBIT_HOST=${RABBIT_HOST:-localhost} if is_service_enabled rabbit; then
read_password RABBIT_PASSWORD "ENTER A PASSWORD TO USE FOR RABBIT." RABBIT_HOST=${RABBIT_HOST:-localhost}
read_password RABBIT_PASSWORD "ENTER A PASSWORD TO USE FOR RABBIT."
fi
# Glance connection info. Note the port must be specified. # Glance connection info. Note the port must be specified.
GLANCE_HOSTPORT=${GLANCE_HOSTPORT:-$SERVICE_HOST:9292} GLANCE_HOSTPORT=${GLANCE_HOSTPORT:-$SERVICE_HOST:9292}
@ -756,8 +764,8 @@ EOF
fi fi
# Rabbit # Rabbit or Qpid
# ------ # --------------
if is_service_enabled rabbit; then if is_service_enabled rabbit; then
# Install and start rabbitmq-server # Install and start rabbitmq-server
@ -772,6 +780,13 @@ if is_service_enabled rabbit; then
fi fi
# change the rabbit password since the default is "guest" # change the rabbit password since the default is "guest"
sudo rabbitmqctl change_password guest $RABBIT_PASSWORD sudo rabbitmqctl change_password guest $RABBIT_PASSWORD
elif is_service_enabled qpid; then
if [[ "$os_PACKAGE" = "rpm" ]]; then
install_package qpid-cpp-server
restart_service qpidd
else
install_package qpidd
fi
fi fi
@ -1653,8 +1668,12 @@ add_nova_opt "vncserver_proxyclient_address=$VNCSERVER_PROXYCLIENT_ADDRESS"
add_nova_opt "api_paste_config=$NOVA_CONF_DIR/api-paste.ini" add_nova_opt "api_paste_config=$NOVA_CONF_DIR/api-paste.ini"
add_nova_opt "image_service=nova.image.glance.GlanceImageService" add_nova_opt "image_service=nova.image.glance.GlanceImageService"
add_nova_opt "ec2_dmz_host=$EC2_DMZ_HOST" add_nova_opt "ec2_dmz_host=$EC2_DMZ_HOST"
add_nova_opt "rabbit_host=$RABBIT_HOST" if is_service_enabled rabbit ; then
add_nova_opt "rabbit_password=$RABBIT_PASSWORD" add_nova_opt "rabbit_host=$RABBIT_HOST"
add_nova_opt "rabbit_password=$RABBIT_PASSWORD"
elif is_service_enabled qpid ; then
add_nova_opt "rpc_backend=nova.rpc.impl_qpid"
fi
add_nova_opt "glance_api_servers=$GLANCE_HOSTPORT" add_nova_opt "glance_api_servers=$GLANCE_HOSTPORT"
add_nova_opt "force_dhcp_release=True" add_nova_opt "force_dhcp_release=True"
if [ -n "$INSTANCES_PATH" ]; then if [ -n "$INSTANCES_PATH" ]; then