Add support for puppetlabs-mysql 2.2

Puppetlabs-mysql has been rewritten to be much
cleaner. This patch adds a new parameter for the
neutron mysql and init classes allowing users to
use the new version. Previous behavior will continue
as normal when using the old version (0.9)

Change-Id: Id4ca8f25cffc4c76b90ab2b7d7adf2a80b2c2c4b
if log_file enabled, ensure log_dir is not absent

If log_file is specified, that means we should configure log_dir.
Otherwise, when running a command which use debug (like db-sync commands), it will try to write logs in the user directory which is not the best way.

This patch aims to ensure that we configure log_dir instead of remove
the flag like it was before.

Partial-bug #1292619
Signed-off-by: Emilien Macchi <emilien.macchi@enovance.com>

Change-Id: I94528b42a4865976f74d264facd91cb521c177bd
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
Change report_interval from 4 to 30, agent_down_time from 9 to 75

Defaults values changed in neutron upstream to improve performances at
large scale.
Patch in Neutron: http://git.io/U1oCmA

Change-Id: Ie79668858eaa34de3872733af06b27e926593973
Signed-off-by: Emilien Macchi <emilien.macchi@enovance.com>
Merge "Make haproxy package management optional"
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
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: I40fe97eefedbb58ad5e192193511cb94a09fc19c
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

Change-Id: Ifd75f024186a9100f8aeb78415b4b5c8482913e2
Merge "Change report_interval from 4 to 30, agent_down_time from 9 to 75"
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",
}
```

Change-Id: I06a2186224c4c4fb59c6906152fed720c4cfc374
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
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
Merge "Improve Neutron subnets management"
Merge "Correct two bugs with neutron router gateway id parsing"
allow neutron::agents::ovs without package install

This alters the service notification and dependency behaviour for
neutron::agents::ovs such that if the package is not installed (i.e.
package_ensure => absent, enabled => false) the class still runs without
producing errors.  This is to allow the generation of config files
without needing to install the package in the first place.

Change-Id: I027313518f778d58e6e19b9b933ff17c0094a8aa
Closes-Bug: #1298146
Add missing quotas parameters

Reasons:
- Some parameters are missing in the quota class

Changes:
- Add quota_health_monitor option
- Add quota_items option
- Add quota_member option
- Add quota_network_gateway option
- Add quota_packet_filter option
- Add quota_pool option
- Add quota_vip option

Change-Id: I1e2ebe2714b331652ed9031b21f06edb1dcc821b
Merge "if log_file enabled, ensure log_dir is not absent"
Merge "Add missing quotas parameters"
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
Merge "Fix network_vlan_ranges parameter for OVS plugin"