Run functional gate jobs in a constrained environment

This patch modifies the gate hooks to run jobs with upper constraints.

Change-Id: I9eb1eb8e61381e9bb45678af8a24fa88a99e2c8f
This commit is contained in:
armando-migliaccio 2015-12-17 12:25:32 -08:00
parent 681e1ff1af
commit fce50f3beb
3 changed files with 40 additions and 1 deletions

View File

@ -35,7 +35,7 @@ function generate_testr_results {
if [[ "$venv" == dsvm-functional* ]] || [[ "$venv" == dsvm-fullstack* ]] if [[ "$venv" == dsvm-functional* ]] || [[ "$venv" == dsvm-fullstack* ]]
then then
generate_test_logs "/tmp/${venv}-logs" generate_test_logs $log_dir
fi fi
} }
@ -43,6 +43,7 @@ if [[ "$venv" == dsvm-functional* ]] || [[ "$venv" == dsvm-fullstack* ]]
then then
owner=stack owner=stack
sudo_env= sudo_env=
log_dir="/tmp/${venv}-logs"
elif [ "$venv" == "api" ] elif [ "$venv" == "api" ]
then then
owner=tempest owner=tempest
@ -54,6 +55,10 @@ fi
cd $NEUTRON_DIR cd $NEUTRON_DIR
sudo chown -R $owner:stack $NEUTRON_DIR sudo chown -R $owner:stack $NEUTRON_DIR
# NOTE(armax): this is a gate hook and we should run in a constrained env
# to avoid breakage from uncontrolled upper constraints
venv=$venv-constraints
# Run tests # Run tests
echo "Running neutron $venv test suite" echo "Running neutron $venv test suite"
set +e set +e

View File

@ -50,6 +50,11 @@ done
# Default to environment variables to permit the gate_hook to override # Default to environment variables to permit the gate_hook to override
# when sourcing. # when sourcing.
VENV=${VENV:-dsvm-functional} VENV=${VENV:-dsvm-functional}
# If executed in the gate, run in a constrained env
if [[ "$IS_GATE" == "True" ]]
then
VENV=$VENV-constraints
fi
DEVSTACK_PATH=${DEVSTACK_PATH:-$1} DEVSTACK_PATH=${DEVSTACK_PATH:-$1}
PROJECT_NAME=${PROJECT_NAME:-neutron} PROJECT_NAME=${PROJECT_NAME:-neutron}
REPO_BASE=${GATE_DEST:-$(cd $(dirname "$0")/../.. && pwd)} REPO_BASE=${GATE_DEST:-$(cd $(dirname "$0")/../.. && pwd)}

29
tox.ini
View File

@ -28,6 +28,12 @@ setenv = {[testenv]setenv}
# If you are running the tests locally you should set the env variable # If you are running the tests locally you should set the env variable
# TEMPEST_CONFIG_DIR=/opt/stack/tempest/etc # TEMPEST_CONFIG_DIR=/opt/stack/tempest/etc
[testenv:api-constraints]
basepython = {[testenv:api]basepython}
install_command = {[testenv:common-constraints]install_command}
passenv = {[testenv:api]passenv}
setenv = {[testenv:api]setenv}
[testenv:common] [testenv:common]
# Fake job to define environment variables shared between dsvm/non-dsvm jobs # Fake job to define environment variables shared between dsvm/non-dsvm jobs
setenv = OS_TEST_TIMEOUT=180 setenv = OS_TEST_TIMEOUT=180
@ -53,6 +59,13 @@ deps =
{[testenv]deps} {[testenv]deps}
-r{toxinidir}/neutron/tests/functional/requirements.txt -r{toxinidir}/neutron/tests/functional/requirements.txt
[testenv:functional-constraints]
basepython = {[testenv:functional]basepython}
install_command = {[testenv:common-constraints]install_command}
setenv = {[testenv:functional]setenv}
deps =
{[testenv:functional]deps}
[testenv:functional-py34] [testenv:functional-py34]
basepython = python3.4 basepython = python3.4
setenv = {[testenv:functional]setenv} setenv = {[testenv:functional]setenv}
@ -67,6 +80,14 @@ sitepackages=True
deps = deps =
{[testenv:functional]deps} {[testenv:functional]deps}
[testenv:dsvm-functional-constraints]
basepython = {[testenv:dsvm-functional]basepython}
install_command = {[testenv:common-constraints]install_command}
setenv = {[testenv:dsvm-functional]setenv}
sitepackages={[testenv:dsvm-functional]sitepackages}
deps =
{[testenv:functional-constraints]deps}
[testenv:dsvm-functional-py34] [testenv:dsvm-functional-py34]
basepython = python3.4 basepython = python3.4
setenv = {[testenv:dsvm-functional]setenv} setenv = {[testenv:dsvm-functional]setenv}
@ -83,6 +104,14 @@ sitepackages=True
deps = deps =
{[testenv:functional]deps} {[testenv:functional]deps}
[testenv:dsvm-fullstack-constraints]
install_command = {[testenv:common-constraints]install_command}
setenv =
{[testenv:dsvm-fullstack]setenv}
sitepackages={[testenv:dsvm-fullstack]sitepackages}
deps =
{[testenv:functional-constraints]deps}
[testenv:releasenotes] [testenv:releasenotes]
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html