Merge "Add a generic post-prereq phase"
diff --git a/exercises/euca.sh b/exercises/euca.sh
index 50d4744..d704279 100755
--- a/exercises/euca.sh
+++ b/exercises/euca.sh
@@ -96,7 +96,7 @@
# Attach volume to an instance
euca-attach-volume -i $INSTANCE -d $ATTACH_DEVICE $VOLUME || \
die $LINENO "Failure attaching volume $VOLUME to $INSTANCE"
- if ! timeout $ACTIVE_TIMEOUT sh -c "while ! euca-describe-volumes $VOLUME | grep -q in-use; do sleep 1; done"; then
+ if ! timeout $ACTIVE_TIMEOUT sh -c "while ! euca-describe-volumes $VOLUME | grep -A 1 in-use | grep -q attach; do sleep 1; done"; then
die $LINENO "Could not attach $VOLUME to $INSTANCE"
fi
diff --git a/files/apache-horizon.template b/files/apache-horizon.template
index fb98471..af880c4 100644
--- a/files/apache-horizon.template
+++ b/files/apache-horizon.template
@@ -17,6 +17,7 @@
<Directory %HORIZON_DIR%/>
Options Indexes FollowSymLinks MultiViews
+ %HORIZON_REQUIRE%
AllowOverride None
Order allow,deny
allow from all
diff --git a/files/rpms-suse/nova b/files/rpms-suse/nova
index 04af7f3..a3fd479 100644
--- a/files/rpms-suse/nova
+++ b/files/rpms-suse/nova
@@ -15,6 +15,7 @@
libxml2-python
mysql-community-server # NOPRIME
parted
+polkit
python-M2Crypto
python-m2crypto # dist:sle11sp2
python-Paste
diff --git a/files/rpms/nova b/files/rpms/nova
index 7ff926b..9d8891d 100644
--- a/files/rpms/nova
+++ b/files/rpms/nova
@@ -15,6 +15,7 @@
m2crypto
mysql-server # NOPRIME
parted
+polkit
python-boto
python-carrot
python-cheetah
diff --git a/functions b/functions
index 88e4a62..02c2b3a 100644
--- a/functions
+++ b/functions
@@ -887,9 +887,18 @@
SUDO_PIP="sudo"
CMD_PIP=$(get_pip_command)
fi
+
+ if [[ is_fedora && $DISTRO =~ (rhel6) ]]; then
+ # RHEL6 pip by default doesn't have this (was introduced
+ # around 0.8.1 or so)
+ PIP_USE_MIRRORS=${PIP_USE_MIRRORS:-False}
+ else
+ PIP_USE_MIRRORS=${PIP_USE_MIRRORS:-True}
+ fi
if [[ "$PIP_USE_MIRRORS" != "False" ]]; then
PIP_MIRROR_OPT="--use-mirrors"
fi
+
$SUDO_PIP PIP_DOWNLOAD_CACHE=${PIP_DOWNLOAD_CACHE:-/var/cache/pip} \
HTTP_PROXY=$http_proxy \
HTTPS_PROXY=$https_proxy \
diff --git a/lib/cinder b/lib/cinder
index 221108e..82e7454 100644
--- a/lib/cinder
+++ b/lib/cinder
@@ -234,6 +234,19 @@
)
elif [ "$CINDER_DRIVER" == "sheepdog" ]; then
iniset $CINDER_CONF DEFAULT volume_driver "cinder.volume.drivers.sheepdog.SheepdogDriver"
+ elif [ "$CINDER_DRIVER" == "glusterfs" ]; then
+ # To use glusterfs, set the following in localrc:
+ # CINDER_DRIVER=glusterfs
+ # CINDER_GLUSTERFS_SHARES="127.0.0.1:/vol1;127.0.0.1:/vol2"
+ # Shares are <host>:<volume> and separated by semicolons.
+
+ iniset $CINDER_CONF DEFAULT volume_driver "cinder.volume.drivers.glusterfs.GlusterfsDriver"
+ iniset $CINDER_CONF DEFAULT glusterfs_shares_config "$CINDER_CONF_DIR/glusterfs_shares"
+ touch $CINDER_CONF_DIR/glusterfs_shares
+ if [ ! -z "$CINDER_GLUSTERFS_SHARES" ]; then
+ CINDER_GLUSTERFS_SHARES=$(echo $CINDER_GLUSTERFS_SHARES | tr ";" "\n")
+ echo "$CINDER_GLUSTERFS_SHARES" > $CINDER_CONF_DIR/glusterfs_shares
+ fi
fi
}
diff --git a/lib/horizon b/lib/horizon
index 94aac5c..05bf6d3 100644
--- a/lib/horizon
+++ b/lib/horizon
@@ -102,6 +102,7 @@
sudo mkdir -p $HORIZON_DIR/.blackhole
+ HORIZON_REQUIRE=''
if is_ubuntu; then
APACHE_NAME=apache2
APACHE_CONF=sites-available/horizon
@@ -115,6 +116,12 @@
elif is_fedora; then
APACHE_NAME=httpd
APACHE_CONF=conf.d/horizon.conf
+
+ if [[ "$os_RELEASE" -ge "18" ]]; then
+ # fedora 18 has Require all denied in its httpd.conf
+ # and requires explicit Require all granted
+ HORIZON_REQUIRE='Require all granted'
+ fi
sudo sed '/^Listen/s/^.*$/Listen 0.0.0.0:80/' -i /etc/httpd/conf/httpd.conf
elif is_suse; then
APACHE_NAME=apache2
@@ -132,6 +139,7 @@
s,%HORIZON_DIR%,$HORIZON_DIR,g;
s,%APACHE_NAME%,$APACHE_NAME,g;
s,%DEST%,$DEST,g;
+ s,%HORIZON_REQUIRE%,$HORIZON_REQUIRE,g;
\" $FILES/apache-horizon.template >/etc/$APACHE_NAME/$APACHE_CONF"
}
@@ -156,6 +164,9 @@
if [[ ! -e "/usr/bin/node" ]]; then
install_package nodejs-legacy
fi
+ elif is_fedora && [[ "$os_RELEASE" -ge "18" ]]; then
+ # fedora 18 and higher gets nodejs
+ install_package nodejs
fi
git_clone $HORIZON_REPO $HORIZON_DIR $HORIZON_BRANCH $HORIZON_TAG
diff --git a/lib/quantum b/lib/quantum
index 34d51f8..96ccf20 100644
--- a/lib/quantum
+++ b/lib/quantum
@@ -539,6 +539,8 @@
# Specify the default root helper prior to agent configuration to
# ensure that an agent's configuration can override the default
iniset /$Q_PLUGIN_CONF_FILE AGENT root_helper "$Q_RR_COMMAND"
+ iniset $QUANTUM_CONF DEFAULT verbose True
+ iniset $QUANTUM_CONF DEFAULT debug True
# Configure agent for plugin
quantum_plugin_configure_plugin_agent
diff --git a/lib/quantum_plugins/plumgrid b/lib/quantum_plugins/plumgrid
index b49aa92..912aa7e 100644
--- a/lib/quantum_plugins/plumgrid
+++ b/lib/quantum_plugins/plumgrid
@@ -25,8 +25,10 @@
}
function quantum_plugin_configure_service() {
- iniset /$Q_PLUGIN_CONF_FILE PLUMgridNOS nos_server localhost
- iniset /$Q_PLUGIN_CONF_FILE PLUMgridNOS nos_server_port 7766
+ PLUMGRID_NOS_IP=${PLUMGRID_NOS_IP:-localhost}
+ PLUMGRID_NOS_PORT=${PLUMGRID_NOS_PORT:-7766}
+ iniset /$Q_PLUGIN_CONF_FILE PLUMgridNOS nos_server $PLUMGRID_NOS_IP
+ iniset /$Q_PLUGIN_CONF_FILE PLUMgridNOS nos_server_port $PLUMGRID_NOS_PORT
}
function quantum_plugin_configure_debug_command() {
diff --git a/stack.sh b/stack.sh
index 93b7281..1ac5c8b 100755
--- a/stack.sh
+++ b/stack.sh
@@ -105,7 +105,7 @@
# Warn users who aren't on an explicitly supported distro, but allow them to
# override check and attempt installation with ``FORCE=yes ./stack``
-if [[ ! ${DISTRO} =~ (oneiric|precise|quantal|raring|f16|f17|f18|opensuse-12.2) ]]; then
+if [[ ! ${DISTRO} =~ (oneiric|precise|quantal|raring|f16|f17|f18|opensuse-12.2|rhel6) ]]; then
echo "WARNING: this script has not been tested on $DISTRO"
if [[ "$FORCE" != "yes" ]]; then
die $LINENO "If you wish to run this script anyway run with FORCE=yes"
@@ -935,6 +935,25 @@
iniset $NOVA_CONF baremetal ${I/=/ }
done
+ # PowerVM
+ # -------
+
+ elif [ "$VIRT_DRIVER" = 'powervm' ]; then
+ echo_summary "Using PowerVM driver"
+ POWERVM_MGR_TYPE=${POWERVM_MGR_TYPE:-"ivm"}
+ POWERVM_MGR_HOST=${POWERVM_MGR_HOST:-"powervm.host"}
+ POWERVM_MGR_USER=${POWERVM_MGR_USER:-"padmin"}
+ POWERVM_MGR_PASSWD=${POWERVM_MGR_PASSWD:-"password"}
+ POWERVM_IMG_REMOTE_PATH=${POWERVM_IMG_REMOTE_PATH:-"/tmp"}
+ POWERVM_IMG_LOCAL_PATH=${POWERVM_IMG_LOCAL_PATH:-"/tmp"}
+ iniset $NOVA_CONF DEFAULT compute_driver nova.virt.powervm.PowerVMDriver
+ iniset $NOVA_CONF DEFAULT powervm_mgr_type $POWERVM_MGR_TYPE
+ iniset $NOVA_CONF DEFAULT powervm_mgr $POWERVM_MGR_HOST
+ iniset $NOVA_CONF DEFAULT powervm_mgr_user $POWERVM_MGR_USER
+ iniset $NOVA_CONF DEFAULT powervm_mgr_passwd $POWERVM_MGR_PASSWD
+ iniset $NOVA_CONF DEFAULT powervm_img_remote_path $POWERVM_IMG_REMOTE_PATH
+ iniset $NOVA_CONF DEFAULT powervm_img_local_path $POWERVM_IMG_LOCAL_PATH
+
# Default
# -------