Merge "Move Glance data and Nova state dirs out of source dir"
diff --git a/AUTHORS b/AUTHORS
index 22d5f32..cd0acac 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -30,6 +30,7 @@
Justin Shepherd <galstrom21@gmail.com>
Ken Pepple <ken.pepple@rabbityard.com>
Kiall Mac Innes <kiall@managedit.ie>
+Matt Joyce <matt.joyce@cloudscaling.com>
Osamu Habuka <xiu.yushen@gmail.com>
Russell Bryant <rbryant@redhat.com>
Scott Moser <smoser@ubuntu.com>
diff --git a/exercises/client-args.sh b/exercises/client-args.sh
index 9cbb6a6..b3e2ad8 100755
--- a/exercises/client-args.sh
+++ b/exercises/client-args.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-**client-args.sh**
+# **client-args.sh**
# Test OpenStack client authentication aguemnts handling
@@ -140,8 +140,10 @@
report "Glance" $STATUS_GLANCE
report "Swift" $STATUS_SWIFT
-echo "*********************************************************************"
-echo "SUCCESS: End DevStack Exercise: $0"
-echo "*********************************************************************"
+if (( $RETURN == 0 )); then
+ echo "*********************************************************************"
+ echo "SUCCESS: End DevStack Exercise: $0"
+ echo "*********************************************************************"
+fi
exit $RETURN
diff --git a/exercises/client-env.sh b/exercises/client-env.sh
index 94f4a82..68c0e5a 100755
--- a/exercises/client-env.sh
+++ b/exercises/client-env.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-**client-env.sh**
+# **client-env.sh**
# Test OpenStack client enviroment variable handling
@@ -149,8 +149,10 @@
report "Glance" $STATUS_GLANCE
report "Swift" $STATUS_SWIFT
-echo "*********************************************************************"
-echo "SUCCESS: End DevStack Exercise: $0"
-echo "*********************************************************************"
+if (( $RETURN == 0 )); then
+ echo "*********************************************************************"
+ echo "SUCCESS: End DevStack Exercise: $0"
+ echo "*********************************************************************"
+fi
exit $RETURN
diff --git a/exercises/euca.sh b/exercises/euca.sh
index fb052dd..79405c2 100755
--- a/exercises/euca.sh
+++ b/exercises/euca.sh
@@ -72,6 +72,48 @@
exit 1
fi
+# Volumes
+# -------
+if [[ "$ENABLED_SERVICES" =~ "n-vol" || "$ENABLED_SERVICES" =~ "c-vol" ]]; then
+ VOLUME=`euca-create-volume -s 1 -z $VOLUME_ZONE | cut -f2`
+ die_if_not_set VOLUME "Failure to create volume"
+
+ # Test that volume has been created
+ VOLUME=`euca-describe-volumes | cut -f2`
+
+ # Test volume has become available
+ if ! timeout $ASSOCIATE_TIMEOUT sh -c "while ! euca-describe-volumes $VOLUME | grep -q available; do sleep 1; done"; then
+ echo "volume didnt become available within $RUNNING_TIMEOUT seconds"
+ exit 1
+ fi
+
+ # Attach volume to an instance
+ euca-attach-volume -i $INSTANCE -d $ATTACH_DEVICE $VOLUME || \
+ die "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
+ echo "Could not attach $VOLUME to $INSTANCE"
+ exit 1
+ fi
+
+ # Detach volume from an instance
+ euca-detach-volume $VOLUME || \
+ die "Failure detaching volume $VOLUME to $INSTANCE"
+ if ! timeout $ACTIVE_TIMEOUT sh -c "while ! euca-describe-volumes $VOLUME | grep -q available; do sleep 1; done"; then
+ echo "Could not detach $VOLUME to $INSTANCE"
+ exit 1
+ fi
+
+ # Remove volume
+ euca-delete-volume $VOLUME || \
+ die "Failure to delete volume"
+ if ! timeout $ACTIVE_TIMEOUT sh -c "while euca-describe-volumes | grep $VOLUME; do sleep 1; done"; then
+ echo "Could not delete $VOLUME"
+ exit 1
+ fi
+else
+ echo "Volume Tests Skipped"
+fi
+
# Allocate floating address
FLOATING_IP=`euca-allocate-address | cut -f2`
die_if_not_set FLOATING_IP "Failure allocating floating IP"
diff --git a/files/apts/horizon b/files/apts/horizon
index 53bddf0..2161ccd 100644
--- a/files/apts/horizon
+++ b/files/apts/horizon
@@ -21,3 +21,4 @@
python-cherrypy3 # why?
python-migrate
nodejs
+python-netaddr
diff --git a/files/horizon_settings.py b/files/horizon_settings.py
index 487c06e..d18fd1a 100644
--- a/files/horizon_settings.py
+++ b/files/horizon_settings.py
@@ -41,7 +41,6 @@
HORIZON_CONFIG = {
'dashboards': ('nova', 'syspanel', 'settings',),
'default_dashboard': 'nova',
- 'user_home': 'openstack_dashboard.views.user_home',
}
# TODO(tres): Remove these once Keystone has an API to identify auth backend.
diff --git a/files/keystone_data.sh b/files/keystone_data.sh
index 3791917..e0d5c63 100755
--- a/files/keystone_data.sh
+++ b/files/keystone_data.sh
@@ -171,10 +171,10 @@
--description="Heat Service")
keystone endpoint-create \
--region RegionOne \
- --service_id $HEAT_SERVICE \
- --publicurl "http://$SERVICE_HOST:$HEAT_API_PORT/v1" \
- --adminurl "http://$SERVICE_HOST:$HEAT_API_PORT/v1" \
- --internalurl "http://$SERVICE_HOST:$HEAT_API_PORT/v1"
+ --service_id $HEAT_CFN_SERVICE \
+ --publicurl "http://$SERVICE_HOST:$HEAT_API_CFN_PORT/v1" \
+ --adminurl "http://$SERVICE_HOST:$HEAT_API_CFN_PORT/v1" \
+ --internalurl "http://$SERVICE_HOST:$HEAT_API_CFN_PORT/v1"
fi
fi
diff --git a/files/rpms/horizon b/files/rpms/horizon
index 5e36820..12f75ba 100644
--- a/files/rpms/horizon
+++ b/files/rpms/horizon
@@ -15,6 +15,7 @@
python-kombu
python-migrate
python-mox
+python-netaddr
python-nose
python-paste
python-paste-deploy
diff --git a/files/rpms/nova b/files/rpms/nova
index bb92026..88ad8c3 100644
--- a/files/rpms/nova
+++ b/files/rpms/nova
@@ -35,7 +35,7 @@
python-suds
python-tempita
rabbitmq-server # NOPRIME
-qpid-cpp-server # NOPRIME
+qpid-cpp-server-daemon # NOPRIME
sqlite
sudo
vconfig
diff --git a/files/rpms/quantum b/files/rpms/quantum
index 6ca9c35..05398fc 100644
--- a/files/rpms/quantum
+++ b/files/rpms/quantum
@@ -17,7 +17,7 @@
python-sqlalchemy
python-suds
rabbitmq-server # NOPRIME
-qpid-cpp-server # NOPRIME
+qpid-cpp-server-daemon # NOPRIME
sqlite
sudo
vconfig
diff --git a/lib/heat b/lib/heat
index 6f442f8..0b234c4 100644
--- a/lib/heat
+++ b/lib/heat
@@ -1,7 +1,7 @@
# lib/heat
# Install and start Heat service
# To enable, add the following to localrc
-# ENABLED_SERVICES+=,heat,h-api,h-eng,h-meta
+# ENABLED_SERVICES+=,heat,h-api-cfn,h-api-cw,h-eng,h-meta
# Dependencies:
# - functions
@@ -43,43 +43,47 @@
fi
sudo chown `whoami` $HEAT_CONF_DIR
- HEAT_API_HOST=${HEAT_API_HOST:-$SERVICE_HOST}
- HEAT_API_PORT=${HEAT_API_PORT:-8000}
+ HEAT_API_CFN_HOST=${HEAT_API_CFN_HOST:-$SERVICE_HOST}
+ HEAT_API_CFN_PORT=${HEAT_API_CFN_PORT:-8000}
HEAT_ENGINE_HOST=${HEAT_ENGINE_HOST:-$SERVICE_HOST}
HEAT_ENGINE_PORT=${HEAT_ENGINE_PORT:-8001}
HEAT_METADATA_HOST=${HEAT_METADATA_HOST:-$SERVICE_HOST}
HEAT_METADATA_PORT=${HEAT_METADATA_PORT:-8002}
+ HEAT_API_CW_HOST=${HEAT_API_CW_HOST:-$SERVICE_HOST}
+ HEAT_API_CW_PORT=${HEAT_API_CW_PORT:-8003}
- HEAT_API_CONF=$HEAT_CONF_DIR/heat-api.conf
- cp $HEAT_DIR/etc/heat-api.conf $HEAT_API_CONF
- iniset $HEAT_API_CONF DEFAULT debug True
- inicomment $HEAT_API_CONF DEFAULT log_file
- iniset $HEAT_API_CONF DEFAULT use_syslog $SYSLOG
- iniset $HEAT_API_CONF DEFAULT bind_host $HEAT_API_HOST
- iniset $HEAT_API_CONF DEFAULT bind_port $HEAT_API_PORT
+ # cloudformation api
+ HEAT_API_CFN_CONF=$HEAT_CONF_DIR/heat-api-cfn.conf
+ cp $HEAT_DIR/etc/heat/heat-api-cfn.conf $HEAT_API_CFN_CONF
+ iniset $HEAT_API_CFN_CONF DEFAULT debug True
+ inicomment $HEAT_API_CFN_CONF DEFAULT log_file
+ iniset $HEAT_API_CFN_CONF DEFAULT use_syslog $SYSLOG
+ iniset $HEAT_API_CFN_CONF DEFAULT bind_host $HEAT_API_CFN_HOST
+ iniset $HEAT_API_CFN_CONF DEFAULT bind_port $HEAT_API_CFN_PORT
if is_service_enabled rabbit; then
- iniset $HEAT_API_CONF DEFAULT rpc_backend heat.openstack.common.rpc.impl_kombu
- iniset $HEAT_API_CONF DEFAULT rabbit_password $RABBIT_PASSWORD
- iniset $HEAT_API_CONF DEFAULT rabbit_host $RABBIT_HOST
+ iniset $HEAT_API_CFN_CONF DEFAULT rpc_backend heat.openstack.common.rpc.impl_kombu
+ iniset $HEAT_API_CFN_CONF DEFAULT rabbit_password $RABBIT_PASSWORD
+ iniset $HEAT_API_CFN_CONF DEFAULT rabbit_host $RABBIT_HOST
elif is_service_enabled qpid; then
- iniset $HEAT_API_CONF DEFAULT rpc_backend heat.openstack.common.rpc.impl_qpid
+ iniset $HEAT_API_CFN_CONF DEFAULT rpc_backend heat.openstack.common.rpc.impl_qpid
fi
- HEAT_API_PASTE_INI=$HEAT_CONF_DIR/heat-api-paste.ini
- cp $HEAT_DIR/etc/heat-api-paste.ini $HEAT_API_PASTE_INI
- iniset $HEAT_API_PASTE_INI filter:authtoken auth_host $KEYSTONE_AUTH_HOST
- iniset $HEAT_API_PASTE_INI filter:authtoken auth_port $KEYSTONE_AUTH_PORT
- iniset $HEAT_API_PASTE_INI filter:authtoken auth_protocol $KEYSTONE_AUTH_PROTOCOL
- iniset $HEAT_API_PASTE_INI filter:authtoken auth_uri $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/v2.0
- iniset $HEAT_API_PASTE_INI filter:authtoken admin_tenant_name $SERVICE_TENANT_NAME
- iniset $HEAT_API_PASTE_INI filter:authtoken admin_user heat
- iniset $HEAT_API_PASTE_INI filter:authtoken admin_password $SERVICE_PASSWORD
- iniset $HEAT_API_PASTE_INI filter:ec2authtoken auth_uri $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/v2.0
- iniset $HEAT_API_PASTE_INI filter:ec2authtoken keystone_ec2_uri $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/v2.0/ec2tokens
+ HEAT_API_CFN_PASTE_INI=$HEAT_CONF_DIR/heat-api-cfn-paste.ini
+ cp $HEAT_DIR/etc/heat/heat-api-cfn-paste.ini $HEAT_API_CFN_PASTE_INI
+ iniset $HEAT_API_CFN_PASTE_INI filter:authtoken auth_host $KEYSTONE_AUTH_HOST
+ iniset $HEAT_API_CFN_PASTE_INI filter:authtoken auth_port $KEYSTONE_AUTH_PORT
+ iniset $HEAT_API_CFN_PASTE_INI filter:authtoken auth_protocol $KEYSTONE_AUTH_PROTOCOL
+ iniset $HEAT_API_CFN_PASTE_INI filter:authtoken auth_uri $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/v2.0
+ iniset $HEAT_API_CFN_PASTE_INI filter:authtoken admin_tenant_name $SERVICE_TENANT_NAME
+ iniset $HEAT_API_CFN_PASTE_INI filter:authtoken admin_user heat
+ iniset $HEAT_API_CFN_PASTE_INI filter:authtoken admin_password $SERVICE_PASSWORD
+ iniset $HEAT_API_CFN_PASTE_INI filter:ec2authtoken auth_uri $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/v2.0
+ iniset $HEAT_API_CFN_PASTE_INI filter:ec2authtoken keystone_ec2_uri $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/v2.0/ec2tokens
+ # engine
HEAT_ENGINE_CONF=$HEAT_CONF_DIR/heat-engine.conf
- cp $HEAT_DIR/etc/heat-engine.conf $HEAT_ENGINE_CONF
+ cp $HEAT_DIR/etc/heat/heat-engine.conf $HEAT_ENGINE_CONF
iniset $HEAT_ENGINE_CONF DEFAULT debug True
inicomment $HEAT_ENGINE_CONF DEFAULT log_file
iniset $HEAT_ENGINE_CONF DEFAULT use_syslog $SYSLOG
@@ -96,18 +100,9 @@
iniset $HEAT_ENGINE_CONF DEFAULT rpc_backend heat.openstack.common.rpc.impl_qpid
fi
- HEAT_ENGINE_PASTE_INI=$HEAT_CONF_DIR/heat-engine-paste.ini
- cp $HEAT_DIR/etc/heat-engine-paste.ini $HEAT_ENGINE_PASTE_INI
- iniset $HEAT_ENGINE_PASTE_INI filter:authtoken auth_host $KEYSTONE_AUTH_HOST
- iniset $HEAT_ENGINE_PASTE_INI filter:authtoken auth_port $KEYSTONE_AUTH_PORT
- iniset $HEAT_ENGINE_PASTE_INI filter:authtoken auth_protocol $KEYSTONE_AUTH_PROTOCOL
- iniset $HEAT_ENGINE_PASTE_INI filter:authtoken auth_uri $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/v2.0
- iniset $HEAT_ENGINE_PASTE_INI filter:authtoken admin_tenant_name $SERVICE_TENANT_NAME
- iniset $HEAT_ENGINE_PASTE_INI filter:authtoken admin_user heat
- iniset $HEAT_ENGINE_PASTE_INI filter:authtoken admin_password $SERVICE_PASSWORD
-
+ # metadata api
HEAT_METADATA_CONF=$HEAT_CONF_DIR/heat-metadata.conf
- cp $HEAT_DIR/etc/heat-metadata.conf $HEAT_METADATA_CONF
+ cp $HEAT_DIR/etc/heat/heat-metadata.conf $HEAT_METADATA_CONF
iniset $HEAT_METADATA_CONF DEFAULT debug True
inicomment $HEAT_METADATA_CONF DEFAULT log_file
iniset $HEAT_METADATA_CONF DEFAULT use_syslog $SYSLOG
@@ -123,8 +118,36 @@
fi
HEAT_METADATA_PASTE_INI=$HEAT_CONF_DIR/heat-metadata-paste.ini
- cp $HEAT_DIR/etc/heat-metadata-paste.ini $HEAT_METADATA_PASTE_INI
+ cp $HEAT_DIR/etc/heat/heat-metadata-paste.ini $HEAT_METADATA_PASTE_INI
+ # cloudwatch api
+ HEAT_API_CW_CONF=$HEAT_CONF_DIR/heat-api-cloudwatch.conf
+ cp $HEAT_DIR/etc/heat/heat-api-cloudwatch.conf $HEAT_API_CW_CONF
+ iniset $HEAT_API_CW_CONF DEFAULT debug True
+ inicomment $HEAT_API_CW_CONF DEFAULT log_file
+ iniset $HEAT_API_CW_CONF DEFAULT use_syslog $SYSLOG
+ iniset $HEAT_API_CW_CONF DEFAULT bind_host $HEAT_API_CW_HOST
+ iniset $HEAT_API_CW_CONF DEFAULT bind_port $HEAT_API_CW_PORT
+
+ if is_service_enabled rabbit; then
+ iniset $HEAT_API_CW_CONF DEFAULT rpc_backend heat.openstack.common.rpc.impl_kombu
+ iniset $HEAT_API_CW_CONF DEFAULT rabbit_password $RABBIT_PASSWORD
+ iniset $HEAT_API_CW_CONF DEFAULT rabbit_host $RABBIT_HOST
+ elif is_service_enabled qpid; then
+ iniset $HEAT_API_CW_CONF DEFAULT rpc_backend heat.openstack.common.rpc.impl_qpid
+ fi
+
+ HEAT_API_CW_PASTE_INI=$HEAT_CONF_DIR/heat-api-cloudwatch-paste.ini
+ cp $HEAT_DIR/etc/heat/heat-api-cloudwatch-paste.ini $HEAT_API_CW_PASTE_INI
+ iniset $HEAT_API_CW_PASTE_INI filter:authtoken auth_host $KEYSTONE_AUTH_HOST
+ iniset $HEAT_API_CW_PASTE_INI filter:authtoken auth_port $KEYSTONE_AUTH_PORT
+ iniset $HEAT_API_CW_PASTE_INI filter:authtoken auth_protocol $KEYSTONE_AUTH_PROTOCOL
+ iniset $HEAT_API_CW_PASTE_INI filter:authtoken auth_uri $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/v2.0
+ iniset $HEAT_API_CW_PASTE_INI filter:authtoken admin_tenant_name $SERVICE_TENANT_NAME
+ iniset $HEAT_API_CW_PASTE_INI filter:authtoken admin_user heat
+ iniset $HEAT_API_CW_PASTE_INI filter:authtoken admin_password $SERVICE_PASSWORD
+ iniset $HEAT_API_CW_PASTE_INI filter:ec2authtoken auth_uri $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/v2.0
+ iniset $HEAT_API_CW_PASTE_INI filter:ec2authtoken keystone_ec2_uri $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/v2.0/ec2tokens
}
# init_heat() - Initialize database
@@ -145,7 +168,8 @@
# start_heat() - Start running processes, including screen
function start_heat() {
screen_it h-eng "cd $HEAT_DIR; bin/heat-engine --config-file=$HEAT_CONF_DIR/heat-engine.conf"
- screen_it h-api "cd $HEAT_DIR; bin/heat-api --config-dir=$HEAT_CONF_DIR/heat-api.conf"
+ screen_it h-api-cfn "cd $HEAT_DIR; bin/heat-api-cfn --config-dir=$HEAT_CONF_DIR/heat-api-cfn.conf"
+ screen_it h-api-cw "cd $HEAT_DIR; bin/heat-api-cloudwatch --config-dir=$HEAT_CONF_DIR/heat-api-cloudwatch.conf"
screen_it h-meta "cd $HEAT_DIR; bin/heat-metadata --config-dir=$HEAT_CONF_DIR/heat-metadata.conf"
}
diff --git a/lib/keystone b/lib/keystone
index a0cc601..a6ab5a3 100644
--- a/lib/keystone
+++ b/lib/keystone
@@ -36,7 +36,7 @@
KEYSTONECLIENT_DIR=$DEST/python-keystoneclient
# Select the backend for Keystopne's service catalog
-KEYSTONE_CATALOG_BACKEND=${KEYSTONE_CATALOG_BACKEND:-template}
+KEYSTONE_CATALOG_BACKEND=${KEYSTONE_CATALOG_BACKEND:-sql}
KEYSTONE_CATALOG=$KEYSTONE_CONF_DIR/default_catalog.templates
# Set Keystone interface configuration
diff --git a/stack.sh b/stack.sh
index fa1bf46..e444e38 100755
--- a/stack.sh
+++ b/stack.sh
@@ -686,7 +686,7 @@
rm -f "$tfile"
elif is_service_enabled qpid; then
if [[ "$os_PACKAGE" = "rpm" ]]; then
- install_package qpid-cpp-server
+ install_package qpid-cpp-server-daemon
else
install_package qpidd
fi
@@ -1013,7 +1013,7 @@
ADMIN_PASSWORD=$ADMIN_PASSWORD SERVICE_TENANT_NAME=$SERVICE_TENANT_NAME SERVICE_PASSWORD=$SERVICE_PASSWORD \
SERVICE_TOKEN=$SERVICE_TOKEN SERVICE_ENDPOINT=$SERVICE_ENDPOINT SERVICE_HOST=$SERVICE_HOST \
S3_SERVICE_PORT=$S3_SERVICE_PORT KEYSTONE_CATALOG_BACKEND=$KEYSTONE_CATALOG_BACKEND \
- DEVSTACK_DIR=$TOP_DIR ENABLED_SERVICES=$ENABLED_SERVICES HEAT_API_PORT=$HEAT_API_PORT \
+ DEVSTACK_DIR=$TOP_DIR ENABLED_SERVICES=$ENABLED_SERVICES HEAT_API_CFN_PORT=$HEAT_API_CFN_PORT \
bash -x $FILES/keystone_data.sh
# Set up auth creds now that keystone is bootstrapped
diff --git a/tools/xen/prepare_guest_template.sh b/tools/xen/prepare_guest_template.sh
index 60782d0..baf9c3a 100755
--- a/tools/xen/prepare_guest_template.sh
+++ b/tools/xen/prepare_guest_template.sh
@@ -49,7 +49,7 @@
XS_TOOLS_FILE_NAME="xs-tools.deb"
XS_TOOLS_PATH="/root/$XS_TOOLS_FILE_NAME"
if [ -e "$ISO_DIR" ]; then
- TOOLS_ISO=$(ls $ISO_DIR/xs-tools-*.iso)
+ TOOLS_ISO=$(ls -1 $ISO_DIR/xs-tools-*.iso | head -1)
TMP_DIR=/tmp/temp.$RANDOM
mkdir -p $TMP_DIR
mount -o loop $TOOLS_ISO $TMP_DIR