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
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
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
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
Add VMware vmdk cinder backend

The following patch adds VMware vmdk as a cinder backend.

Change-Id: I9c7fd99c3307278326e81758c0b74fc84428d237
Replace screen_it() with run_process() throughout

run_process will use screen if USE_SCREEN=True (the default),
otherwise it will simply start the requested service. Therefore
wherever screen_it used, run_process can be instead.

Where stop_screen was found it has been replaced with stop_process.

A tail_log function has been added which will tail a logfile in a
screen if USE_SCREEN is True.

lib/template has been updated to reflect the use of the new
functions.

When using sg the quoting in run_process gets very complicated.
To get around this run_process and the functions it calls accepts
an optional third argument. If set it is a group to be used with sg.

Change-Id: Ia3843818014f7c6c7526ef3aa9676bbddb8a85ca
Fix Ironic agent ramdisk URL

This URL was wrong in the first place, not sure how that happened.

Change-Id: I8a9a19c9776c06d062751becf8382b9a014e45eb
Add $TOP_DIR to the path when calling worlddump script

The missing reference to $TOP_DIR cause stack.sh to fail when called
from outside devstack's directory

Change-Id: I7faec7720896e7dcfe60fa87fb417f22c8801eef
Merge "Configure enabled and disabled extensions in tempest"
Merge "Remove usage of $[ for arithmetic"
Merge "Allow setting the number of workers to be used."
Merge "Add $TOP_DIR to the path when calling worlddump script"
Merge "Replace screen_it() with run_process() throughout"
Merge "Update parameter checking with provider network"
Merge "don't install boto from packages"
Merge "Add VMware vmdk cinder backend"
Merge "Fix Ironic agent ramdisk URL"