hypervisor: ensure RBD can't be enabled on RHEL

RHEL does not support RBD backend for VMs storage.
We need to ensure that nova will never be configured with RBD
parameters, even if has_ceph is true on Red Hat hypervisor nodes.

Also add more unit tests.
CHANGELOG: Notes for 1.2.0 release
Merge pull request #448 from enovance/release-note-1.2

CHANGELOG: Notes for 1.2.0 release
Merge pull request #438 from enovance/rh-compute-ceph

hypervisor: ensure RBD can't be enabled on RHEL
loadbalancer: delete non-used parameter

keepalived_localhost_ip params was not used.

Bug #237
loadbalancer: Add internal VIP support

- (option) Create an internal VIP (new VRRP instance in Keepalived)
- Rename old parameters to be used for the public VIP
- deprecate old parameters correctly and set them as public endpoint by
  default.

Bug #237
Signed-off-by: Emilien Macchi <emilien.macchi@enovance.com>
loadbalancer: add internal HAproxy binding

- (option) create HAproxy internal binding for OpenStack services
- warning if Galera Cluster is exposed on public network
- warning if Glance Registry is exposed on public network

Bug #237
Signed-off-by: Emilien Macchi <emilien.macchi@enovance.com>
loadbalancer: fail if VIP is incorrect

Fails the catalog if OpenStack or Galera IP are not in the Keepalived
VIP list.
It avoids configuration mistakes.

Bug #237

Signed-off-by: Emilien Macchi <emilien.macchi@enovance.com>
loadbalancer: nicer tests
Update puppetabs-haproxy ref

Update puppetlabs-haproxy git reference to latest commit.
This commit is important for working on Active / Active work that we are
doing currently.

Signed-off-by: Emilien Macchi <emilien.macchi@enovance.com>
Merge pull request #449 from enovance/bug/237/emilien

Public & Internal endpoints support
HA refacto: add haproxy resource agent

This resource agent will be used by Corosync to manage HAproxy in
active/active mode.

Signed-off-by: Emilien Macchi <emilien.macchi@enovance.com>
Change httpchk options for horizon

In order to have clean log in apache, we need to do
a GET call instead of the default OPTIONS call. Also we
specify a User Agent, for better filtering.

Related to #237
(cherry picked from commit 98ce1341751ecd320a3701e11e6fd07cd233a5c0)

Conflicts:
	manifests/loadbalancer.pp
Implement sticky/persistent session with HAProxy

This commit implements sticky/persisten session between
HAProxy and Horizon based on the leastconn fashion

Related to #237
(cherry picked from commit 1a64e535b7f1a13c6ccd6388a0c95131a91f77eb)

Conflicts:
	manifests/loadbalancer.pp
Revert "HA refacto: add haproxy resource agent"

This reverts commit 3d5f97e84ac854a0653841ec6e46cadeaa95aade.
loadbalancer/horizon: check real Horizon URL

On Red Hat and Debian, Horizon URL are not the same. HAproxy is now able
to check the real URL to get a HTTP 200 is Horizon is actually working.
loadbalancer: do not manage HAproxy service on BACKUP nodes

When a loadbalancer is in BACKUP mode, HAproxy can't bind the pools to
the VIP, since the VIP is not hosted. Puppet warns it when compiling in
the catalogue.
This patch ensure HAproxy is run where we Keepalived is in MASTER mode.

If a failover occurs and MASTER has changed, Keepalived & HAproxy are auto-migrated thanks to VRRP to another node. The worth case will only show warnings in Puppet catalog but HAproxy won't start anyway on the node.

Bug #237
loadbalancer: Collect Heat exported resources

Collect exported resources from cloud::orchestration::api to be able to
load-balance Heat CFN API and Heat Cloudwatch API correctly.

Bug #237
loadbalancing: internal pools support

If internal endpoints are enabled, create the HAproxy pools.

 Bug #237
Merge pull request #450 from enovance/update-refs

Update puppetabs-haproxy ref