From 6fff6428b9081be9efb8d683ce749dc186079998 Mon Sep 17 00:00:00 2001 From: Paul Michali Date: Fri, 17 Jul 2015 14:21:36 -0400 Subject: [PATCH] Support for VPN functional tests on Neutron commits Currently, when the VPN functional tests run, it uses tox_install.sh to install neutron code (as well as other packages, as passed in). For functional tests invoked via the post_test_hook.sh script, tox_install.sh would try to "import neutron", and if successful, then it is assumed that Neutron is already installed. Otherwise a check is done to see if it can pip install using the cache from Zuul cloner. For a local test run, tox_install.sh would pip install Neutron from git.openstack.org. If, however, one invokes the new Neutron experimental job that runs the VPN functional tests on a Neutron patch set, tox_install.sh was determining that Neutron was already installed. This was using the upstream version of Neutron in /tmp/openstack, instead of the changeset code in /opt/stack/new. This change attempts to fix this case, but first checking to see if the Neutron directory exists at /opt/stack/new ($HOME/neutron actually). If it does exist, that is pip installed for the VPN functional tests. Otherwise, it does the same checks as explained above. The end goal here is to be able to detect cross project breakages, by using the (currently experimental) gate-neutron-vpnaas-dsvm-functional-sswan. Change-Id: Ifa8ef994a571c72236a4a22a4eeb27496202db2b --- .../tests/contrib/post_test_hook.sh | 3 +++ tools/tox_install.sh | 20 +++++++++++++------ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/neutron_vpnaas/tests/contrib/post_test_hook.sh b/neutron_vpnaas/tests/contrib/post_test_hook.sh index b1709e0d1..a66158163 100644 --- a/neutron_vpnaas/tests/contrib/post_test_hook.sh +++ b/neutron_vpnaas/tests/contrib/post_test_hook.sh @@ -44,6 +44,9 @@ sudo -H -u $owner $sudo_env tox -e $VENV testr_exit_code=$? set -e +echo "Dumping log from tox_install.sh" +cat /tmp/tox_install.txt + # Collect and parse results generate_testr_results exit $testr_exit_code diff --git a/tools/tox_install.sh b/tools/tox_install.sh index 832dd55b1..2d35448dc 100755 --- a/tools/tox_install.sh +++ b/tools/tox_install.sh @@ -13,16 +13,24 @@ # default: # pip install {opts} {packages} +set -x + +exec > /tmp/tox_install.txt 2>&1 + ZUUL_CLONER=/usr/zuul-env/bin/zuul-cloner -neutron_installed=$(python -c "import neutron" ; echo $?) +neutron_installed=$(echo "import neutron" | python 2>/dev/null ; echo $?) +NEUTRON_DIR=$HOME/neutron set -e -if [ $neutron_installed -eq 0 ]; then - echo "ALREADY INSTALLED" > /tmp/tox_install.txt - echo "Neutron already installed; using existing package" +if [ -d "$NEUTRON_DIR" ]; then + echo "FOUND Neutron code at $NEUTRON_DIR - using" + pip install -U -e $NEUTRON_DIR +elif [ $neutron_installed -eq 0 ]; then + location=$(python -c "import neutron; print(neutron.__file__)") + echo "ALREADY INSTALLED at $location" elif [ -x "$ZUUL_CLONER" ]; then - echo "ZUUL CLONER" > /tmp/tox_install.txt + echo "USING ZUUL CLONER to obtain Neutron code" cwd=$(/bin/pwd) cd /tmp $ZUUL_CLONER --cache-dir \ @@ -33,7 +41,7 @@ elif [ -x "$ZUUL_CLONER" ]; then pip install -e . cd "$cwd" else - echo "PIP HARDCODE" > /tmp/tox_install.txt + echo "LOCAL - Obtaining Neutron code from git.openstack.org" pip install -U -egit+https://git.openstack.org/openstack/neutron#egg=neutron fi