Allow configurable large-ops tests

This makes the large-ops job use the non-zero enable flag as the
number of resources to configure instead of hard-coding it into
the job. Since we can't merge this and the change to the job
at the same time, this includes special support for the =1 case to
run the same number we currently do (50). After both merge, the
extra condition can be cleaned up with a test for ">0".

Change-Id: I08c392bb620b5e911c721c806310749eeaba8ed0
Correcting the right path to mysql log in Fedora 19

The mysql log is wrong in Fedora 19+ pointing to
/var/lib/mysqld.log while the correct is /var/log/mysqld.log.
This make the job fail if you're running Fedora with
mysql.
This error was inserted by
https://review.openstack.org/#/c/55827/

Change-Id: I63dd494f1ae105ad007344dea40936ab283d55a9
Altering the > to -gt to check number of processors

Using > to check if a variable is greater then another
doesn't seems to work among distros.
Using -gt instead of > ensure that will work in different
distros that may implement different bash versions

Change-Id: Ie270ad8aa512807fbce3052018e9ce0db7c238b4
Merge "Allow configurable large-ops tests"
Enable large ops if flag is >= 1

The largeops flag value is now used to set the number of concurrent VMs
to start which means we cannot simply check against 1 to see if the job
is enabled. Any value greater than 1 is also valid. Make the comparison
`"$DEVSTACK_GATE_TEMPEST_LARGE_OPS" -ge "1"` to catch non default cases.

Change-Id: Ifbfeb3ee47373d4ba0046acc1daa6cb0e85554f2
Only install libvirt if the driver is libvirt(!)

Ib85769e9a3470bede836ac0b87861ce76c0aedcf broke other drivers by force-installing
libvirt.  Only seen when we rebased the CI on the latest devstack-gate.

Change-Id: I99f5dbf8f0af8bdb2b76fb6834b20a96344dfa7d
turn back on log enforcement

This turns back on the log enforcement that certain logs need to
be clean. This will fail if a new log gets added that has errors.

The logic was cleaned up a bit to rely on -o errexit. While we
should already be at -o errexit at that part of the script, an
added call is made to ensure if anyone changes the top half they
don't change the behavior of this part.

We also create a specific out for 3rd party CI, or other tests
that don't want this enforcing, which is to set
DEVSTACK_GATE_CLEAN_LOGS=0 in the environment.

Change-Id: I50944ad64bec948504a0124ea423a0f96f8a8361
Merge "Only install libvirt if the driver is libvirt(!)"
Merge "Altering the > to -gt to check number of processors"
Merge "Correcting the right path to mysql log in Fedora 19"
allow for generic branch overrides

This allows us to specify project specific branch overrides in
jjb definitions. For instance, OVERRIDE_TEMPEST_PROJECT_BRANCH=master
to always test with tempest master.

Now with support for projects like oslo.foo

Change-Id: Ic259c5b60a307b87771514849a6a78eb1bc32c75
Merge "allow for generic branch overrides"
normalize the services for a post grizzly world

now that grizzly is gone, normalize the service list generation,
as anything that was getting set in stable/havana and master can
be set globally (cells).

restack the initial services list by major service so it's easier
to not miss something on future changes to that list.

Change-Id: Ib78d853fc99e71f1d0656e1ba047c84af786c08c
feature matrix definition in yaml

This adds a definition mechanism for the d-g feature matrix in
yaml, a python tool to process that into an ENABLED_SERVICES list
and a test script to verify that it works as expected.

The theory here is that we create configs (which match to d-g
DEVSTACK_GATE_ vars) that enable or disable "features". The
features then enable or disable "services" (and eventually
extensions).

An important part of this is the ability to rm-* content. That
means the neutron feature can rm-services: n-net. The hope is
this makes reviewing changes more straight forward, and also
makes it so if something goes wrong we don't run a job missing
services, because we don't need to make sure we add things in
the else clauses.

A follow up patch integrates this into d-g proper, but this
patch seemed easier to review on it's own.

Change-Id: Ib030f820073dd0b450b362fd721f9477778c04b0
use feature grid for service selection

this uses the feature grid for service selection in all the
devstack-gate jobs

Change-Id: Ie543feb5b6557f1b33f1a0d7edfbc198a749eb0c
add sahara to devstack-gate default runs

sahara is an integrated project, put it in the integrated test
matrix.

Change-Id: I711a7a30460db91e76814088431400df4b9de272
update grenade branches

make it possible to run grenade from stable/icehouse -> master

Change-Id: If46d1624e0b35a37d5dfb043edb513fc04b6ea68
add run-tests.sh

this is a basic test runner that runs all test-*.sh files in the
root directory.

Change-Id: I7450913f78e0c50194cb68096edbaf52259bb80f
usability improvements to test-functions.sh

instead of dying at the first error found, run all the tests
and show all the errors. This makes it simpler to debug as you
can address more than one issue at once.

add the use of the bash 'caller' function to automatically print
out the name of the function and line number on both successful
and failing asserts. This ensures it's easy to get to the issue
at hand.

Change-Id: If15f50c6c41aa3940682d41c776589407a42bf4f
Merge "add run-tests.sh"