From 0392a10a635a8befb13ff242e2ed5d5be4b23560 Mon Sep 17 00:00:00 2001 From: Sean Dague Date: Wed, 31 Jul 2013 13:07:45 -0400 Subject: [PATCH] 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 --- lib/infra | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ stack.sh | 10 +++++----- stackrc | 4 ++++ 3 files changed, 65 insertions(+), 5 deletions(-) create mode 100644 lib/infra diff --git a/lib/infra b/lib/infra new file mode 100644 index 0000000000..0b732598ff --- /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 ed6afab937..c5e306ecd9 100755 --- a/stack.sh +++ b/stack.sh @@ -299,6 +299,7 @@ SERVICE_TIMEOUT=${SERVICE_TIMEOUT:-60} # 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 @@ source $TOP_DIR/lib/ldap # Set the destination directories for other OpenStack projects OPENSTACKCLIENT_DIR=$DEST/python-openstackclient -PBR_DIR=$DEST/pbr - # Interactive Configuration # ------------------------- @@ -588,6 +587,8 @@ if is_service_enabled neutron; then 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 @@ fi 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 3e93d231c9..ec9380cc80 100644 --- a/stackrc +++ b/stackrc @@ -136,6 +136,10 @@ NEUTRON_BRANCH=${NEUTRON_BRANCH:-master} 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}