Adds support for Openstack Networking FWaaS (Firewall)

blueprint quantum-fwaas-devstack

Change-Id: I3c546433415ab18a5933a25774a06df7c4cb42e9
xenapi: Use a jeos vm as a template

DevStack was using templating to speed up the setup process with
XenServer. The template already included some devstack customisations,
not just a clean OS. This change modifies devstack behaviour, so that
the template is a simple clean operating system. This makes it easier to
use custom OS as a template, potentially speeding up the tests.

related to blueprint xenapi-devstack-cleanup

Change-Id: I6cb0a7ed7a90e749b78329a8e2b65fb8b7fcfa5f
Remove unused keystone params from neutron agents' config files

DHCP, L3 and Metadata agents' config files no longer need to
duplicate this info; it's available in neutron.conf

Change-Id: I7bea25d1c2b9249ddacce3f4638f7a8ed4f43197
Update tempest test sample in devstack/README.md

As part of bp:tempest-repo-restructure, the scenario directory is added and
scenario tests are moved there. The tempest test sample should be updated
in README.md.

Fixes bug #1207109

Change-Id: I25067e4b42697985e8f4b808fad5eb801c805f9f
Don't add bulk middleware.

- The bulk middleware is already in the sample.
- Fixes bug 1207108

Change-Id: I569ecb734ac2e59716e5f24fa96e97d216cdc1a3
Add support for running multiple n-cpus for performance testing

When using the fake VIRT_DRIVER, we can launch an arbitrary number of
instances, the next step for performance testing is running an arbitrary
number of n-cpus. This can be done with the following settings in your localrc

 VIRT_DRIVER=fake
 NUMBER_FAKE_NOVA_COMPUTE=50

This can be used for things like measuring load from n-cpu's periodic tasks.

Change-Id: I40e0f05374e2c10c48ea6b8816ef6e7609b3dc80
Add call trace in error message

Call trace can help user to locate problem quickly.

stack.sh uses bash as interpreter, which defines a series of
"Shell Variables":
BASH_SOURCE:
An array variable whose members are the source filenames

BASH_LINENO:
An array variable whose members are the line numbers in source
files where each corresponding member of FUNCNAME  was  invoked.

FUNCNAME:
An array variable containing the names of all shell functions
currently in the execution call stack.

run "man bash" and search the variable name to get detailed info.

In function backtrace, it gets the call deepth from
${#BASH_SOURCE[@]}, then print the call stack from top to down.

In function die, backtrace is called with parameter "2" to ignore
the call trace of function "die" and "backtrace".

I add a broken function in lib/database, and call it in stack.sh,
the output looks like this:

[Call Trace]
./stack.sh:104:broken
/home/kui/osd/devstack/lib/database:24:die
[ERROR] ./stack.sh:24 It is broken

Fixes bug # 1207660

Change-Id: I04d0b3ccf783c769e41582c20f48694c19917334
misleading source filename in error message

when ./stack.sh encounters error, the output may look like this:
[ERROR] ./stack.sh:698 nova-api did not start

The source filename is wrong. Actually, it should be like this:
[ERROR] /<path_of_devstack>/lib/nova:698 nova-api did not start

stack.sh uses bash as interpreter, which define "Shell Variables"
BASH_SOURCE:
    An array variable whose members are the source filenames where
    the corresponding shell function names  in  the  FUNCNAME  array
    variable  are  defined.   The  shell  function
    ${FUNCNAME[$i]}  is  defined  in  the  file ${BASH_SOURCE[$i]}
    and called from ${BASH_SOURCE[$i+1]}.

The function "err" is called by function "die" ( and "err_if_not_set",
and "err_if_not_set" is not used at all). ${BASH_SOURCE[2]} will
ignore the deepest two call entries, which corresponding to the shell
functions: "err" and "die".

In one sentence, this change will print the source filename where the
function is defined and exits via function "die".

Fixes bug #1207658

Change-Id: I2aa6642c5cf4cfe781afe278b3dec3e7cba277fa
Update baremetal to work with the latest DIB

Adjust DevStack to the current DIB's naming to kernel/ramdisk.

BM_HOST_CURRENT_KERNEL is removed since the kernel is extracted from
a diskimage with the ramdisk and the host's kernel is not used.

BM_BUILD_DEPLOY_RAMDISK is added to control whether use DIB or not.

If you set BM_BUILD_DEPLOY_RAMDISK=False, you must BM_DEPLOY_KERNEL
and BM_DEPLOY_RAMDISK to point existing deploy kernel/ramdisk.

Fixes bug 1207719

Change-Id: I62af0b1942b07ac12665c0ed3619d64c1cccbe1f
Correctly setup ML2 mechanism_drivers

The ML2 code in devstack was not correctly configuring the mechanism_drivers
when asked to do so. This corrects the typo in the variable assignment, and
also actually sets these in the plugin configuration file.

Fixes bug 1208557

Change-Id: I3746ca099f45d44dcf1cc2ca1c3726745b8e8a1d
Ensures cross compatibility for zsh and bash.

Fixes bug #1207853

Change-Id: I8ab3959ac8dbb5bb199e325bfdfdc513b4327410
Merge "Add support for running multiple n-cpus for performance testing"
Update projects to global requirements before setup

We've agreed that we should be using global requirements, so
force projects to be updated to global requirements before we
test them.

Co-Authored-With: Monty Taylor <mordred@inaugust.com>

Change-Id: I0652f639673e600fd7508a9869ec85f8d5ce4518
Add keystoneclient support for cinder.

Add an ability to ask keystone about users and groups
through keystoneclient in cinder.

blueprint volume-acl

Change-Id: Ice261e9709833d057722b4f13c404df54e10b204
Run Neutron migrations after creating schema

Partial-Bug 1207402

This patch executes Neutron DB migrations (based on alembic)
before starting the Neutron services, similar to what happens
for most of other openstack projects managed by devstack.
This will ensure devstack always creates correctly version-stamped
Neutron databases.

Change-Id: Ia941c426a1563bcc4cb5eae64ea30c0bf7677220
Some bash versions don't support negative lengths

Fix to make the service string work on these versions of bash too

Change-Id: Ibb9868ea7bf44480be76a8ea9d7d9fbc278a8ef3
Show ip address before associating address

In order to see is the instance has a fixed ip at the moment.

Change-Id: I506f2f099a03e8b63f1f2daeb564ed72f1322a68
Re-enble pip -e in setup_develop

We had a bad merge somewhere along the way which reverted the pip -e
part of things. Replace it.

Change-Id: I620bea80eac7ad53b5bfb79dd2b21c29ad1b2267
Merge "Don't add bulk middleware."
Merge "Ensures cross compatibility for zsh and bash."