6fff6428b9
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
50 lines
1.4 KiB
Bash
Executable File
50 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# Many of neutron's repos suffer from the problem of depending on neutron,
|
|
# but it not existing on pypi.
|
|
|
|
# This wrapper for tox's package installer will use the existing package
|
|
# if it exists, else use zuul-cloner if that program exists, else grab it
|
|
# from neutron master via a hard-coded URL. That last case should only
|
|
# happen with devs running unit tests locally.
|
|
|
|
# From the tox.ini config page:
|
|
# install_command=ARGV
|
|
# default:
|
|
# pip install {opts} {packages}
|
|
|
|
set -x
|
|
|
|
exec > /tmp/tox_install.txt 2>&1
|
|
|
|
ZUUL_CLONER=/usr/zuul-env/bin/zuul-cloner
|
|
neutron_installed=$(echo "import neutron" | python 2>/dev/null ; echo $?)
|
|
NEUTRON_DIR=$HOME/neutron
|
|
|
|
set -e
|
|
|
|
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 "USING ZUUL CLONER to obtain Neutron code"
|
|
cwd=$(/bin/pwd)
|
|
cd /tmp
|
|
$ZUUL_CLONER --cache-dir \
|
|
/opt/git \
|
|
git://git.openstack.org \
|
|
openstack/neutron
|
|
cd openstack/neutron
|
|
pip install -e .
|
|
cd "$cwd"
|
|
else
|
|
echo "LOCAL - Obtaining Neutron code from git.openstack.org"
|
|
pip install -U -egit+https://git.openstack.org/openstack/neutron#egg=neutron
|
|
fi
|
|
|
|
pip install -U $*
|
|
exit $?
|