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
This commit is contained in:
Paul Michali 2015-07-17 14:21:36 -04:00
parent c788f33d51
commit 6fff6428b9
2 changed files with 17 additions and 6 deletions

View File

@ -44,6 +44,9 @@ sudo -H -u $owner $sudo_env tox -e $VENV
testr_exit_code=$? testr_exit_code=$?
set -e set -e
echo "Dumping log from tox_install.sh"
cat /tmp/tox_install.txt
# Collect and parse results # Collect and parse results
generate_testr_results generate_testr_results
exit $testr_exit_code exit $testr_exit_code

View File

@ -13,16 +13,24 @@
# default: # default:
# pip install {opts} {packages} # pip install {opts} {packages}
set -x
exec > /tmp/tox_install.txt 2>&1
ZUUL_CLONER=/usr/zuul-env/bin/zuul-cloner 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 set -e
if [ $neutron_installed -eq 0 ]; then if [ -d "$NEUTRON_DIR" ]; then
echo "ALREADY INSTALLED" > /tmp/tox_install.txt echo "FOUND Neutron code at $NEUTRON_DIR - using"
echo "Neutron already installed; using existing package" 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 elif [ -x "$ZUUL_CLONER" ]; then
echo "ZUUL CLONER" > /tmp/tox_install.txt echo "USING ZUUL CLONER to obtain Neutron code"
cwd=$(/bin/pwd) cwd=$(/bin/pwd)
cd /tmp cd /tmp
$ZUUL_CLONER --cache-dir \ $ZUUL_CLONER --cache-dir \
@ -33,7 +41,7 @@ elif [ -x "$ZUUL_CLONER" ]; then
pip install -e . pip install -e .
cd "$cwd" cd "$cwd"
else 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 pip install -U -egit+https://git.openstack.org/openstack/neutron#egg=neutron
fi fi