diff --git a/files/apts/nova b/files/apts/nova index 8a3ca4cfa2..3ebf57c6ea 100644 --- a/files/apts/nova +++ b/files/apts/nova @@ -19,6 +19,7 @@ libvirt-bin # NOPRIME vlan curl rabbitmq-server # NOPRIME +qpidd # NOPRIME socat # used by ajaxterm python-mox python-paste @@ -42,3 +43,4 @@ python-boto python-kombu python-feedparser python-iso8601 +python-qpid # dist:precise diff --git a/files/rpms/nova b/files/rpms/nova index 1b1d47f738..bb920267bb 100644 --- a/files/rpms/nova +++ b/files/rpms/nova @@ -29,11 +29,13 @@ python-netaddr python-paramiko python-paste python-paste-deploy +python-qpid python-routes python-sqlalchemy python-suds python-tempita rabbitmq-server # NOPRIME +qpid-cpp-server # NOPRIME sqlite sudo vconfig diff --git a/stack.sh b/stack.sh index 0ee2ab87b6..df26027900 100755 --- a/stack.sh +++ b/stack.sh @@ -94,6 +94,12 @@ if [[ ! ${DISTRO} =~ (oneiric|precise|quantal|f16) ]]; then 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 if [[ "$os_PACKAGE" = "deb" ]]; then NOVA_ROOTWRAP=/usr/local/bin/nova-rootwrap @@ -381,8 +387,8 @@ FLAT_INTERFACE=${FLAT_INTERFACE:-$GUEST_INTERFACE_DEFAULT} # host. -# MySQL & RabbitMQ -# ---------------- +# MySQL & (RabbitMQ or Qpid) +# -------------------------- # We configure Nova, Horizon, Glance and Keystone to use MySQL as their # 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} # Rabbit connection info -RABBIT_HOST=${RABBIT_HOST:-localhost} -read_password RABBIT_PASSWORD "ENTER A PASSWORD TO USE FOR RABBIT." +if is_service_enabled rabbit; then + 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_HOSTPORT=${GLANCE_HOSTPORT:-$SERVICE_HOST:9292} @@ -756,8 +764,8 @@ EOF fi -# Rabbit -# ------ +# Rabbit or Qpid +# -------------- if is_service_enabled rabbit; then # Install and start rabbitmq-server @@ -772,6 +780,13 @@ if is_service_enabled rabbit; then fi # change the rabbit password since the default is "guest" 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 @@ -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 "image_service=nova.image.glance.GlanceImageService" add_nova_opt "ec2_dmz_host=$EC2_DMZ_HOST" -add_nova_opt "rabbit_host=$RABBIT_HOST" -add_nova_opt "rabbit_password=$RABBIT_PASSWORD" +if is_service_enabled rabbit ; then + 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 "force_dhcp_release=True" if [ -n "$INSTANCES_PATH" ]; then