Fixed gate by Updating Gemfile to pin Rake to 10.1.1

The latest Rake update requires Ruby >= 1.9. Bundler in the
current gate uses 1.8.x. This update fixes the gate by pinning
Rake to the last known working version.

Change-Id: I5754ac248999b47e86a3cb29272db2ac4a1df4b9
Make haproxy package management optional

Puppetlabs-haproxy does not use ensure_resources
and can cause failures when combined with lbaas
agent class.

This patch makes package management of haproxy
optional so that agents::lbaas can play nicely
with that module without requiring a patch there
changing to ensure_resource.

The dependency is fairly safe since:
 - redhat package name is haproxy
 - debian package name is haproxy
 - puppetlabs-haproxy aliases the package name to haproxy

If the names of any of these things get out of sync, this
may lead to errors.

Change-Id: I6e603cf328ade9460e98e391ef01337fcb6ea72b
(cherry picked from commit 954d550373fda5bcdf764c832db7cdf362b052f3)
Release 3.1.0

Updated README.md and Modulefile for release 3.1.0

Change-Id: I4339212ec8677ac2c32fd51da8375ef195d59ad3
Correct multi-line neutron attribute detection

The way that arrays were built-up for multi-line items caused the arrays
to become more tested with each element, making structures like
[[[a, b], c], d]

This corrects the behavior

Change-Id: I045abdfefd6f2cc85d0d9c70d3375fdce302f05d
(cherry picked from commit 0c82dfd436ff987aac70f5fc8440874f89b1155e)
Improve Neutron subnets management

Previously, subnet had some parameters as read-only which blocks some
features, like specifing dns servers, allocation pools and also specific
host routes. This patch aims to add support for these options as well for creation
and also for update (for some of them where API allows it).

Change-Id: Ic0e4ccbcc58a92bd014f0095de24e694dc7be6a9
(cherry picked from commit 340e1bb03787835637fe2c0bea86c1e0e6181221)
Merge "Correct multi-line neutron attribute detection" into stable/havana
Correct two bugs with neutron router gateway id parsing

1. The regex ended with `\}` but in the case of external gateways such
   as `{"network_id": "8b43562d-f168-4317-8c9f-4d639ba126ea", "enable_snat": true}`
   this was not finding the network_id.
2. The `.*` was greedy and in the prior case, matching more than just
   the id.

Change-Id: I224c0bcf387434bdd029b4c80934a66b60cc77e0
(cherry picked from commit c8989e62a51b22acf4f7862aa56bf574e9ac19f3)
Neutron 3.2.0 release

Updated README.md and Modulefile for Neutron 3.2.0 release

Change-Id: Icc1b8f7e2ddd9bef6fddddab50b1dbf4c9a26e56
Fix network_vlan_ranges parameter for OVS plugin

Class neutron::plugins::ovs expects string value in network_vlan_ranges parameter,
but validate_network_vlan_ranges will fail when value is comma separated list
of valid values. This patch is fixing this problem

Change-Id: If5b8ef59a600b3204415853ad796fb0537fefe4a
(cherry picked from commit 3d8d9fafec004b0debb2af8a70f4cd77d67ce04d)
Change dhcp_lease_duration to Havana default of 86400

In Havana - the default lease time was upped to 86400 - 1 day - this should be changed back to the correct default in the puppet module as well.
http://docs.openstack.org/havana/config-reference/content/section_networking-options-reference.html

(cherry picked from commit 1235d8f7001e060d0d52d4cdf1512a894b35da2c)

Conflicts:
	spec/classes/neutron_init_spec.rb

Change-Id: Ifd75f024186a9100f8aeb78415b4b5c8482913e2
Merge "Fix network_vlan_ranges parameter for OVS plugin" into stable/havana
Fix to remove conflicted symlink

Since cisco plugin coexists with ovs, a symlink
pointing to ovs already exists causing a conflict
with cisco_plugins.ini. This fix should default
the symlink to ovs.

Change-Id: I98c7b2e08257a6d9c07916b9b114bcb21d913e4f
Include interface driver for vpn agent

Fix to include interface driver in the vpn_agent.ini
config file. Defaults to ovs interface driver.

Change-Id: I1b57817b79627878eac6fcb4cedaad835bdf98c1
Closes-Bug: #1301418
Add neutron_port resource

This resource is required to add more than a single router interface to
a neutron network or subnet. By default, using
`neutron_router_interface` to add a second router to a subnet without
first creating a port for it will cause IP conflicts.

This resource can be used to first retreive a non-conflicting ip on a
target network or subnet, then create a `neutron_router_interface` with
the port.

Eg:
```
neutron_router { $tenant:
  tenant_name          => $tenant,
  gateway_network_name => 'public',
  require              => [
    Neutron_network['private'],
    Neutron_subnet[$private_subnet],
  ],
} ->
neutron_port { "${tenant}_private":
  ensure       => present,
  network_name => 'private',
  subnet_name  => $private_subnet,
} ->
neutron_router_interface  { "${tenant}:${private_subnet}":
  ensure => present,
  port   => ${tenant}_private",
}
```

(cherry picked from commit 58d07a78c8d30f207c582e42a84a0a3660f738ac)

Change-Id: Ifdec5dce4576d51c6c95261469a4565807a34040
Include external network bridge for vpn agent

fix to make external network bridge configurable
in the vpn_agent.ini config file. Defaults to
nil.

Change-Id: Iddb6ff6296b8f2d42d97fdcb36a9819a4a995034
(cherry-picked from 3356503ea42ca9929ae53cf5a2874f0341724236)
Fixed vpnaas agent for RedHat systems

The package vpnaas package was not installed by default for RedHat
systems, and the service had the incorrect name. This patch
installs the package and sets the correct service name.

Backport to stable/havana

Change-Id: Id54dfbcb918d7d9ba110eb238858162c5cc0380e
(cherry picked from commit f3f723277d5c73d46890ce6872fbeeb11a5c2797)
Merge "Add neutron_port resource" into stable/havana
Merge "Fixed vpnaas agent for RedHat systems" into stable/havana
Release 3.3.0

Feature and bug fix release.

Change-Id: Ibb710bf312e1fbb114e182b92690118628b0571f
Improve multi DHCP agent support

Since Grizzly release, a specific number of DHCP agents can be scheduled to host a
network.
This enables redundant DHCP agents for configured networks.

Change-Id: I3388282c0a46eafa2b4e0e6d2d0293fa91e46cc3
Signed-off-by: Emilien Macchi <emilien.macchi@enovance.com>

Conflicts:
	manifests/init.pp
	spec/classes/neutron_init_spec.rb