add firewall driver if we use quantum security group

fixes bug 1179820

we must set firewall driver if we want to use quantum security group because
quantum will disable security group if we do not change the default firewall
driver. Currently devstack will not change the default firewall driver
if we just running quantum server on a node which will cause nova unable to
security group information.

Change-Id: Ie274325decbf252630a237ed3d6ee3136eb259fe
xenapi - quantum: L2 agents for dom0 and domU

This patch makes it easier to support the all-in-one installation of
XenServer with Quantum:
- separate agents for domU and dom0 openvswitches. The domU agent's name
  is "q-domua", and the dom0 agent is called "q-agt"
- create a physnet1 physical network to connect those openvswitches

Note: This patch depends on the quantum patch:

    https://review.openstack.org/15022

For a diagram, see:
    http://goo.gl/BuAdg

Change-Id: Iff851438553528b9051edd380ecbb2c0415cbf78
specify session name on perform rejoin stack

rejoin-stack.sh would not specify screen session name which will lead
unstack.sh unable to kill the screen session started by rejoin-stack.sh
after hypervisor rebooted. So specify the session name if
rejoin-stack.sh need to start a new sreen session.

fixes bug 1182806

Change-Id: I68635887aa82fa63f3667e0f090ea2836eec7b68
Install nodejs for RHEL/Fedora

nodejs is required for Horizon (ships a copy of lessc internally).  I
couldn't find nodejs in the rpm list, despite it being installed in
lib/horizon.  This adds to the rpm list as NOPRIME and retains the old
install point.

RHEL6 has nodejs in EPEL now, so we remove the old hack that installed
an upstream version and add it to the install mentioned previously

Change-Id: Ib3ee2f7d77e22666c9055c8528288c01b46a95d3
Install EPEL for rhel6 if not detected

Simple check to see if EPEL repo is enabled for RHEL6 and, if not,
automated install of the repo RPM.

Also adds an additional sanity check which checking for pip.  In the
prior case of EPEL being disabled, a RHEL6 host may not have access to
python-pip.  Although this shouldn't happen, its a good sanity check.

Change-Id: I4e8a4dda9475b75d071534d4eef469198502a048
xenapi: kernel_cmdline moved out from template

The kernel's cmdline was set during the initial devstack machine
installation. Thus, during second runs, the kernel's cmdline was not
updated. This patch extracts append_kernel_cmdline, and configures
domU's kernel cmdline every time. As some networking parameters are
passed through the kernel cmdline, this patch makes it possible to
change the network configuration, even if a cached devstack exists.

Related to blueprint xenapi-devstack-cleanup

Change-Id: I3b7175f4e83326c3e28825ac50625f6bd2a9a029
Enable Nova v3 API

The Nova v3 API will be disabled by default after 31164 goes through.
This change explicitly enables the v3 API in the nova config file

Change-Id: I8b4c64b4718fc96d7a928c6fa3a0e8716c7edba1
ceilometer does not set db in conf file

Set [database]connection option to mongodb rather than sqlite as mongodb
is the only fully supported db.

Change-Id: I2b9fbc65de4476593d456a782dbc7e6540a75141
Fixes: bug #1186240
Merge "specify session name on perform rejoin stack"
Merge "add firewall driver if we use quantum security group"
Merge "Install EPEL for rhel6 if not detected"
Merge "Enable Nova v3 API"
Merge "ceilometer does not set db in conf file"
Functions are required to parse localrc

This is essentially a revert of
73695d0ea490c4c7a1158957dd5a85586cfa0933. Since stackrc is
responsible for sourcing localrc, the required functions
are necessary (like for enable_service).

fixes bug 1186488

Change-Id: Iad90f802e77b94416821008c294c1a2ede8a4729
Merge "xenapi - quantum: L2 agents for dom0 and domU"
Merge "Install nodejs for RHEL/Fedora"
Merge "xenapi: kernel_cmdline moved out from template"