add lib/infra
move the infrastructure projects to a dedicated lib/infra, which
gives us access to this during grenade upgrade tests.
Change-Id: I1e832792b61d41ad290b4b2ab26fe664e710cebd
diff --git a/lib/infra b/lib/infra
new file mode 100644
index 0000000..0b73259
--- /dev/null
+++ b/lib/infra
@@ -0,0 +1,56 @@
+# lib/infra
+#
+# Functions to install infrastructure projects needed by other projects
+# early in the cycle. We need this so we can do things like gate on
+# requirements as a global list
+
+# Dependencies:
+# ``functions`` file
+
+# ``stack.sh`` calls the entry points in this order:
+#
+# unfubar_setuptools
+# install_infra
+
+# Save trace setting
+XTRACE=$(set +o | grep xtrace)
+set +o xtrace
+
+
+# Defaults
+# --------
+PBR_DIR=$DEST/pbr
+REQUIREMENTS_DIR=$DEST/requirements
+
+# Entry Points
+# ------------
+
+# unfubar_setuptools() - Unbreak the giant mess that is the current state of setuptools
+function unfubar_setuptools() {
+ # this is a giant game of who's on first, but it does consistently work
+ # there is hope that upstream python packaging fixes this in the future
+ echo_summary "Unbreaking setuptools"
+ pip_install -U setuptools
+ pip_install -U pip
+ uninstall_package python-setuptools
+ pip_install -U setuptools
+ pip_install -U pip
+}
+
+
+# install_infra() - Collect source and prepare
+function install_infra() {
+ # bring down global requirements
+ git_clone $REQUIREMENTS_REPO $REQUIREMENTS_DIR $REQUIREMENTS_BRANCH
+
+ # Install pbr
+ git_clone $PBR_REPO $PBR_DIR $PBR_BRANCH
+ setup_develop $PBR_DIR
+}
+
+# Restore xtrace
+$XTRACE
+
+# Local variables:
+# mode: shell-script
+# End:
diff --git a/stack.sh b/stack.sh
index ed6afab..c5e306e 100755
--- a/stack.sh
+++ b/stack.sh
@@ -299,6 +299,7 @@
# Source project function libraries
source $TOP_DIR/lib/tls
+source $TOP_DIR/lib/infra
source $TOP_DIR/lib/oslo
source $TOP_DIR/lib/horizon
source $TOP_DIR/lib/keystone
@@ -314,8 +315,6 @@
# Set the destination directories for other OpenStack projects
OPENSTACKCLIENT_DIR=$DEST/python-openstackclient
-PBR_DIR=$DEST/pbr
-
# Interactive Configuration
# -------------------------
@@ -588,6 +587,8 @@
install_neutron_agent_packages
fi
+# Unbreak the giant mess that is the current state of setuptools
+unfubar_setuptools
# System-specific preconfigure
# ============================
@@ -658,9 +659,8 @@
echo_summary "Installing OpenStack project source"
-# Install pbr
-git_clone $PBR_REPO $PBR_DIR $PBR_BRANCH
-setup_develop $PBR_DIR
+# Install required infra support libraries
+install_infra
# Install oslo libraries that have graduated
install_oslo
diff --git a/stackrc b/stackrc
index 3e93d23..ec9380c 100644
--- a/stackrc
+++ b/stackrc
@@ -136,6 +136,10 @@
NEUTRONCLIENT_REPO=${NEUTRONCLIENT_REPO:-${GIT_BASE}/openstack/python-neutronclient.git}
NEUTRONCLIENT_BRANCH=${NEUTRONCLIENT_BRANCH:-master}
+# consolidated openstack requirements
+REQUIREMENTS_REPO=${REQUIREMENTS_REPO:-${GIT_BASE}/openstack/requirements.git}
+REQUIREMENTS_BRANCH=${REQUIREMENTS_BRANCH:-master}
+
# storage service
SWIFT_REPO=${SWIFT_REPO:-${GIT_BASE}/openstack/swift.git}
SWIFT_BRANCH=${SWIFT_BRANCH:-master}