Merge "Correctly source .stackenv"
diff --git a/files/apts/n-api b/files/apts/n-api
index ad943ff..0f08daa 100644
--- a/files/apts/n-api
+++ b/files/apts/n-api
@@ -1,2 +1 @@
-gcc # temporary because this pulls in glance to get the client without running the glance prereqs
python-dateutil
diff --git a/functions b/functions
index 1590166..edc4bf9 100644
--- a/functions
+++ b/functions
@@ -781,9 +781,9 @@
if is_ubuntu; then
apt_get purge "$@"
elif is_fedora; then
- yum remove -y "$@"
+ sudo yum remove -y "$@"
elif is_suse; then
- rpm -e "$@"
+ sudo rpm -e "$@"
else
exit_distro_not_supported "uninstalling packages"
fi
@@ -1356,5 +1356,5 @@
# Local variables:
-# -*- mode: Shell-script -*-
+# mode: shell-script
# End:
diff --git a/lib/baremetal b/lib/baremetal
index 5326dd1..24cce9f 100644
--- a/lib/baremetal
+++ b/lib/baremetal
@@ -434,3 +434,7 @@
# Restore xtrace
$XTRACE
+
+# Local variables:
+# mode: shell-script
+# End:
diff --git a/lib/ceilometer b/lib/ceilometer
index d90694c..58cafd1 100644
--- a/lib/ceilometer
+++ b/lib/ceilometer
@@ -138,3 +138,7 @@
# Restore xtrace
$XTRACE
+
+# Local variables:
+# mode: shell-script
+# End:
diff --git a/lib/cinder b/lib/cinder
index 7688ad9..deace68 100644
--- a/lib/cinder
+++ b/lib/cinder
@@ -123,9 +123,6 @@
# configure_cinder() - Set config files, create data dirs, etc
function configure_cinder() {
- setup_develop $CINDER_DIR
- setup_develop $CINDERCLIENT_DIR
-
if [[ ! -d $CINDER_CONF_DIR ]]; then
sudo mkdir -p $CINDER_CONF_DIR
fi
@@ -367,7 +364,13 @@
# install_cinder() - Collect source and prepare
function install_cinder() {
git_clone $CINDER_REPO $CINDER_DIR $CINDER_BRANCH
+ setup_develop $CINDER_DIR
+}
+
+# install_cinderclient() - Collect source and prepare
+function install_cinderclient() {
git_clone $CINDERCLIENT_REPO $CINDERCLIENT_DIR $CINDERCLIENT_BRANCH
+ setup_develop $CINDERCLIENT_DIR
}
# apply config.d approach (e.g. Oneiric does not have this)
@@ -431,3 +434,7 @@
# Restore xtrace
$XTRACE
+
+# Local variables:
+# mode: shell-script
+# End:
diff --git a/lib/database b/lib/database
index 79b77a2..cbe886f 100644
--- a/lib/database
+++ b/lib/database
@@ -114,3 +114,7 @@
# Restore xtrace
$XTRACE
+
+# Local variables:
+# mode: shell-script
+# End:
diff --git a/lib/databases/mysql b/lib/databases/mysql
index 0633ab0..30450b1 100644
--- a/lib/databases/mysql
+++ b/lib/databases/mysql
@@ -139,3 +139,7 @@
# Restore xtrace
$MY_XTRACE
+
+# Local variables:
+# mode: shell-script
+# End:
diff --git a/lib/databases/postgresql b/lib/databases/postgresql
index efc206f..b64de2c 100644
--- a/lib/databases/postgresql
+++ b/lib/databases/postgresql
@@ -90,3 +90,7 @@
# Restore xtrace
$PG_XTRACE
+
+# Local variables:
+# mode: shell-script
+# End:
diff --git a/lib/glance b/lib/glance
index edf6982..3376400 100644
--- a/lib/glance
+++ b/lib/glance
@@ -62,15 +62,8 @@
sudo rm -rf $GLANCE_CACHE_DIR $GLANCE_IMAGE_DIR $GLANCE_AUTH_CACHE_DIR
}
-# configure_glanceclient() - Set config files, create data dirs, etc
-function configure_glanceclient() {
- setup_develop $GLANCECLIENT_DIR
-}
-
# configure_glance() - Set config files, create data dirs, etc
function configure_glance() {
- setup_develop $GLANCE_DIR
-
if [[ ! -d $GLANCE_CONF_DIR ]]; then
sudo mkdir -p $GLANCE_CONF_DIR
fi
@@ -116,6 +109,15 @@
iniset_rpc_backend glance $GLANCE_API_CONF DEFAULT
iniset $GLANCE_API_CONF keystone_authtoken signing_dir $GLANCE_AUTH_CACHE_DIR/api
+ # Store the images in swift if enabled.
+ if is_service_enabled s-proxy; then
+ iniset $GLANCE_API_CONF DEFAULT default_store swift
+ iniset $GLANCE_API_CONF DEFAULT swift_store_auth_address $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/v2.0/
+ iniset $GLANCE_API_CONF DEFAULT swift_store_user $SERVICE_TENANT_NAME:glance
+ iniset $GLANCE_API_CONF DEFAULT swift_store_key $SERVICE_PASSWORD
+ iniset $GLANCE_API_CONF DEFAULT swift_store_create_container_on_put True
+ fi
+
cp -p $GLANCE_DIR/etc/glance-registry-paste.ini $GLANCE_REGISTRY_PASTE_INI
cp -p $GLANCE_DIR/etc/glance-api-paste.ini $GLANCE_API_PASTE_INI
@@ -171,11 +173,13 @@
# install_glanceclient() - Collect source and prepare
function install_glanceclient() {
git_clone $GLANCECLIENT_REPO $GLANCECLIENT_DIR $GLANCECLIENT_BRANCH
+ setup_develop $GLANCECLIENT_DIR
}
# install_glance() - Collect source and prepare
function install_glance() {
git_clone $GLANCE_REPO $GLANCE_DIR $GLANCE_BRANCH
+ setup_develop $GLANCE_DIR
}
# start_glance() - Start running processes, including screen
@@ -197,3 +201,7 @@
# Restore xtrace
$XTRACE
+
+# Local variables:
+# mode: shell-script
+# End:
diff --git a/lib/heat b/lib/heat
index 56d6f39..88535c3 100644
--- a/lib/heat
+++ b/lib/heat
@@ -184,3 +184,7 @@
# Restore xtrace
$XTRACE
+
+# Local variables:
+# mode: shell-script
+# End:
diff --git a/lib/horizon b/lib/horizon
index bc739ed..b63e1f8 100644
--- a/lib/horizon
+++ b/lib/horizon
@@ -178,3 +178,7 @@
# Restore xtrace
$XTRACE
+
+# Local variables:
+# mode: shell-script
+# End:
diff --git a/lib/keystone b/lib/keystone
index 805cb6f..0fbc7d7 100644
--- a/lib/keystone
+++ b/lib/keystone
@@ -75,15 +75,8 @@
:
}
-# configure_keystoneclient() - Set config files, create data dirs, etc
-function configure_keystoneclient() {
- setup_develop $KEYSTONECLIENT_DIR
-}
-
# configure_keystone() - Set config files, create data dirs, etc
function configure_keystone() {
- setup_develop $KEYSTONE_DIR
-
if [[ ! -d $KEYSTONE_CONF_DIR ]]; then
sudo mkdir -p $KEYSTONE_CONF_DIR
fi
@@ -305,6 +298,7 @@
# install_keystoneclient() - Collect source and prepare
function install_keystoneclient() {
git_clone $KEYSTONECLIENT_REPO $KEYSTONECLIENT_DIR $KEYSTONECLIENT_BRANCH
+ setup_develop $KEYSTONECLIENT_DIR
}
# install_keystone() - Collect source and prepare
@@ -314,6 +308,7 @@
install_ldap
fi
git_clone $KEYSTONE_REPO $KEYSTONE_DIR $KEYSTONE_BRANCH
+ setup_develop $KEYSTONE_DIR
}
# start_keystone() - Start running processes, including screen
@@ -346,3 +341,7 @@
# Restore xtrace
$XTRACE
+
+# Local variables:
+# mode: shell-script
+# End:
diff --git a/lib/ldap b/lib/ldap
index 9d415c5..53f6837 100644
--- a/lib/ldap
+++ b/lib/ldap
@@ -76,3 +76,7 @@
# Restore xtrace
$XTRACE
+
+# Local variables:
+# mode: shell-script
+# End:
diff --git a/lib/nova b/lib/nova
index 46eeea4..8d045b5 100644
--- a/lib/nova
+++ b/lib/nova
@@ -169,11 +169,6 @@
sudo rm -rf $NOVA_STATE_PATH $NOVA_AUTH_CACHE_DIR
}
-# configure_novaclient() - Set config files, create data dirs, etc
-function configure_novaclient() {
- setup_develop $NOVACLIENT_DIR
-}
-
# configure_nova_rootwrap() - configure Nova's rootwrap
function configure_nova_rootwrap() {
# Deploy new rootwrap filters files (owned by root).
@@ -204,8 +199,6 @@
# configure_nova() - Set config files, create data dirs, etc
function configure_nova() {
- setup_develop $NOVA_DIR
-
# Put config files in ``/etc/nova`` for everyone to find
if [[ ! -d $NOVA_CONF_DIR ]]; then
sudo mkdir -p $NOVA_CONF_DIR
@@ -597,6 +590,7 @@
# install_novaclient() - Collect source and prepare
function install_novaclient() {
git_clone $NOVACLIENT_REPO $NOVACLIENT_DIR $NOVACLIENT_BRANCH
+ setup_develop $NOVACLIENT_DIR
}
# install_nova() - Collect source and prepare
@@ -627,6 +621,7 @@
fi
git_clone $NOVA_REPO $NOVA_DIR $NOVA_BRANCH
+ setup_develop $NOVA_DIR
}
# start_nova_api() - Start the API process ahead of other things
@@ -663,6 +658,11 @@
screen_it n-xvnc "cd $NOVA_DIR && $NOVA_BIN_DIR/nova-xvpvncproxy --config-file $NOVA_CONF"
screen_it n-spice "cd $NOVA_DIR && $NOVA_BIN_DIR/nova-spicehtml5proxy --config-file $NOVA_CONF --web $SPICE_DIR"
screen_it n-cauth "cd $NOVA_DIR && $NOVA_BIN_DIR/nova-consoleauth"
+
+ # Starting the nova-objectstore only if swift3 service is not enabled.
+ # Swift will act as s3 objectstore.
+ is_service_enabled swift3 || \
+ screen_it n-obj "cd $NOVA_DIR && $NOVA_BIN_DIR/nova-objectstore"
}
# stop_nova() - Stop running processes (non-screen)
@@ -675,3 +675,7 @@
# Restore xtrace
$XTRACE
+
+# Local variables:
+# mode: shell-script
+# End:
diff --git a/lib/quantum b/lib/quantum
index efdd43d..61b89f7 100644
--- a/lib/quantum
+++ b/lib/quantum
@@ -761,3 +761,7 @@
# Restore xtrace
$XTRACE
+
+# Local variables:
+# mode: shell-script
+# End:
diff --git a/lib/rpc_backend b/lib/rpc_backend
index bbd51f0..d08cb01 100644
--- a/lib/rpc_backend
+++ b/lib/rpc_backend
@@ -159,3 +159,7 @@
# Restore xtrace
$XTRACE
+
+# Local variables:
+# mode: shell-script
+# End:
diff --git a/lib/swift b/lib/swift
index d50b554..eb57477 100644
--- a/lib/swift
+++ b/lib/swift
@@ -79,9 +79,9 @@
# Port bases used in port number calclution for the service "nodes"
# The specified port number will be used, the additinal ports calculated by
# base_port + node_num * 10
-OBJECT_PORT_BASE=6013
-CONTAINER_PORT_BASE=6011
-ACCOUNT_PORT_BASE=6012
+OBJECT_PORT_BASE=${OBJECT_PORT_BASE:-6013}
+CONTAINER_PORT_BASE=${CONTAINER_PORT_BASE:-6011}
+ACCOUNT_PORT_BASE=${ACCOUNT_PORT_BASE:-6012}
# Entry Points
@@ -106,59 +106,11 @@
local swift_node_config
local swift_log_dir
- setup_develop $SWIFT_DIR
-
# Make sure to kill all swift processes first
swift-init --run-dir=${SWIFT_DATA_DIR}/run all stop || true
- # First do a bit of setup by creating the directories and
- # changing the permissions so we can run it as our user.
-
- USER_GROUP=$(id -g)
- sudo mkdir -p ${SWIFT_DATA_DIR}/{drives,cache,run,logs}
- sudo chown -R $USER:${USER_GROUP} ${SWIFT_DATA_DIR}
-
- # Create a loopback disk and format it to XFS.
- if [[ -e ${SWIFT_DATA_DIR}/drives/images/swift.img ]]; then
- if egrep -q ${SWIFT_DATA_DIR}/drives/sdb1 /proc/mounts; then
- sudo umount ${SWIFT_DATA_DIR}/drives/sdb1
- sudo rm -f ${SWIFT_DATA_DIR}/drives/images/swift.img
- fi
- fi
-
- mkdir -p ${SWIFT_DATA_DIR}/drives/images
- sudo touch ${SWIFT_DATA_DIR}/drives/images/swift.img
- sudo chown $USER: ${SWIFT_DATA_DIR}/drives/images/swift.img
-
- dd if=/dev/zero of=${SWIFT_DATA_DIR}/drives/images/swift.img \
- bs=1024 count=0 seek=${SWIFT_LOOPBACK_DISK_SIZE}
-
- # Make a fresh XFS filesystem
- mkfs.xfs -f -i size=1024 ${SWIFT_DATA_DIR}/drives/images/swift.img
-
- # Mount the disk with mount options to make it as efficient as possible
- mkdir -p ${SWIFT_DATA_DIR}/drives/sdb1
- if ! egrep -q ${SWIFT_DATA_DIR}/drives/sdb1 /proc/mounts; then
- sudo mount -t xfs -o loop,noatime,nodiratime,nobarrier,logbufs=8 \
- ${SWIFT_DATA_DIR}/drives/images/swift.img ${SWIFT_DATA_DIR}/drives/sdb1
- fi
-
- # Create a link to the above mount and
- # create all of the directories needed to emulate a few different servers
- for node_number in ${SWIFT_REPLICAS_SEQ}; do
- sudo ln -sf ${SWIFT_DATA_DIR}/drives/sdb1/$node_number ${SWIFT_DATA_DIR}/$node_number;
- drive=${SWIFT_DATA_DIR}/drives/sdb1/${node_number}
- node=${SWIFT_DATA_DIR}/${node_number}/node
- node_device=${node}/sdb1
- [[ -d $node ]] && continue
- [[ -d $drive ]] && continue
- sudo install -o ${USER} -g $USER_GROUP -d $drive
- sudo install -o ${USER} -g $USER_GROUP -d $node_device
- sudo chown -R $USER: ${node}
- done
-
- sudo mkdir -p ${SWIFT_CONF_DIR}/{object,container,account}-server
- sudo chown -R $USER: ${SWIFT_CONF_DIR}
+ sudo mkdir -p ${SWIFT_CONF_DIR}/{object,container,account}-server
+ sudo chown -R $USER: ${SWIFT_CONF_DIR}
if [[ "$SWIFT_CONF_DIR" != "/etc/swift" ]]; then
# Some swift tools are hard-coded to use ``/etc/swift`` and are apparently not going to be fixed.
@@ -327,9 +279,55 @@
tee /etc/rsyslog.d/10-swift.conf
}
-# configure_swiftclient() - Set config files, create data dirs, etc
-function configure_swiftclient() {
- setup_develop $SWIFTCLIENT_DIR
+# create_swift_disk - Create Swift backing disk
+function create_swift_disk() {
+ local node_number
+
+ # First do a bit of setup by creating the directories and
+ # changing the permissions so we can run it as our user.
+
+ USER_GROUP=$(id -g)
+ sudo mkdir -p ${SWIFT_DATA_DIR}/{drives,cache,run,logs}
+ sudo chown -R $USER:${USER_GROUP} ${SWIFT_DATA_DIR}
+
+ # Create a loopback disk and format it to XFS.
+ if [[ -e ${SWIFT_DATA_DIR}/drives/images/swift.img ]]; then
+ if egrep -q ${SWIFT_DATA_DIR}/drives/sdb1 /proc/mounts; then
+ sudo umount ${SWIFT_DATA_DIR}/drives/sdb1
+ sudo rm -f ${SWIFT_DATA_DIR}/drives/images/swift.img
+ fi
+ fi
+
+ mkdir -p ${SWIFT_DATA_DIR}/drives/images
+ sudo touch ${SWIFT_DATA_DIR}/drives/images/swift.img
+ sudo chown $USER: ${SWIFT_DATA_DIR}/drives/images/swift.img
+
+ dd if=/dev/zero of=${SWIFT_DATA_DIR}/drives/images/swift.img \
+ bs=1024 count=0 seek=${SWIFT_LOOPBACK_DISK_SIZE}
+
+ # Make a fresh XFS filesystem
+ mkfs.xfs -f -i size=1024 ${SWIFT_DATA_DIR}/drives/images/swift.img
+
+ # Mount the disk with mount options to make it as efficient as possible
+ mkdir -p ${SWIFT_DATA_DIR}/drives/sdb1
+ if ! egrep -q ${SWIFT_DATA_DIR}/drives/sdb1 /proc/mounts; then
+ sudo mount -t xfs -o loop,noatime,nodiratime,nobarrier,logbufs=8 \
+ ${SWIFT_DATA_DIR}/drives/images/swift.img ${SWIFT_DATA_DIR}/drives/sdb1
+ fi
+
+ # Create a link to the above mount and
+ # create all of the directories needed to emulate a few different servers
+ for node_number in ${SWIFT_REPLICAS_SEQ}; do
+ sudo ln -sf ${SWIFT_DATA_DIR}/drives/sdb1/$node_number ${SWIFT_DATA_DIR}/$node_number;
+ drive=${SWIFT_DATA_DIR}/drives/sdb1/${node_number}
+ node=${SWIFT_DATA_DIR}/${node_number}/node
+ node_device=${node}/sdb1
+ [[ -d $node ]] && continue
+ [[ -d $drive ]] && continue
+ sudo install -o ${USER} -g $USER_GROUP -d $drive
+ sudo install -o ${USER} -g $USER_GROUP -d $node_device
+ sudo chown -R $USER: ${node}
+ done
}
# init_swift() - Initialize rings
@@ -338,6 +336,9 @@
# Make sure to kill all swift processes first
swift-init --run-dir=${SWIFT_DATA_DIR}/run all stop || true
+ # Forcibly re-create the backing filesystem
+ create_swift_disk
+
# This is where we create three different rings for swift with
# different object servers binding on different ports.
pushd ${SWIFT_CONF_DIR} >/dev/null && {
@@ -366,13 +367,14 @@
function install_swift() {
git_clone $SWIFT_REPO $SWIFT_DIR $SWIFT_BRANCH
+ setup_develop $SWIFT_DIR
}
function install_swiftclient() {
git_clone $SWIFTCLIENT_REPO $SWIFTCLIENT_DIR $SWIFTCLIENT_BRANCH
+ setup_develop $SWIFTCLIENT_DIR
}
-
# start_swift() - Start running processes, including screen
function start_swift() {
# (re)start rsyslog
@@ -421,3 +423,7 @@
# Restore xtrace
$XTRACE
+
+# Local variables:
+# mode: shell-script
+# End:
diff --git a/lib/tempest b/lib/tempest
index 85e643e..c1dc3a3 100644
--- a/lib/tempest
+++ b/lib/tempest
@@ -294,3 +294,7 @@
# Restore xtrace
$XTRACE
+
+# Local variables:
+# mode: shell-script
+# End:
diff --git a/lib/template b/lib/template
index 02de5ce..72904fe 100644
--- a/lib/template
+++ b/lib/template
@@ -78,3 +78,7 @@
# Restore xtrace
$XTRACE
+
+# Local variables:
+# mode: shell-script
+# End:
diff --git a/lib/tls b/lib/tls
index 202edef..fb8f4b9 100644
--- a/lib/tls
+++ b/lib/tls
@@ -316,3 +316,7 @@
stud $STUD_PROTO -f $f_host,$f_port -b $b_host,$b_port $DEVSTACK_CERT 2>/dev/null
}
+
+# Local variables:
+# mode: shell-script
+# End:
diff --git a/stack.sh b/stack.sh
index 0407c30..1010b4e 100755
--- a/stack.sh
+++ b/stack.sh
@@ -564,9 +564,11 @@
# Grab clients first
install_keystoneclient
install_glanceclient
+install_cinderclient
install_novaclient
# Check out the client libs that are used most
git_clone $OPENSTACKCLIENT_REPO $OPENSTACKCLIENT_DIR $OPENSTACKCLIENT_BRANCH
+setup_develop $OPENSTACKCLIENT_DIR
# glance, swift middleware and nova api needs keystone middleware
if is_service_enabled key g-api n-api s-proxy; then
@@ -627,9 +629,6 @@
echo_summary "Configuring OpenStack projects"
# Set up our checkouts so they are installed in the python path
-configure_keystoneclient
-configure_novaclient
-setup_develop $OPENSTACKCLIENT_DIR
if is_service_enabled key g-api n-api s-proxy; then
configure_keystone
@@ -637,7 +636,6 @@
if is_service_enabled s-proxy; then
configure_swift
- configure_swiftclient
if is_service_enabled swift3; then
setup_develop $SWIFT3_DIR
fi
@@ -647,10 +645,6 @@
configure_glance
fi
-# Do this _after_ glance is installed to override the old binary
-# TODO(dtroyer): figure out when this is no longer necessary
-configure_glanceclient
-
if is_service_enabled nova; then
# First clean up old instances
cleanup_nova
@@ -826,17 +820,7 @@
if is_service_enabled g-reg; then
echo_summary "Configuring Glance"
-
init_glance
-
- # Store the images in swift if enabled.
- if is_service_enabled s-proxy; then
- iniset $GLANCE_API_CONF DEFAULT default_store swift
- iniset $GLANCE_API_CONF DEFAULT swift_store_auth_address $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/v2.0/
- iniset $GLANCE_API_CONF DEFAULT swift_store_user $SERVICE_TENANT_NAME:glance
- iniset $GLANCE_API_CONF DEFAULT swift_store_key $SERVICE_PASSWORD
- iniset $GLANCE_API_CONF DEFAULT swift_store_create_container_on_put True
- fi
fi
@@ -1065,12 +1049,6 @@
start_ceilometer
fi
-# Starting the nova-objectstore only if swift3 service is not enabled.
-# Swift will act as s3 objectstore.
-is_service_enabled swift3 || \
- screen_it n-obj "cd $NOVA_DIR && $NOVA_BIN_DIR/nova-objectstore"
-
-
# Configure and launch heat engine, api and metadata
if is_service_enabled heat; then
# Initialize heat, including replacing nova flavors
diff --git a/stackrc b/stackrc
index f35cdc0..5a4c580 100644
--- a/stackrc
+++ b/stackrc
@@ -221,3 +221,7 @@
# Compatibility until it's eradicated from CI
USE_SCREEN=${SCREEN_DEV:-$USE_SCREEN}
+
+# Local variables:
+# mode: shell-script
+# End: