Merge "Enable Xen/DevStackDomU to have larger disk"
diff --git a/files/apts/n-cpu b/files/apts/n-cpu
index 06c21a2..a40b659 100644
--- a/files/apts/n-cpu
+++ b/files/apts/n-cpu
@@ -2,3 +2,4 @@
lvm2
open-iscsi
open-iscsi-utils
+genisoimage
diff --git a/files/rpms/n-cpu b/files/rpms/n-cpu
index 1996a98..f7054e8 100644
--- a/files/rpms/n-cpu
+++ b/files/rpms/n-cpu
@@ -1,3 +1,4 @@
# Stuff for diablo volumes
iscsi-initiator-utils
lvm2
+genisoimage
diff --git a/lib/glance b/lib/glance
index b02a4b6..60026d5 100644
--- a/lib/glance
+++ b/lib/glance
@@ -70,6 +70,13 @@
setup_develop $GLANCECLIENT_DIR
}
+# durable_glance_queues() - Determine if RabbitMQ queues are durable or not
+function durable_glance_queues() {
+ test `rabbitmqctl list_queues name durable | grep true | wc -l` -gt 0 && return 0
+ test `rabbitmqctl list_exchanges name durable | grep true | wc -l` -gt 0 && return 0
+ return 1
+}
+
# configure_glance() - Set config files, create data dirs, etc
function configure_glance() {
setup_develop $GLANCE_DIR
@@ -120,6 +127,12 @@
iniset $GLANCE_API_CONF DEFAULT notifier_strategy rabbit
iniset $GLANCE_API_CONF DEFAULT rabbit_host $RABBIT_HOST
iniset $GLANCE_API_CONF DEFAULT rabbit_password $RABBIT_PASSWORD
+ if [[ durable_glance_queues -eq 0 ]]; then
+ # This gets around https://bugs.launchpad.net/glance/+bug/1074132
+ # that results in a g-api server becoming unresponsive during
+ # startup...
+ iniset $GLANCE_API_CONF DEFAULT rabbit_durable_queues True
+ fi
fi
if [[ "$KEYSTONE_TOKEN_FORMAT" == "PKI" ]]; then
iniset $GLANCE_API_CONF keystone_authtoken signing_dir $GLANCE_AUTH_CACHE_DIR/api
diff --git a/lib/heat b/lib/heat
index d1f1c7c..efdcfad 100644
--- a/lib/heat
+++ b/lib/heat
@@ -23,7 +23,7 @@
# Defaults
# --------
HEAT_DIR=$DEST/heat
-
+HEATCLIENT_DIR=$DEST/python-heatclient
# set up default directories
# cleanup_heat() - Remove residual data files, anything left over from previous
@@ -33,6 +33,11 @@
:
}
+# configure_heatclient() - Set config files, create data dirs, etc
+function configure_heatclient() {
+ setup_develop $HEATCLIENT_DIR
+}
+
# configure_heat() - Set config files, create data dirs, etc
function configure_heat() {
setup_develop $HEAT_DIR
@@ -193,6 +198,11 @@
$HEAT_DIR/tools/nova_create_flavors.sh
}
+# install_heatclient() - Collect source and prepare
+function install_heatclient() {
+ git_clone $HEATCLIENT_REPO $HEATCLIENT_DIR $HEATCLIENT_BRANCH
+}
+
# install_heat() - Collect source and prepare
function install_heat() {
git_clone $HEAT_REPO $HEAT_DIR $HEAT_BRANCH
diff --git a/stack.sh b/stack.sh
index 04037e8..40eab36 100755
--- a/stack.sh
+++ b/stack.sh
@@ -860,6 +860,7 @@
fi
if is_service_enabled heat; then
install_heat
+ install_heatclient
fi
if is_service_enabled cinder; then
install_cinder
@@ -915,6 +916,7 @@
fi
if is_service_enabled heat; then
configure_heat
+ configure_heatclient
fi
if is_service_enabled cinder; then
configure_cinder
@@ -1757,98 +1759,98 @@
# Rebuild the config file from scratch
create_nova_conf
init_nova
-fi
-# Additional Nova configuration that is dependent on other services
-if is_service_enabled quantum; then
- add_nova_opt "network_api_class=nova.network.quantumv2.api.API"
- add_nova_opt "quantum_admin_username=$Q_ADMIN_USERNAME"
- add_nova_opt "quantum_admin_password=$SERVICE_PASSWORD"
- add_nova_opt "quantum_admin_auth_url=$KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_AUTH_PORT/v2.0"
- add_nova_opt "quantum_auth_strategy=$Q_AUTH_STRATEGY"
- add_nova_opt "quantum_admin_tenant_name=$SERVICE_TENANT_NAME"
- add_nova_opt "quantum_url=http://$Q_HOST:$Q_PORT"
+ # Additional Nova configuration that is dependent on other services
+ if is_service_enabled quantum; then
+ add_nova_opt "network_api_class=nova.network.quantumv2.api.API"
+ add_nova_opt "quantum_admin_username=$Q_ADMIN_USERNAME"
+ add_nova_opt "quantum_admin_password=$SERVICE_PASSWORD"
+ add_nova_opt "quantum_admin_auth_url=$KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_AUTH_PORT/v2.0"
+ add_nova_opt "quantum_auth_strategy=$Q_AUTH_STRATEGY"
+ add_nova_opt "quantum_admin_tenant_name=$SERVICE_TENANT_NAME"
+ add_nova_opt "quantum_url=http://$Q_HOST:$Q_PORT"
- if [[ "$Q_PLUGIN" = "openvswitch" ]]; then
- NOVA_VIF_DRIVER="nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver"
- elif [[ "$Q_PLUGIN" = "linuxbridge" ]]; then
- NOVA_VIF_DRIVER="nova.virt.libvirt.vif.QuantumLinuxBridgeVIFDriver"
- elif [[ "$Q_PLUGIN" = "ryu" ]]; then
- NOVA_VIF_DRIVER="quantum.plugins.ryu.nova.vif.LibvirtOpenVswitchOFPRyuDriver"
- add_nova_opt "libvirt_ovs_integration_bridge=$OVS_BRIDGE"
- add_nova_opt "linuxnet_ovs_ryu_api_host=$RYU_API_HOST:$RYU_API_PORT"
- add_nova_opt "libvirt_ovs_ryu_api_host=$RYU_API_HOST:$RYU_API_PORT"
+ if [[ "$Q_PLUGIN" = "openvswitch" ]]; then
+ NOVA_VIF_DRIVER="nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver"
+ elif [[ "$Q_PLUGIN" = "linuxbridge" ]]; then
+ NOVA_VIF_DRIVER="nova.virt.libvirt.vif.QuantumLinuxBridgeVIFDriver"
+ elif [[ "$Q_PLUGIN" = "ryu" ]]; then
+ NOVA_VIF_DRIVER="quantum.plugins.ryu.nova.vif.LibvirtOpenVswitchOFPRyuDriver"
+ add_nova_opt "libvirt_ovs_integration_bridge=$OVS_BRIDGE"
+ add_nova_opt "linuxnet_ovs_ryu_api_host=$RYU_API_HOST:$RYU_API_PORT"
+ add_nova_opt "libvirt_ovs_ryu_api_host=$RYU_API_HOST:$RYU_API_PORT"
+ fi
+ add_nova_opt "libvirt_vif_driver=$NOVA_VIF_DRIVER"
+ add_nova_opt "linuxnet_interface_driver=$LINUXNET_VIF_DRIVER"
+ elif is_service_enabled n-net; then
+ add_nova_opt "network_manager=nova.network.manager.$NET_MAN"
+ add_nova_opt "public_interface=$PUBLIC_INTERFACE"
+ add_nova_opt "vlan_interface=$VLAN_INTERFACE"
+ add_nova_opt "flat_network_bridge=$FLAT_NETWORK_BRIDGE"
+ if [ -n "$FLAT_INTERFACE" ]; then
+ add_nova_opt "flat_interface=$FLAT_INTERFACE"
+ fi
fi
- add_nova_opt "libvirt_vif_driver=$NOVA_VIF_DRIVER"
- add_nova_opt "linuxnet_interface_driver=$LINUXNET_VIF_DRIVER"
-else
- add_nova_opt "network_manager=nova.network.manager.$NET_MAN"
- add_nova_opt "public_interface=$PUBLIC_INTERFACE"
- add_nova_opt "vlan_interface=$VLAN_INTERFACE"
- add_nova_opt "flat_network_bridge=$FLAT_NETWORK_BRIDGE"
- if [ -n "$FLAT_INTERFACE" ]; then
- add_nova_opt "flat_interface=$FLAT_INTERFACE"
+ # All nova-compute workers need to know the vnc configuration options
+ # These settings don't hurt anything if n-xvnc and n-novnc are disabled
+ if is_service_enabled n-cpu; then
+ NOVNCPROXY_URL=${NOVNCPROXY_URL:-"http://$SERVICE_HOST:6080/vnc_auto.html"}
+ add_nova_opt "novncproxy_base_url=$NOVNCPROXY_URL"
+ XVPVNCPROXY_URL=${XVPVNCPROXY_URL:-"http://$SERVICE_HOST:6081/console"}
+ add_nova_opt "xvpvncproxy_base_url=$XVPVNCPROXY_URL"
fi
-fi
-# All nova-compute workers need to know the vnc configuration options
-# These settings don't hurt anything if n-xvnc and n-novnc are disabled
-if is_service_enabled n-cpu; then
- NOVNCPROXY_URL=${NOVNCPROXY_URL:-"http://$SERVICE_HOST:6080/vnc_auto.html"}
- add_nova_opt "novncproxy_base_url=$NOVNCPROXY_URL"
- XVPVNCPROXY_URL=${XVPVNCPROXY_URL:-"http://$SERVICE_HOST:6081/console"}
- add_nova_opt "xvpvncproxy_base_url=$XVPVNCPROXY_URL"
-fi
-if [ "$VIRT_DRIVER" = 'xenserver' ]; then
- VNCSERVER_PROXYCLIENT_ADDRESS=${VNCSERVER_PROXYCLIENT_ADDRESS=169.254.0.1}
-else
- VNCSERVER_PROXYCLIENT_ADDRESS=${VNCSERVER_PROXYCLIENT_ADDRESS=127.0.0.1}
-fi
-# Address on which instance vncservers will listen on compute hosts.
-# For multi-host, this should be the management ip of the compute host.
-VNCSERVER_LISTEN=${VNCSERVER_LISTEN=127.0.0.1}
-add_nova_opt "vncserver_listen=$VNCSERVER_LISTEN"
-add_nova_opt "vncserver_proxyclient_address=$VNCSERVER_PROXYCLIENT_ADDRESS"
-add_nova_opt "ec2_dmz_host=$EC2_DMZ_HOST"
-if is_service_enabled zeromq; then
- add_nova_opt "rpc_backend=nova.openstack.common.rpc.impl_zmq"
-elif is_service_enabled qpid; then
- add_nova_opt "rpc_backend=nova.rpc.impl_qpid"
-elif [ -n "$RABBIT_HOST" ] && [ -n "$RABBIT_PASSWORD" ]; then
- add_nova_opt "rabbit_host=$RABBIT_HOST"
- add_nova_opt "rabbit_password=$RABBIT_PASSWORD"
-fi
-add_nova_opt "glance_api_servers=$GLANCE_HOSTPORT"
+ if [ "$VIRT_DRIVER" = 'xenserver' ]; then
+ VNCSERVER_PROXYCLIENT_ADDRESS=${VNCSERVER_PROXYCLIENT_ADDRESS=169.254.0.1}
+ else
+ VNCSERVER_PROXYCLIENT_ADDRESS=${VNCSERVER_PROXYCLIENT_ADDRESS=127.0.0.1}
+ fi
+ # Address on which instance vncservers will listen on compute hosts.
+ # For multi-host, this should be the management ip of the compute host.
+ VNCSERVER_LISTEN=${VNCSERVER_LISTEN=127.0.0.1}
+ add_nova_opt "vncserver_listen=$VNCSERVER_LISTEN"
+ add_nova_opt "vncserver_proxyclient_address=$VNCSERVER_PROXYCLIENT_ADDRESS"
+ add_nova_opt "ec2_dmz_host=$EC2_DMZ_HOST"
+ if is_service_enabled zeromq; then
+ add_nova_opt "rpc_backend=nova.openstack.common.rpc.impl_zmq"
+ elif is_service_enabled qpid; then
+ add_nova_opt "rpc_backend=nova.rpc.impl_qpid"
+ elif [ -n "$RABBIT_HOST" ] && [ -n "$RABBIT_PASSWORD" ]; then
+ add_nova_opt "rabbit_host=$RABBIT_HOST"
+ add_nova_opt "rabbit_password=$RABBIT_PASSWORD"
+ fi
+ add_nova_opt "glance_api_servers=$GLANCE_HOSTPORT"
-# XenServer
-# ---------
+ # XenServer
+ # ---------
-if [ "$VIRT_DRIVER" = 'xenserver' ]; then
- echo_summary "Using XenServer virtualization driver"
- read_password XENAPI_PASSWORD "ENTER A PASSWORD TO USE FOR XEN."
- add_nova_opt "compute_driver=xenapi.XenAPIDriver"
- XENAPI_CONNECTION_URL=${XENAPI_CONNECTION_URL:-"http://169.254.0.1"}
- XENAPI_USER=${XENAPI_USER:-"root"}
- add_nova_opt "xenapi_connection_url=$XENAPI_CONNECTION_URL"
- add_nova_opt "xenapi_connection_username=$XENAPI_USER"
- add_nova_opt "xenapi_connection_password=$XENAPI_PASSWORD"
- add_nova_opt "flat_injected=False"
- # Need to avoid crash due to new firewall support
- XEN_FIREWALL_DRIVER=${XEN_FIREWALL_DRIVER:-"nova.virt.firewall.IptablesFirewallDriver"}
- add_nova_opt "firewall_driver=$XEN_FIREWALL_DRIVER"
-elif [ "$VIRT_DRIVER" = 'openvz' ]; then
- echo_summary "Using OpenVZ virtualization driver"
- # TODO(deva): OpenVZ driver does not yet work if compute_driver is set here.
- # Replace connection_type when this is fixed.
- # add_nova_opt "compute_driver=openvz.connection.OpenVzConnection"
- add_nova_opt "connection_type=openvz"
- LIBVIRT_FIREWALL_DRIVER=${LIBVIRT_FIREWALL_DRIVER:-"nova.virt.libvirt.firewall.IptablesFirewallDriver"}
- add_nova_opt "firewall_driver=$LIBVIRT_FIREWALL_DRIVER"
-else
- echo_summary "Using libvirt virtualization driver"
- add_nova_opt "compute_driver=libvirt.LibvirtDriver"
- LIBVIRT_FIREWALL_DRIVER=${LIBVIRT_FIREWALL_DRIVER:-"nova.virt.libvirt.firewall.IptablesFirewallDriver"}
- add_nova_opt "firewall_driver=$LIBVIRT_FIREWALL_DRIVER"
+ if [ "$VIRT_DRIVER" = 'xenserver' ]; then
+ echo_summary "Using XenServer virtualization driver"
+ read_password XENAPI_PASSWORD "ENTER A PASSWORD TO USE FOR XEN."
+ add_nova_opt "compute_driver=xenapi.XenAPIDriver"
+ XENAPI_CONNECTION_URL=${XENAPI_CONNECTION_URL:-"http://169.254.0.1"}
+ XENAPI_USER=${XENAPI_USER:-"root"}
+ add_nova_opt "xenapi_connection_url=$XENAPI_CONNECTION_URL"
+ add_nova_opt "xenapi_connection_username=$XENAPI_USER"
+ add_nova_opt "xenapi_connection_password=$XENAPI_PASSWORD"
+ add_nova_opt "flat_injected=False"
+ # Need to avoid crash due to new firewall support
+ XEN_FIREWALL_DRIVER=${XEN_FIREWALL_DRIVER:-"nova.virt.firewall.IptablesFirewallDriver"}
+ add_nova_opt "firewall_driver=$XEN_FIREWALL_DRIVER"
+ elif [ "$VIRT_DRIVER" = 'openvz' ]; then
+ echo_summary "Using OpenVZ virtualization driver"
+ # TODO(deva): OpenVZ driver does not yet work if compute_driver is set here.
+ # Replace connection_type when this is fixed.
+ # add_nova_opt "compute_driver=openvz.connection.OpenVzConnection"
+ add_nova_opt "connection_type=openvz"
+ LIBVIRT_FIREWALL_DRIVER=${LIBVIRT_FIREWALL_DRIVER:-"nova.virt.libvirt.firewall.IptablesFirewallDriver"}
+ add_nova_opt "firewall_driver=$LIBVIRT_FIREWALL_DRIVER"
+ else
+ echo_summary "Using libvirt virtualization driver"
+ add_nova_opt "compute_driver=libvirt.LibvirtDriver"
+ LIBVIRT_FIREWALL_DRIVER=${LIBVIRT_FIREWALL_DRIVER:-"nova.virt.libvirt.firewall.IptablesFirewallDriver"}
+ add_nova_opt "firewall_driver=$LIBVIRT_FIREWALL_DRIVER"
+ fi
fi
diff --git a/stackrc b/stackrc
index 283b271..5be872b 100644
--- a/stackrc
+++ b/stackrc
@@ -101,6 +101,10 @@
HEAT_REPO=${GIT_BASE}/heat-api/heat.git
HEAT_BRANCH=master
+# python heat client library
+HEATCLIENT_REPO=${GIT_BASE}/heat-api/python-heatclient.git
+HEATCLIENT_BRANCH=master
+
# ryu service
RYU_REPO=https://github.com/osrg/ryu.git
RYU_BRANCH=master
diff --git a/tools/build_usb_boot.sh b/tools/build_usb_boot.sh
index f64b7b6..8566229 100755
--- a/tools/build_usb_boot.sh
+++ b/tools/build_usb_boot.sh
@@ -11,7 +11,6 @@
DEST_DIR=${1:-/tmp/syslinux-boot}
PXEDIR=${PXEDIR:-/opt/ramstack/pxe}
-PROGDIR=`dirname $0`
# Clean up any resources that may be in use
cleanup() {
@@ -81,7 +80,7 @@
# Get image into place
if [ ! -r $PXEDIR/stack-initrd.img ]; then
cd $TOP_DIR
- $PROGDIR/build_uec_ramdisk.sh $PXEDIR/stack-initrd.img
+ $TOOLS_DIR/build_uec_ramdisk.sh $PXEDIR/stack-initrd.img
fi
if [ ! -r $PXEDIR/stack-initrd.gz ]; then
gzip -1 -c $PXEDIR/stack-initrd.img >$PXEDIR/stack-initrd.gz
diff --git a/tools/configure_tempest.sh b/tools/configure_tempest.sh
index 070bc0b..b48680c 100755
--- a/tools/configure_tempest.sh
+++ b/tools/configure_tempest.sh
@@ -58,6 +58,9 @@
CONFIG_DIR=$TEMPEST_DIR/etc
TEMPEST_CONF=$CONFIG_DIR/tempest.conf
+DATABASE_TYPE=${DATABASE_TYPE:-mysql}
+initialize_database_backends
+
# Use the GUEST_IP unless an explicit IP is set by ``HOST_IP``
HOST_IP=${HOST_IP:-$GUEST_IP}
# Use the first IP if HOST_IP still is not set