Configure libgfapi access when cinder_backend_gluster is set

Setting qemu_allowed_storage_drivers=gluster in the nova config causes
libvirt/qemu to mount gluster volumes via libgfapi.
BZ #1126447 - Fix nova scheduler constraints for A/P

https://bugzilla.redhat.com/show_bug.cgi?id=1126447

When setting the scheduler to A/P, the resource name is different than when it
is A/A.  Update constraint creation to account for this.
Add facts for host pacemaker properties

This exposes some pacemaker property information through facter.
There are two main types.

(1) For each cluster member, a fact named pcs_props_<member name>,
which is a comma-separated string similar to the output of "pcs
property show".

(2) For each cluster service, a fact named pcs_setup_<service name>,
which is a boolean indicating whether that service is present on *all*
cluster members.
BZ #1132155 - galera stoppped before pcs resource added

https://bugzilla.redhat.com/show_bug.cgi?id=1132155

first puppet run now stops galera before pcs resource added

this only happens in the first puppet run, when
$::galera_bootstrap_ok is "true".
BZ #1132155 - galera add a clustercheck after pacemaker

https://bugzilla.redhat.com/show_bug.cgi?id=1132155

Add a clustercheck as the last action in the galera manifest.  Other
services that rely on galera being up should rely on this event.
BZ #1132155 - Openstack services fail when galera not fully running.

https://bugzilla.redhat.com/show_bug.cgi?id=1132155

This is an additional enforcement of ordering, to make sure the galera module
has done everything it is supposed to when we expect it has. Some dependencies
could have happened out of order without this addition.
Merge pull request #359 from cwolferh/galera_prop_up_the_beast

BZ #1132155 - Work around potential galera failures
Merge pull request #360 from jguiditta/bz1132155-galera-fail

BZ #1132155 - Openstack services fail when galera not fully running.
Merge pull request #357 from jeckersb/facter-pcs

Add facts for host pacemaker properties
BZ #1127863 - ceph client config

https://bugzilla.redhat.com/show_bug.cgi?id=1127863

Add parameters to controller and compute manifests to allow management
of:

  /etc/ceph/ceph.conf,
  /etc/ceph/ceph.client.images.keyring
  /etc/ceph/ceph.client.volumes.keyring

and add virsh secret-define for rbd
Merge pull request #358 from cwolferh/ceph_client_config

BZ #1127863 - ceph client config
Merge pull request #356 from jguiditta/bz1126447-ap-scheduler

BZ #1126447 - Fix nova scheduler constraints for A/P
BZ #1123303 - Add manage_service settings to get puppet out of the way.

https://bugzilla.redhat.com/show_bug.cgi?id=1123303

This does not include rabbit, due to unique issues with that service.
This patch should make starting services more consistent for the included
services as pacemaker will have full control of starting and stopping the
services without the chance of puppet having already done so, which potentially
could cause confusion for pacemaker.
Merge pull request #349 from jguiditta/add_manage_service_ha

Add manage_service settings to get puppet out of the way.
BZ#113272 - Cinder volume active/active should be avoided

https://bugzilla.redhat.com/show_bug.cgi?id=1132722

There's a bug reported against Cinder that if multiple cinder-volume
services are configured with the same backend storage and one
cinder-volume service goes down, its volumes are stranded - the other
cinder-volume services do not take over the management of these
volumes. Details on Launchpad [1].

The workaround is to set the "host" configuration option to the same
value for all cinder-volume services, so that they all appear as one,
and use active/passive HA for cinder-volume.

The side effect is that if we use iSCSI backend with local LVM data
storage for Cinder on the HA controllers, we can only use the disk
space on one of the controllers, not all (cinder-volume service will
run on only one controller). This should not be a problem because it
is not an expected production setup with HA controller - Cinder
backend setup using local LVM data storage on controllers wouldn't
provide HA anyway. If the user wants to scale out LVM data storage
backend, they can still use the Block Storage host group. This commit
only affects HA controller.

[1] https://bugs.launchpad.net/cinder/+bug/1322190
Fix dependency cycle in Puppet 3.7

In Puppet 3.7, `contain heat` from within quickstack::heat is going to
resolve to `contain ::quickstack::heat` instead of `contain ::heat`,
causing a dep cycle:

Error: Could not apply complete catalog: Found 2 dependency cycles:
(Class[Quickstack::Heat] => Class[Quickstack::Heat])
(Class[Quickstack::Heat] => Class[Quickstack::Heat])

In Puppet 3.6 the current code seems to behave correctly, and
furthermore it cannot cope with the fixed Puppet 3.7 syntax. If/else
branching based on Puppet version will break scenarios when using
different version of Puppet server vs. Puppet client. (Not a usual
scenario, but we shouldn't break it if we don't have to.)

Use `anchor` approach in the problematic spot, more info at:

https://docs.puppetlabs.com/puppet/3.7/reference/lang_containment.html#faux-containment-for-compatibility-with-puppet--340
Merge pull request #167 from jeckersb/bz1062693

Use libgfapi for compute access to cinder volumes
Add error checking and more precise regexp
BZ #1123296 - increase rabbitmq haproxy timeout

https://bugzilla.redhat.com/show_bug.cgi?id=1123296
Merge pull request #361 from jistr/cinder_volume_ha

BZ#113272 - Cinder volume active/active should be avoided