New os-testr uses stestr under the hood, which creates .stestr but not
.testrepository directory in the current dir. Other than that, it
doesn't seem like there is any difference in the format or names of
files generated in the directory.
At the moment, the tool may crash parsing some files, which renders the
whole run failed. Until we fix that in the next os-log-merger, just
ignore failures and proceed. Of course, that will mean no -index.txt
file generated, or with incomplete data. Still better than just
invalidating the test run.
Bashate is a style checker program for bash scripts. This addition
improves the quality of the current bash scripts and ensures that
any future change will follow the same standards.
Log files as .txt files, don't zip them, and put them where
they need to be instead of copy them there in the post gate
hook. The benefit to doing this is that we'll get logs
for tests even if the job timed out.
Since adoption of the Tempest plugin framework, this
extra plumbing is no longer necessary in tree.
Update the post_test_hook conditional to check for the API job
to also look for the api-pecan job and correct the section
name in the gate hook for the neutron.conf web framework setting.
This makes it possible to run the script with different "flavors" of
"dsvm-functional" and "dsvm-fullstack". In particular, this is needed to
have a dsvm-functional-py34 gate running (see
Since Ib65c41fc5f137eedb21fccfcee1e96b6990ae30d removes the local
jenkins slave script copy of subunit2html we must start using the
version packaged in os-testr.
Currently, it's up to the developer who wants to run full-stack on his
machine to make the directory in question (/opt/stack/logs). However,
this also means that the files don't get compressed at the end of a gate
run. Now, each full-stack test will have each own log directory in /tmp.
Once the logs are there, post_test_hook.sh can run 'gzip' on all the log
files before moving them to /opt/stack/logs on its own.
Arbitrarily restricting ourselves from using bash because developers on
platforms like netbsd don't want to install bash from ports doesn't
make sense. Any non-trivial shell script is likely to use features
like arrays or string manipulation that are poorly supported (if at
all) by sh, and the continued bumping of the number of expected bash
scripts is an indication that the check is not serving its purpose
Along with removing the check, all shebang references to /bin/bash
have been replaced with /usr/bin/env bash in an attempt to be more
compatible across different hosts.
This change adds a script to automate the copying of api tests from
tempest in the style of oslo_incubator. The target path will be
neutron/tests/tempest and no manual modifications should be made to
this path until such time as neutron api test development is frozen in
tempest and development can proceed in the neutron tree. Until that
occurs, a policy of manual once-daily synchronization is suggested.
The target path includes the name 'tempest' as a clear indication that
this is not part of neutron, and that once development is allowed to
proceed, its contents should be rewritten and removed until there is
So long as the tests exist in both the tempest and neutron trees,
testing effort will be duplicated. The larger goal is to have the
tests in question removed from tempest as per the qa guidelines ,
so this should be temporary.
In order to run the API job successfully, must be installed and
configured. Today when using devstack-vm-gate.sh this means that
Tempest will run as well, which we do not want. To fix this problem
there are changes needed both in project-config and devstack-gate.
As a stop-gap solution, we bring in the scripts required and run
them directly within the gate hooks that we already have.
Once changes in devstack-gate and project-config will be accepted, this
solution can be dropped.
A failure was observed where the functional job would fail with error
chmod: changing permissions of ./neutron/agent/metadata/namespace_proxy.pyc
Operation not permitted
We should limit the permission change to logs only to avoid this potential
With this change both the API and Functional job will benefit
from the use of gate hooks. This is especially useful to make
the API job emit the test results the same way other jobs do.
NOTE: Changes are applied to both contrib directories under
neutron/tests and neutron/tests/functional; these two directories
are supposed to be in sync until change  merges, after which
we can drop neutron/tests/functional/contrib, in favor of
neutron/tests/contrib. This was done because of the symlink issue
caused by .
This is needed to have post hook apply to both functional and api jobs.
This is aimed at fixing the output for the dsvm-api job in preparation
of the retargatable testing blueprint.