Add hook scripts for the functional infra job
Infra jobs support hooks to customize behavior. This change adds scripts that are intended to be called by the neutron-dsvm-functional jobs as hooks. Defining hook behavior in-tree instead of directly in the job definition has the advantage of allowing changes in hook behavior to be tested before merge. The gate_hook.sh script added by this change installs a rootwrap filter to allow functional tests to destroy python processes that they have spawned. The tests use the python executable provided by their tox env, and the default rootwrap configuration does not support killing processes launched by non-system python executables. This change will have to merge to master and stable/icehouse before the supporting infra config change can be merged: https://review.openstack.org/#/c/116458/ Partial-bug: #1360658 Change-Id: Idcc6195f91fac833c14892f27fb793048ef964b9
This commit is contained in:
parent
8bfa46d9b0
commit
1e79c9a85e
3
neutron/tests/functional/contrib/README
Normal file
3
neutron/tests/functional/contrib/README
Normal file
@ -0,0 +1,3 @@
|
||||
The files in this directory are intended for use by the
|
||||
neutron-dsvm-functional infra jobs that run the functional test suite
|
||||
in the gate.
|
12
neutron/tests/functional/contrib/filters.template
Normal file
12
neutron/tests/functional/contrib/filters.template
Normal file
@ -0,0 +1,12 @@
|
||||
# neutron-rootwrap command filters to support functional testing. It
|
||||
# is NOT intended to be used outside of a test environment.
|
||||
#
|
||||
# This file should be owned by (and only-writeable by) the root user
|
||||
|
||||
[Filters]
|
||||
# '$BASE_PATH' is intended to be replaced with the expected tox path
|
||||
# (e.g. /opt/stack/new/neutron/.tox/dsvm-functional) by the neutron
|
||||
# functional jenkins job. This ensures that tests can kill the
|
||||
# processes that they launch with their containing tox environment's
|
||||
# python.
|
||||
kill_tox_python: KillFilter, root, $BASE_PATH/bin/python, -9
|
17
neutron/tests/functional/contrib/gate_hook.sh
Normal file
17
neutron/tests/functional/contrib/gate_hook.sh
Normal file
@ -0,0 +1,17 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
$BASE/new/devstack-gate/devstack-vm-gate.sh
|
||||
|
||||
# Ideally devstack would only install dependencies
|
||||
# rather than starting services, but for now unstack is
|
||||
# a cheap way of accomplishing the same result.
|
||||
$BASE/new/devstack/unstack.sh
|
||||
|
||||
# Add a rootwrap filter to support test-only
|
||||
# configuration (e.g. a KillFilter for processes that
|
||||
# use the python installed in a tox env).
|
||||
FUNC_FILTER=$BASE/new/neutron/neutron/tests/functional/contrib/filters.template
|
||||
sed -e "s+\$BASE_PATH+$BASE/new/neutron/.tox/dsvm-functional+" \
|
||||
$FUNC_FILTER > /etc/neutron/rootwrap.d/functional.filters
|
11
neutron/tests/functional/contrib/post_test_hook.sh
Normal file
11
neutron/tests/functional/contrib/post_test_hook.sh
Normal file
@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -xe
|
||||
|
||||
NEUTRON_DIR=$BASE/new/neutron
|
||||
|
||||
# Run tests as the stack user to allow sudo+rootwrap.
|
||||
sudo chown -R stack:stack $NEUTRON_DIR
|
||||
cd $NEUTRON_DIR
|
||||
echo "Running neutron functional test suite"
|
||||
sudo -H -u stack tox -e dsvm-functional
|
Loading…
Reference in New Issue
Block a user