Merge "Put cinder rootwrap config in separate function"
diff --git a/files/rpms/cinder b/files/rpms/cinder
index c4edb68..623c13e 100644
--- a/files/rpms/cinder
+++ b/files/rpms/cinder
@@ -4,3 +4,4 @@
python-devel
postgresql-devel
iscsi-initiator-utils
+python-lxml #dist:f18,f19,f20
diff --git a/files/rpms/general b/files/rpms/general
index 2db31d1..40246ea 100644
--- a/files/rpms/general
+++ b/files/rpms/general
@@ -20,6 +20,7 @@
tcpdump
unzip
wget
+which
# [1] : some of installed tools have unversioned dependencies on this,
# but others have versioned (<=0.7). So if a later version (0.7.1)
diff --git a/files/rpms/glance b/files/rpms/glance
index dd66171..fffd9c8 100644
--- a/files/rpms/glance
+++ b/files/rpms/glance
@@ -1,6 +1,6 @@
gcc
libffi-devel # testonly
-libxml2-devel
+libxml2-devel # testonly
libxslt-devel # testonly
mysql-devel # testonly
openssl-devel # testonly
@@ -9,7 +9,8 @@
python-devel
python-eventlet
python-greenlet
-python-paste-deploy #dist:f16,f17,f18,f19
+python-lxml #dist:f18,f19,f20
+python-paste-deploy #dist:f18,f19,f20
python-routes
python-sqlalchemy
python-wsgiref
diff --git a/files/rpms/horizon b/files/rpms/horizon
index aa27ab4..59503cc 100644
--- a/files/rpms/horizon
+++ b/files/rpms/horizon
@@ -16,8 +16,8 @@
python-migrate
python-mox
python-nose
-python-paste #dist:f16,f17,f18,f19
-python-paste-deploy #dist:f16,f17,f18,f19
+python-paste #dist:f18,f19,f20
+python-paste-deploy #dist:f18,f19,f20
python-routes
python-sphinx
python-sqlalchemy
diff --git a/files/rpms/keystone b/files/rpms/keystone
index 52dbf47..99e8524 100644
--- a/files/rpms/keystone
+++ b/files/rpms/keystone
@@ -1,11 +1,11 @@
python-greenlet
-python-lxml #dist:f16,f17,f18,f19
-python-paste #dist:f16,f17,f18,f19
-python-paste-deploy #dist:f16,f17,f18,f19
-python-paste-script #dist:f16,f17,f18,f19
+libxslt-devel # dist:f20
+python-lxml #dist:f18,f19,f20
+python-paste #dist:f18,f19,f20
+python-paste-deploy #dist:f18,f19,f20
+python-paste-script #dist:f18,f19,f20
python-routes
python-sqlalchemy
-python-sqlite2
python-webob
sqlite
diff --git a/files/rpms/neutron b/files/rpms/neutron
index a7700f7..67bf523 100644
--- a/files/rpms/neutron
+++ b/files/rpms/neutron
@@ -11,8 +11,8 @@
python-iso8601
python-kombu
#rhel6 gets via pip
-python-paste # dist:f16,f17,f18,f19
-python-paste-deploy # dist:f16,f17,f18,f19
+python-paste # dist:f18,f19,f20
+python-paste-deploy # dist:f18,f19,f20
python-qpid
python-routes
python-sqlalchemy
diff --git a/files/rpms/nova b/files/rpms/nova
index c99f3de..ac70ac5 100644
--- a/files/rpms/nova
+++ b/files/rpms/nova
@@ -28,11 +28,11 @@
python-lockfile
python-migrate
python-mox
-python-paramiko # dist:f16,f17,f18,f19
+python-paramiko # dist:f18,f19,f20
# ^ on RHEL, brings in python-crypto which conflicts with version from
# pip we need
-python-paste # dist:f16,f17,f18,f19
-python-paste-deploy # dist:f16,f17,f18,f19
+python-paste # dist:f18,f19,f20
+python-paste-deploy # dist:f18,f19,f20
python-qpid
python-routes
python-sqlalchemy
diff --git a/files/rpms/swift b/files/rpms/swift
index b137f30..32432bc 100644
--- a/files/rpms/swift
+++ b/files/rpms/swift
@@ -9,7 +9,7 @@
python-greenlet
python-netifaces
python-nose
-python-paste-deploy # dist:f16,f17,f18,f19
+python-paste-deploy # dist:f18,f19,f20
python-simplejson
python-webob
pyxattr
diff --git a/files/rpms/tempest b/files/rpms/tempest
index de32b81..e7bbd43 100644
--- a/files/rpms/tempest
+++ b/files/rpms/tempest
@@ -1 +1 @@
-libxslt-dev
\ No newline at end of file
+libxslt-devel
diff --git a/files/rpms/trove b/files/rpms/trove
index 09dcee8..c5cbdea 100644
--- a/files/rpms/trove
+++ b/files/rpms/trove
@@ -1 +1 @@
-libxslt1-dev # testonly
+libxslt-devel # testonly
diff --git a/functions b/functions
index e79e1d5..6f09685 100644
--- a/functions
+++ b/functions
@@ -1364,11 +1364,11 @@
if [[ $image_url != file* ]]; then
# Downloads the image (uec ami+aki style), then extracts it.
if [[ ! -f $FILES/$IMAGE_FNAME || "$(stat -c "%s" $FILES/$IMAGE_FNAME)" = "0" ]]; then
- wget -c $image_url -O $FILES/$IMAGE_FNAME
- if [[ $? -ne 0 ]]; then
- echo "Not found: $image_url"
- return
- fi
+ wget -c $image_url -O $FILES/$IMAGE_FNAME
+ if [[ $? -ne 0 ]]; then
+ echo "Not found: $image_url"
+ return
+ fi
fi
IMAGE="$FILES/${IMAGE_FNAME}"
else
@@ -1420,7 +1420,7 @@
vmdk_create_type="${vmdk_create_type%?}"
descriptor_data_pair_msg="Monolithic flat and VMFS disks "`
- `"should use a descriptor-data pair."
+ `"should use a descriptor-data pair."
if [[ "$vmdk_create_type" = "monolithicSparse" ]]; then
vmdk_disktype="sparse"
elif [[ "$vmdk_create_type" = "monolithicFlat" || \
@@ -1435,7 +1435,7 @@
path_len=`expr ${#image_url} - ${#IMAGE_FNAME}`
flat_url="${image_url:0:$path_len}$flat_fname"
warn $LINENO "$descriptor_data_pair_msg"`
- `" Attempt to retrieve the *-flat.vmdk: $flat_url"
+ `" Attempt to retrieve the *-flat.vmdk: $flat_url"
if [[ $flat_url != file* ]]; then
if [[ ! -f $FILES/$flat_fname || \
"$(stat -c "%s" $FILES/$flat_fname)" = "0" ]]; then
@@ -1474,7 +1474,7 @@
flat_path="${image_url:0:$path_len}"
descriptor_url=$flat_path$descriptor_fname
warn $LINENO "$descriptor_data_pair_msg"`
- `" Attempt to retrieve the descriptor *.vmdk: $descriptor_url"
+ `" Attempt to retrieve the descriptor *.vmdk: $descriptor_url"
if [[ $flat_path != file* ]]; then
if [[ ! -f $FILES/$descriptor_fname || \
"$(stat -c "%s" $FILES/$descriptor_fname)" = "0" ]]; then
@@ -1489,8 +1489,8 @@
descriptor_url=$(echo $descriptor_url | sed "s/^file:\/\///g")
if [[ ! -f $descriptor_url || \
"$(stat -c "%s" $descriptor_url)" == "0" ]]; then
- warn $LINENO "Descriptor not found $descriptor_url"
- descriptor_found=false
+ warn $LINENO "Descriptor not found $descriptor_url"
+ descriptor_found=false
fi
fi
if $descriptor_found; then
@@ -1498,10 +1498,10 @@
`"grep -a -F -m 1 'ddb.adapterType =' $descriptor_url)"
vmdk_adapter_type="${vmdk_adapter_type#*\"}"
vmdk_adapter_type="${vmdk_adapter_type%?}"
- fi
- fi
- #TODO(alegendre): handle streamOptimized once supported by the VMware driver.
- vmdk_disktype="preallocated"
+ fi
+ fi
+ #TODO(alegendre): handle streamOptimized once supported by the VMware driver.
+ vmdk_disktype="preallocated"
else
#TODO(alegendre): handle streamOptimized once supported by the VMware driver.
vmdk_disktype="preallocated"
diff --git a/lib/cinder b/lib/cinder
index 6f5fb18..1c5c36b 100644
--- a/lib/cinder
+++ b/lib/cinder
@@ -346,7 +346,7 @@
-e 's/snapshot_autoextend_percent =.*/snapshot_autoextend_percent = 20/' \
/etc/lvm/lvm.conf
fi
- iniset $CINDER_CONF keystone_authtoken auth_uri $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT
+ configure_API_version $CINDER_CONF $IDENTITY_API_VERSION
iniset $CINDER_CONF keystone_authtoken admin_user cinder
iniset $CINDER_CONF keystone_authtoken admin_tenant_name $SERVICE_TENANT_NAME
iniset $CINDER_CONF keystone_authtoken admin_password $SERVICE_PASSWORD
@@ -370,7 +370,7 @@
CINDER_USER=$(keystone user-create \
--name=cinder \
--pass="$SERVICE_PASSWORD" \
- --tenant_id $SERVICE_TENANT \
+ --tenant-id $SERVICE_TENANT \
--email=cinder@example.com \
| grep " id " | get_field 2)
keystone user-role-add \
diff --git a/lib/glance b/lib/glance
index 135136d..321174e 100644
--- a/lib/glance
+++ b/lib/glance
@@ -83,7 +83,7 @@
iniset $GLANCE_REGISTRY_CONF keystone_authtoken auth_port $KEYSTONE_AUTH_PORT
iniset $GLANCE_REGISTRY_CONF keystone_authtoken auth_protocol $KEYSTONE_AUTH_PROTOCOL
iniset $GLANCE_REGISTRY_CONF keystone_authtoken cafile $KEYSTONE_SSL_CA
- iniset $GLANCE_REGISTRY_CONF keystone_authtoken auth_uri $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/
+ configure_API_version $GLANCE_REGISTRY_CONF $IDENTITY_API_VERSION
iniset $GLANCE_REGISTRY_CONF keystone_authtoken admin_tenant_name $SERVICE_TENANT_NAME
iniset $GLANCE_REGISTRY_CONF keystone_authtoken admin_user glance
iniset $GLANCE_REGISTRY_CONF keystone_authtoken admin_password $SERVICE_PASSWORD
@@ -101,7 +101,7 @@
iniset $GLANCE_API_CONF keystone_authtoken auth_port $KEYSTONE_AUTH_PORT
iniset $GLANCE_API_CONF keystone_authtoken auth_protocol $KEYSTONE_AUTH_PROTOCOL
iniset $GLANCE_API_CONF keystone_authtoken cafile $KEYSTONE_SSL_CA
- iniset $GLANCE_API_CONF keystone_authtoken auth_uri $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/
+ configure_API_version $GLANCE_API_CONF $IDENTITY_API_VERSION
iniset $GLANCE_API_CONF keystone_authtoken admin_tenant_name $SERVICE_TENANT_NAME
iniset $GLANCE_API_CONF keystone_authtoken admin_user glance
iniset $GLANCE_API_CONF keystone_authtoken admin_password $SERVICE_PASSWORD
diff --git a/lib/heat b/lib/heat
index e44a618..59fd3d7 100644
--- a/lib/heat
+++ b/lib/heat
@@ -95,7 +95,7 @@
iniset $HEAT_CONF keystone_authtoken auth_host $KEYSTONE_AUTH_HOST
iniset $HEAT_CONF keystone_authtoken auth_port $KEYSTONE_AUTH_PORT
iniset $HEAT_CONF keystone_authtoken auth_protocol $KEYSTONE_AUTH_PROTOCOL
- iniset $HEAT_CONF keystone_authtoken auth_uri $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/v2.0
+ configure_API_version $HEAT_CONF $IDENTITY_API_VERSION
iniset $HEAT_CONF keystone_authtoken cafile $KEYSTONE_SSL_CA
iniset $HEAT_CONF keystone_authtoken admin_tenant_name $SERVICE_TENANT_NAME
iniset $HEAT_CONF keystone_authtoken admin_user heat
diff --git a/lib/ironic b/lib/ironic
index 099746a..1ff3c81 100644
--- a/lib/ironic
+++ b/lib/ironic
@@ -149,11 +149,11 @@
IRONIC_USER=$(keystone user-create \
--name=ironic \
--pass="$SERVICE_PASSWORD" \
- --tenant_id $SERVICE_TENANT \
+ --tenant-id $SERVICE_TENANT \
--email=ironic@example.com \
| grep " id " | get_field 2)
keystone user-role-add \
- --tenant_id $SERVICE_TENANT \
+ --tenant-id $SERVICE_TENANT \
--user_id $IRONIC_USER \
--role_id $ADMIN_ROLE
if [[ "$KEYSTONE_CATALOG_BACKEND" = 'sql' ]]; then
diff --git a/lib/keystone b/lib/keystone
index 29b9604..79f1fd9 100644
--- a/lib/keystone
+++ b/lib/keystone
@@ -335,6 +335,14 @@
fi
}
+# Configure the API version for the OpenStack projects.
+# configure_API_version conf_file version
+function configure_API_version() {
+ local conf_file=$1
+ local api_version=$2
+ iniset $conf_file keystone_authtoken auth_uri $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/v$api_version
+}
+
# init_keystone() - Initialize databases, etc.
function init_keystone() {
if is_service_enabled ldap; then
diff --git a/lib/marconi b/lib/marconi
index 742f866..6b9ffdc 100644
--- a/lib/marconi
+++ b/lib/marconi
@@ -142,7 +142,7 @@
MARCONI_USER=$(get_id keystone user-create --name=marconi \
--pass="$SERVICE_PASSWORD" \
- --tenant_id $SERVICE_TENANT \
+ --tenant-id $SERVICE_TENANT \
--email=marconi@example.com)
keystone user-role-add --tenant-id $SERVICE_TENANT \
--user-id $MARCONI_USER \
diff --git a/lib/neutron b/lib/neutron
index a7519ad..43f43f9 100644
--- a/lib/neutron
+++ b/lib/neutron
@@ -328,7 +328,7 @@
NEUTRON_USER=$(keystone user-create \
--name=neutron \
--pass="$SERVICE_PASSWORD" \
- --tenant_id $SERVICE_TENANT \
+ --tenant-id $SERVICE_TENANT \
--email=neutron@example.com \
| grep " id " | get_field 2)
keystone user-role-add \
@@ -357,7 +357,7 @@
# Create a small network
# Since neutron command is executed in admin context at this point,
- # ``--tenant_id`` needs to be specified.
+ # ``--tenant-id`` needs to be specified.
if is_baremetal; then
if [[ "$PUBLIC_INTERFACE" == '' || "$OVS_PHYSICAL_BRIDGE" == '' ]]; then
die $LINENO "Neutron settings for baremetal not set.. exiting"
@@ -367,16 +367,16 @@
sudo ip addr del $IP dev $PUBLIC_INTERFACE
sudo ip addr add $IP dev $OVS_PHYSICAL_BRIDGE
done
- NET_ID=$(neutron net-create $PHYSICAL_NETWORK --tenant_id $TENANT_ID --provider:network_type flat --provider:physical_network "$PHYSICAL_NETWORK" | grep ' id ' | get_field 2)
+ NET_ID=$(neutron net-create $PHYSICAL_NETWORK --tenant-id $TENANT_ID --provider:network_type flat --provider:physical_network "$PHYSICAL_NETWORK" | grep ' id ' | get_field 2)
die_if_not_set $LINENO NET_ID "Failure creating NET_ID for $PHYSICAL_NETWORK $TENANT_ID"
- SUBNET_ID=$(neutron subnet-create --tenant_id $TENANT_ID --ip_version 4 ${ALLOCATION_POOL:+--allocation-pool $ALLOCATION_POOL} --gateway $NETWORK_GATEWAY --name $PRIVATE_SUBNET_NAME $NET_ID $FIXED_RANGE | grep ' id ' | get_field 2)
+ SUBNET_ID=$(neutron subnet-create --tenant-id $TENANT_ID --ip_version 4 ${ALLOCATION_POOL:+--allocation-pool $ALLOCATION_POOL} --gateway $NETWORK_GATEWAY --name $PRIVATE_SUBNET_NAME $NET_ID $FIXED_RANGE | grep ' id ' | get_field 2)
die_if_not_set $LINENO SUBNET_ID "Failure creating SUBNET_ID for $TENANT_ID"
sudo ifconfig $OVS_PHYSICAL_BRIDGE up
sudo route add default gw $NETWORK_GATEWAY dev $OVS_PHYSICAL_BRIDGE
else
- NET_ID=$(neutron net-create --tenant_id $TENANT_ID "$PRIVATE_NETWORK_NAME" | grep ' id ' | get_field 2)
+ NET_ID=$(neutron net-create --tenant-id $TENANT_ID "$PRIVATE_NETWORK_NAME" | grep ' id ' | get_field 2)
die_if_not_set $LINENO NET_ID "Failure creating NET_ID for $PHYSICAL_NETWORK $TENANT_ID"
- SUBNET_ID=$(neutron subnet-create --tenant_id $TENANT_ID --ip_version 4 --gateway $NETWORK_GATEWAY --name $PRIVATE_SUBNET_NAME $NET_ID $FIXED_RANGE | grep ' id ' | get_field 2)
+ SUBNET_ID=$(neutron subnet-create --tenant-id $TENANT_ID --ip_version 4 --gateway $NETWORK_GATEWAY --name $PRIVATE_SUBNET_NAME $NET_ID $FIXED_RANGE | grep ' id ' | get_field 2)
die_if_not_set $LINENO SUBNET_ID "Failure creating SUBNET_ID for $TENANT_ID"
fi
@@ -384,7 +384,7 @@
# Create a router, and add the private subnet as one of its interfaces
if [[ "$Q_L3_ROUTER_PER_TENANT" == "True" ]]; then
# create a tenant-owned router.
- ROUTER_ID=$(neutron router-create --tenant_id $TENANT_ID $Q_ROUTER_NAME | grep ' id ' | get_field 2)
+ ROUTER_ID=$(neutron router-create --tenant-id $TENANT_ID $Q_ROUTER_NAME | grep ' id ' | get_field 2)
die_if_not_set $LINENO ROUTER_ID "Failure creating ROUTER_ID for $TENANT_ID $Q_ROUTER_NAME"
else
# Plugin only supports creating a single router, which should be admin owned.
diff --git a/lib/nova b/lib/nova
index e754341..88f9be7 100644
--- a/lib/nova
+++ b/lib/nova
@@ -318,7 +318,7 @@
NOVA_USER=$(keystone user-create \
--name=nova \
--pass="$SERVICE_PASSWORD" \
- --tenant_id $SERVICE_TENANT \
+ --tenant-id $SERVICE_TENANT \
--email=nova@example.com \
| grep " id " | get_field 2)
keystone user-role-add \
@@ -377,6 +377,7 @@
iniset $NOVA_CONF DEFAULT osapi_compute_workers "4"
iniset $NOVA_CONF DEFAULT ec2_workers "4"
iniset $NOVA_CONF DEFAULT metadata_workers "4"
+ iniset $NOVA_CONF conductor workers "4"
iniset $NOVA_CONF DEFAULT sql_connection `database_connection_url nova`
iniset $NOVA_CONF DEFAULT fatal_deprecations "True"
iniset $NOVA_CONF DEFAULT instance_name_template "${INSTANCE_NAME_PREFIX}%08x"
diff --git a/lib/savanna b/lib/savanna
index 6794e36..bb4dfe6 100644
--- a/lib/savanna
+++ b/lib/savanna
@@ -56,7 +56,7 @@
SAVANNA_USER=$(keystone user-create \
--name=savanna \
--pass="$SERVICE_PASSWORD" \
- --tenant_id $SERVICE_TENANT \
+ --tenant-id $SERVICE_TENANT \
--email=savanna@example.com \
| grep " id " | get_field 2)
keystone user-role-add \
diff --git a/lib/swift b/lib/swift
index 96929db..44c230b 100644
--- a/lib/swift
+++ b/lib/swift
@@ -514,7 +514,7 @@
ADMIN_ROLE=$(keystone role-list | awk "/ admin / { print \$2 }")
SWIFT_USER=$(keystone user-create --name=swift --pass="$SERVICE_PASSWORD" \
- --tenant_id $SERVICE_TENANT --email=swift@example.com | grep " id " | get_field 2)
+ --tenant-id $SERVICE_TENANT --email=swift@example.com | grep " id " | get_field 2)
keystone user-role-add --tenant-id $SERVICE_TENANT --user-id $SWIFT_USER --role-id $ADMIN_ROLE
if [[ "$KEYSTONE_CATALOG_BACKEND" = 'sql' ]]; then
diff --git a/lib/tempest b/lib/tempest
index 95b300c..08c0553 100644
--- a/lib/tempest
+++ b/lib/tempest
@@ -329,7 +329,7 @@
iniset $TEMPEST_CONF network-feature-enabled api_extensions "${NETWORK_API_EXTENSIONS:-all}"
# service_available
- for service in nova cinder glance neutron swift heat horizon ceilometer ironic savanna; do
+ for service in nova cinder glance neutron swift heat horizon ceilometer ironic savanna trove; do
if is_service_enabled $service ; then
iniset $TEMPEST_CONF service_available $service "True"
else
diff --git a/lib/trove b/lib/trove
index f8e3edd..4efdb5d 100644
--- a/lib/trove
+++ b/lib/trove
@@ -64,7 +64,7 @@
TROVE_USER=$(keystone user-create \
--name=trove \
--pass="$SERVICE_PASSWORD" \
- --tenant_id $SERVICE_TENANT \
+ --tenant-id $SERVICE_TENANT \
--email=trove@example.com \
| grep " id " | get_field 2)
keystone user-role-add --tenant-id $SERVICE_TENANT \
diff --git a/stack.sh b/stack.sh
index 2438f9f..7c06571 100755
--- a/stack.sh
+++ b/stack.sh
@@ -12,7 +12,7 @@
# developer install.
# To keep this script simple we assume you are running on a recent **Ubuntu**
-# (12.04 Precise or newer) or **Fedora** (F16 or newer) machine. (It may work
+# (12.04 Precise or newer) or **Fedora** (F18 or newer) machine. (It may work
# on other platforms but support for those platforms is left to those who added
# them to DevStack.) It should work in a VM or physical server. Additionally
# we maintain a list of ``apt`` and ``rpm`` dependencies and other configuration
@@ -131,7 +131,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|saucy|trusty|7.0|wheezy|sid|testing|jessie|f16|f17|f18|f19|opensuse-12.2|rhel6) ]]; then
+if [[ ! ${DISTRO} =~ (oneiric|precise|quantal|raring|saucy|trusty|7.0|wheezy|sid|testing|jessie|f18|f19|f20|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"