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
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
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
Show ip address before associating address

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

Change-Id: I506f2f099a03e8b63f1f2daeb564ed72f1322a68
Merge "Show ip address before associating address"
Default to xenserver driver if xenserver-core is installed

Fixes bug 1209205

Change-Id: I63085cc87610a59fc48e519e4351c9233b3961be
Merge "Add keystoneclient support for cinder."
Merge "Update baremetal to work with the latest DIB"
Merge "Correctly setup ML2 mechanism_drivers"
Support heat in standalone mode.

The following localrc will launch only heat in standalone mode
and allow it to provision within the openstack specified by
the configured keystone endpoint:
HEAT_STANDALONE=True
ENABLED_SERVICES=rabbit,mysql,heat,h-api,h-api-cfn,h-api-cw,h-eng
KEYSTONE_SERVICE_HOST=...
KEYSTONE_AUTH_HOST=...

Change-Id: I0d8a541fc9d592577423b074c789829f8b8d6702
Add tools/install_pip.sh

Install a known working recent version of pip that handles installation
dependencies more correctly than before.  Extract to a separate script
so it can be used apart from stack.sh.

* Install distro setuptools if it not already present
* Install pip from source tarball as get-pip.py proved to be unreliable
* Remove python-distribute and python-pip from all prereq files,
  move python-setuptools to 'general'
* Remove the earlier unfubar_setuptppls() call that attenpted to fix this
* Only update requirements.txt when no changes in repo

Tested on Precise, F18 and CentOS6.
* Fedora and RHEL allow pip to install packages ON TOP OF RPM-installed
  packages.  THIS IS BROKEN.  And is one reason we have to be so picky
  about order and so forth.

Change-Id: Ibb4b42119dc2e51577c77bbbbffb110863e5324d
Merge "Add call trace in error message"
Merge "Add tools/install_pip.sh"
Merge "misleading source filename in error message"
Add Cinder V2 API to keystone catalog

Support both SQL and templated keystone backend. This will add an
additional endpoint to go with v1.

Change-Id: I19168d55c2ffad2b1cd668b6c1341dc8e49e9c1f