add lib/stackforge to let us test wsme / pecan from git

wsme and pecan libraries have migrated to stackforge for
development. If we support them in devstack, we can use their git
version instead of the release version, which ensures that they
won't break the rest of OpenStack when they cut a new release.

This is similar to how oslo testing works. Long term we probably
want a more generic mechanism to handle this, but for now, this
should get us rolling, and get them gating.

Change-Id: Icf3475f433081c7c625864107d7e118e214396e1
This commit is contained in:
Sean Dague 2013-10-21 18:11:40 -04:00
parent dc30bd3eb4
commit 6832272a18
3 changed files with 81 additions and 0 deletions

67
lib/stackforge Normal file
View File

@ -0,0 +1,67 @@
# lib/stackforge
#
# Functions to install stackforge libraries that we depend on so
# that we can try their git versions during devstack gate.
#
# This is appropriate for python libraries that release to pypi and are
# expected to be used beyond OpenStack like, but are requirements
# for core services in global-requirements.
# * wsme
# * pecan
#
# This is not appropriate for stackforge projects which are early stage
# OpenStack tools
# Dependencies:
# ``functions`` file
# ``stack.sh`` calls the entry points in this order:
#
# install_stackforge
# Save trace setting
XTRACE=$(set +o | grep xtrace)
set +o xtrace
# Defaults
# --------
WSME_DIR=$DEST/wsme
PECAN_DIR=$DEST/pecan
# Entry Points
# ------------
# install_stackforge() - Collect source and prepare
function install_stackforge() {
# TODO(sdague): remove this once we get to Icehouse, this just makes
# for a smoother transition of existing users.
cleanup_stackforge
git_clone $WSME_REPO $WSME_DIR $WSME_BRANCH
setup_develop $WSME_DIR
git_clone $PECAN_REPO $PECAN_DIR $PECAN_BRANCH
setup_develop $PECAN_DIR
}
# cleanup_stackforge() - purge possibly old versions of stackforge libraries
function cleanup_stackforge() {
# this means we've got an old version installed, lets get rid of it
# otherwise python hates itself
for lib in wsme pecan; do
if ! python -c "import $lib" 2>/dev/null; then
echo "Found old $lib... removing to ensure consistency"
local PIP_CMD=$(get_pip_command)
pip_install $lib
sudo $PIP_CMD uninstall -y $lib
fi
done
}
# Restore xtrace
$XTRACE
# Local variables:
# mode: shell-script
# End:

View File

@ -299,6 +299,7 @@ source $TOP_DIR/lib/apache
source $TOP_DIR/lib/tls
source $TOP_DIR/lib/infra
source $TOP_DIR/lib/oslo
source $TOP_DIR/lib/stackforge
source $TOP_DIR/lib/horizon
source $TOP_DIR/lib/keystone
source $TOP_DIR/lib/glance
@ -627,6 +628,9 @@ install_infra
# Install oslo libraries that have graduated
install_oslo
# Install stackforge libraries for testing
install_stackforge
# Install clients libraries
install_keystoneclient
install_glanceclient

10
stackrc
View File

@ -193,6 +193,16 @@ TROVE_BRANCH=${TROVE_BRANCH:-master}
TROVECLIENT_REPO=${TROVECLIENT_REPO:-${GIT_BASE}/openstack/python-troveclient.git}
TROVECLIENT_BRANCH=${TROVECLIENT_BRANCH:-master}
# stackforge libraries that are used by OpenStack core services
# wsme
WSME_REPO=${WSME_REPO:-${GIT_BASE}/stackforge/wsme.git}
WSME_BRANCH=${WSME_BRANCH:-master}
# pecan
PECAN_REPO=${PECAN_REPO:-${GIT_BASE}/stackforge/pecan.git}
PECAN_BRANCH=${PECAN_BRANCH:-master}
# Nova hypervisor configuration. We default to libvirt with **kvm** but will
# drop back to **qemu** if we are unable to load the kvm module. ``stack.sh`` can
# also install an **LXC**, **OpenVZ** or **XenAPI** based system. If xenserver-core