Add Core, Ram and Disk filter to fake virt setting

The FakeVirt driver shouldn't need custom scheduling options, so it run
instead of a real virt driver for testing purposes. This simplifies the
use case where someone wants to run the FakeVirt driver along side a
real driver so someone can test there cloud application without wasting
real instances.

Since the FakeVirt driver should look like it has near infinite resources,
turn on Core, Ram and Disk filters to make sure the drive works with them
enabled.

Change-Id: Ic7ec87e4d497d9db58eec93f2b304fe9770a2bbc
Related-Bug: #1268943
Enable security group extension in PLUMgrid plugin

Implements: blueprint plumgrid-neutron-security-groups
Change-Id: I30392adff5e3250a1c4f9f1f04fc7e0587007226
Clean up local variable usage - Zaqar

Change-Id: Ie274ce587134d3a3a928a3825dc4452298c5c4d0
Configure enabled and disabled extensions in tempest

This patch adds support for configuring the api_extensions
option of the various feature-$service-(enabled|disabled)
sections in tempest's configuration file.

Please note that enabled extensions for the object storage
service are specified in tempest using the discoverable_apis
configuration options.

Partially-implements: Blueprint branchless-tempest-extensions

Change-Id: Ib64c0a474b153f42f3a4a427d86275c85f107997
Remove usage of $[ for arithmetic

$[ is deprecated for the more familiar $((

Required when bash8 starts testing from tox and [1] goes in

[1] https://review.openstack.org/#/c/117430/

Change-Id: I8ba180be036836f37ebdbb6da36ff0be486c043e
Fix regression in Cinder volume type creation

The local-vars cleanup (Iedeafa15def1fa26d4ddcbc5f670129f66e38b9d)
spanned (and missed) this fix (Ib35ffc09f6582354010ac8ca35da581ea508877a)
for volume type creation.

Change-Id: I2b95cbc946727d7708283eca0c07ba1eaddf5db8
Set flavor id for Ironic's baremetal flavor

An existing trove bug prevents it from functioning when Nova flavors exist
with an id that is a UUID instead of an integer, causing Tempest failures.
This sets an integer ID when creating the baremetal flavor for Ironic's use.

Change-Id: Ic090f61a9a47421117dc86b640422f00f468112c
Related-bug: #1333852
don't install boto from packages

installing boto from packages pins some other pure python libraries
(like requests) in an unexpected way. As this is pure python we should
instead let this be install from pip and thus be controlled by global
requirements.

Change-Id: If5df9de8c3e1ad8faceab4b43c86134dbbc55a51
Fix keystone auth parameter to neutron conf

Devstack set auth_uri to  metadata_agent.ini.
But auth_uri is wrong parameter for metadate_agent.

This is regression caused by https://review.openstack.org/#/c/94545/

Change-Id: I3dcf1d619b5d204937f072b3fbb9966069793680
Closes-bug: #1364684
Add ryu team to the MAINTAINERS file for ofagent and ryu

Change-Id: I02fa641c34248c9e6bbaab5caa66892165308c36
Use mod_version to clean-up apache version matching

This change uses mod_version (shipped by default on everything we care
about) to set-up version-specific config within apache rather than
within devstack scripts.

Clean up the horizon and keystone config file generation to use the
internal apache matching.

Since I6478db385fda2fa1c75ced12d3e886b2e1152852 the apache matching in
'functions' is actually duplicated.  just leave get_apache_version in
lib/apache as it is used for config-file name matching in there.

Change-Id: I6478db385fda2fa1c75ced12d3e886b2e1152852
Source lib/dstat in unstack.sh

`stop_dstat` function was extracted into $TOP_DIR/lib/dstat in commit
e0b08d04ab41f9aca96997c87bd9fa13feba2536 but the new lib was not sourced in
unstack.sh.

Change-Id: I6878552d9f384fdd7882e52000b37ac6a60844c3
Closes-Bug: 1366713
Switch config to use Ironic driver from Nova's tree

Change the Nova config to use the IronicDriver from the Nova tree,
so that the copy of this driver in Ironic's tree may be deleted.

Also removes the unneeded [ironic] "sql_connection" config parameter
which was cruft copied from the nova_bm configuration in commit
06fb29c66124b6c753fdd262eb262043b4551298

Change-Id: I35473b54d760bfa7395decbe6b086f64db60ab10
Initialize metadata definitions catalog

This patch copies all files from /etc/metadefs to
/etc/glance/metadefs and calls glance-manage db_load_metadefs
after successful database migration. This covers whole
process of initializing the metadata catalog.

Change-Id: I2ffd19bf543708b42229ef78dd17ee317f58e6ad
Implements: blueprint glance-metadata-definitions-support
Co-Authored-By: Travis Tripp <travis.tripp@hp.com>
Test against latest glance_store code

Install glance_store from git so we can test Glance against master. This
is useful for both, glance and glance_store gates, to make sure nothing
is broken there.

Change-Id: I6c01165c4384c41f46f2c32d64475703b3178dab
Update parameter checking with provider network

Currently, devstack can't deploy OpenStack with flat provider network.

devstack checks whether SEGMENTATION_ID is provided or not when it
deploys openstack with provider network. If it is not provided devstack
prints a error message and dies.
On the other hand, devstack also gets an error from "neutron net-create"
command even if it sets SEGMENTATION_ID with flat option.

In addition to that, because neutron allows partial specs these days,
SEGMENTATION_ID checking should be removed completely.

Also, devstack uses PHYSICAL_NETWORK both as "network name" and "physical
network name" in neutron command. If it is not provided, the command fails
to create network. So devstack should check whether PHYSICAL_NETWORK is
provided.

See also:
https://blueprints.launchpad.net/neutron/+spec/provider-network-partial-specs

Change-Id: I2273e3369c688bbce1a6e39b43635b5548cc2b98
Closes-Bug: #1362382
Run processes without screen

This introduces new run_process() and screen_service() functions and sets the
groundwork to change how DevStack starts services.  screen_service() is simply a
direct call to the screen portion of the old screen_it() function and is intended
to run commands that only need to run under screen, such as log file watchers.

run_process() is a replacement for screen_it() (which remains until all of the
services are updated).  The usage is similar but requires updates to every current
screen_it() call to remove everything that requires the command to be interpreted
by a shell.

The old run_process() and _run_process() functions are still present as
old_run_process() and _old_run_process() to support the deprecated screen_it()
function.  These will all go away in the future once all services have been
confirmed to have been changed over.

There is a similar new set of stop process functions stop_process() and
screen_stop_service().  The old screen_stop() will also remain for the deprecation
period.

As an initial test/demostration this review also includes the changes for
lib/cinder to demonstrate what is required for every service.

I included the scripts I used to test this; tests/fake-service.sh and
tests/run-process.sh are quite rough around the edges and may bite.  They should
mature into productive members of the testing ecosystem someday.

Change-Id: I03322bf0208353ebd267811735c66f13a516637b
Add docs environment to tox.ini

As per the governance resolution https://review.openstack.org/119875,
projects should have a docs environment in their tox.ini testing
interface. Add one.

Change-Id: Ib3548bc23713e120089ae29b5c4e851de48cf8d3
Allow setting the number of workers to be used.

Environments with large numbers of CPUs will create a large
number of workers which can have an unnecessarily large
impact on memory usage, particular where you know how many
workers are needed.

Change-Id: Ie4bb075310a61a0873c9e56e4974600dbb4794a1
Increase CEPH_LOOPBACK_DISK_SIZE_DEFAULT to 4GB

CEPH_LOOPBACK_DISK_SIZE_DEFAULT should be more than 2GB
to make volume snapshot feature works. 2GB is not enough
because min Cinder volume size is 1GB and no snapshot
could be created.

This also fixes related Tempest tests and experimental
check-tempest-dsvm-full-ceph gate job.

Change-Id: Ifa41d0d1764d68ea02dcb32a5fc62f7f6282904d