ichavero pushed to openstack-puppet-modules (f22). "Update to upstream 2014.2.15 (..more)"

notifications at fedoraproject.org notifications at fedoraproject.org
Wed Apr 15 23:35:08 UTC 2015


>From 98a8af6c368ee6284b372d07e47f32487a6d1763 Mon Sep 17 00:00:00 2001
From: Ivan Chavero <ichavero at redhat.com>
Date: Wed, 15 Apr 2015 17:24:17 -0600
Subject: Update to upstream 2014.2.15

Resolves: rhbz#1198858

diff --git a/0001-horizon-Change-default-documentation-URL.patch b/0001-horizon-Change-default-documentation-URL.patch
index ed19844..020b241 100644
--- a/0001-horizon-Change-default-documentation-URL.patch
+++ b/0001-horizon-Change-default-documentation-URL.patch
@@ -1,4 +1,4 @@
-From 7bd7c607499cfeb4cf04d7d1440be853af3ef260 Mon Sep 17 00:00:00 2001
+From d059f3981a0115987b04c8a2b0d3a029e7f8049d Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Martin=20M=C3=A1gr?= <mmagr at redhat.com>
 Date: Fri, 3 Oct 2014 19:18:45 +0200
 Subject: [PATCH] [horizon] Change default documentation URL
diff --git a/0002-rabbitmq-Don-t-manage-RabbitMQ-repos.patch b/0002-rabbitmq-Don-t-manage-RabbitMQ-repos.patch
index 3ad86a2..c9649b7 100644
--- a/0002-rabbitmq-Don-t-manage-RabbitMQ-repos.patch
+++ b/0002-rabbitmq-Don-t-manage-RabbitMQ-repos.patch
@@ -1,4 +1,4 @@
-From 0eb93c4efdcb3f7e3cd82a070ab2d841955e1f41 Mon Sep 17 00:00:00 2001
+From 9beb97e901c2fb9a4fcab4e4b9e83fe1002a9c2c Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Martin=20M=C3=A1gr?= <mmagr at redhat.com>
 Date: Fri, 3 Oct 2014 19:26:49 +0200
 Subject: [PATCH] [rabbitmq] Don't manage RabbitMQ repos
diff --git a/0003-openstack-Set-default-charset-to-utf8.patch b/0003-openstack-Set-default-charset-to-utf8.patch
index 8f27243..b0b486b 100644
--- a/0003-openstack-Set-default-charset-to-utf8.patch
+++ b/0003-openstack-Set-default-charset-to-utf8.patch
@@ -1,4 +1,4 @@
-From 219715097d077881159b9761eb0d0c29925f857b Mon Sep 17 00:00:00 2001
+From 28be957472a90a4a415395c95f4af303c12aeb67 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Martin=20M=C3=A1gr?= <mmagr at redhat.com>
 Date: Fri, 3 Oct 2014 19:56:51 +0200
 Subject: [PATCH] [openstack] Set default charset to utf8
diff --git a/0004-keystone-Add-manage_service-feature.patch b/0004-keystone-Add-manage_service-feature.patch
index a459c10..633abf2 100644
--- a/0004-keystone-Add-manage_service-feature.patch
+++ b/0004-keystone-Add-manage_service-feature.patch
@@ -1,4 +1,4 @@
-From f712a5c5ba746cadcd38d4f3806d9b50775fb937 Mon Sep 17 00:00:00 2001
+From 1d864c443e43e5630eeba0492869f8d775ae91f5 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Martin=20M=C3=A1gr?= <mmagr at redhat.com>
 Date: Fri, 3 Oct 2014 20:32:27 +0200
 Subject: [PATCH] [keystone] Add manage_service feature
diff --git a/0005-Add-manage_service-feature.patch b/0005-Add-manage_service-feature.patch
deleted file mode 100644
index cdc8472..0000000
--- a/0005-Add-manage_service-feature.patch
+++ /dev/null
@@ -1,1013 +0,0 @@
-From 966a11fef53ea38f1f22e987231d0567c5787c0b Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Martin=20M=C3=A1gr?= <mmagr at redhat.com>
-Date: Mon, 22 Sep 2014 15:50:38 +0200
-Subject: [PATCH] Add manage_service feature
-
-puppet-swift lacks of disabling service managing. This patch adds
-$manage_service and $enabled parameter to all relevant classes.
-
-Closes-bug: #1359823
-Change-Id: I3d632e3a26e9394d03d94089ae704904bf77aa51
----
- swift/manifests/proxy.pp                           | 136 ++++++++++++-------
- swift/manifests/storage/account.pp                 |  35 ++++-
- swift/manifests/storage/container.pp               |  42 ++++--
- swift/manifests/storage/generic.pp                 |  35 ++++-
- swift/manifests/storage/object.pp                  |  35 ++++-
- swift/spec/classes/swift_proxy_spec.rb             |  74 +++++++++++
- swift/spec/classes/swift_storage_account_spec.rb   | 118 ++++++++++++-----
- swift/spec/classes/swift_storage_container_spec.rb | 147 +++++++++++++--------
- swift/spec/classes/swift_storage_object_spec.rb    | 117 +++++++++++-----
- 9 files changed, 551 insertions(+), 188 deletions(-)
-
-diff --git a/swift/manifests/proxy.pp b/swift/manifests/proxy.pp
-index ff7405c..d89fea9 100644
---- a/swift/manifests/proxy.pp
-+++ b/swift/manifests/proxy.pp
-@@ -6,37 +6,65 @@
- #
- # Installs and configures the swift proxy node.
- #
--# [*Parameters*]
--#
--# [*proxy_local_net_ip*] The address that the proxy will bind to.
--#   Required.
--# [*port*] The port to which the proxy server will bind.
--#   Optional. Defaults to 8080.
--# [*pipeline*] The list of elements of the swift proxy pipeline.
--#   Currently supports healthcheck, cache, proxy-server, and
--#   one of the following auth_types: tempauth, swauth, keystone.
--#   Each of the specified elements also need to be declared externally
--#   as a puppet class with the exception of proxy-server.
--#   Optional. Defaults to ['healthcheck', 'cache', 'tempauth', 'proxy-server']
--# [*workers*] Number of threads to process requests.
--#  Optional. Defaults to the number of processors.
--# [*allow_account_management*]
--#   Rather or not requests through this proxy can create and
--#   delete accounts. Optional. Defaults to true.
--# [*account_autocreate*] Rather accounts should automatically be created.
--#  Has to be set to true for tempauth. Optional. Defaults to true.
--# [*read_affinity*]
--#  Configures the read affinity of proxy-server. Optional. Defaults to undef.
--# [*write_affinity*]
--#  Configures the write affinity of proxy-server. Optional. Defaults to undef.
--# [*write_affinity_node_count*]
--#  Configures write_affinity_node_count for proxy-server.
--#  Optional but requires write_affinity to be set. Defaults to undef.
--# [*package_ensure*] Ensure state of the swift proxy package.
--#   Optional. Defaults to present.
--# [*log_name*]
--#  Configures log_name for swift proxy-server.
--#  Optional. Defaults to proxy-server
-+# == Parameters
-+#
-+#  [*proxy_local_net_ip*]
-+#    The address that the proxy will bind to.
-+#
-+#  [*port*]
-+#    (optional) The port to which the proxy server will bind.
-+#    Defaults to 8080.
-+#
-+#  [*pipeline*]
-+#    (optional) The list of elements of the swift proxy pipeline.
-+#    Currently supports healthcheck, cache, proxy-server, and
-+#    one of the following auth_types: tempauth, swauth, keystone.
-+#    Each of the specified elements also need to be declared externally
-+#    as a puppet class with the exception of proxy-server.
-+#    Defaults to ['healthcheck', 'cache', 'tempauth', 'proxy-server']
-+#
-+#  [*workers*]
-+#    (optional) Number of threads to process requests.
-+#    Defaults to the number of processors.
-+#
-+#  [*allow_account_management*]
-+#    (optional) Rather or not requests through this proxy can create and
-+#    delete accounts.
-+#    Defaults to true.
-+#
-+#  [*account_autocreate*]
-+#    (optional) Rather accounts should automatically be created.
-+#    Has to be set to true for tempauth.
-+#    Defaults to true.
-+#
-+#  [*read_affinity*]
-+#    (optional) Configures the read affinity of proxy-server.
-+#    Defaults to undef.
-+#
-+#  [*write_affinity*]
-+#    (optional) Configures the write affinity of proxy-server.
-+#    Defaults to undef.
-+#
-+#  [*write_affinity_node_count*]
-+#    (optional) Configures write_affinity_node_count for proxy-server.
-+#    Optional but requires write_affinity to be set.
-+#    Defaults to undef.
-+#
-+#  [*enabled*]
-+#    (optional) Should the service be enabled.
-+#    Defaults to true
-+#
-+#  [*manage_service*]
-+#    (optional) Whether the service should be managed by Puppet.
-+#    Defaults to true.
-+#
-+#  [*package_ensure*]
-+#    (optional) Ensure state of the swift proxy package.
-+#    Defaults to present.
-+#
-+#  [*log_name*]
-+#    Configures log_name for swift proxy-server.
-+#    Optional. Defaults to proxy-server
- #
- # == Examples
- #
-@@ -50,23 +78,25 @@
- #
- class swift::proxy(
-   $proxy_local_net_ip,
--  $port = '8080',
--  $pipeline = ['healthcheck', 'cache', 'tempauth', 'proxy-server'],
--  $workers = $::processorcount,
--  $allow_account_management = true,
--  $account_autocreate = true,
--  $log_headers = 'False',
--  $log_udp_host = '',
--  $log_udp_port = '',
--  $log_address = '/dev/log',
--  $log_level = 'INFO',
--  $log_facility = 'LOG_LOCAL1',
--  $log_handoffs = true,
--  $log_name = 'proxy-server',
--  $read_affinity = undef,
--  $write_affinity = undef,
-+  $port                      = '8080',
-+  $pipeline                  = ['healthcheck', 'cache', 'tempauth', 'proxy-server'],
-+  $workers                   = $::processorcount,
-+  $allow_account_management  = true,
-+  $account_autocreate        = true,
-+  $log_headers               = 'False',
-+  $log_udp_host              = '',
-+  $log_udp_port              = '',
-+  $log_address               = '/dev/log',
-+  $log_level                 = 'INFO',
-+  $log_facility              = 'LOG_LOCAL1',
-+  $log_handoffs              = true,
-+  $log_name                  = 'proxy-server',
-+  $read_affinity             = undef,
-+  $write_affinity            = undef,
-   $write_affinity_node_count = undef,
--  $package_ensure = 'present'
-+  $manage_service            = true,
-+  $enabled                   = true,
-+  $package_ensure            = 'present'
- ) {
- 
-   include swift::params
-@@ -130,10 +160,18 @@ class swift::proxy(
-     before  => Class[$required_classes],
-   }
- 
-+  if $manage_service {
-+    if $enabled {
-+      $service_ensure = 'running'
-+    } else {
-+      $service_ensure = 'stopped'
-+    }
-+  }
-+
-   service { 'swift-proxy':
--    ensure    => running,
-+    ensure    => $service_ensure,
-     name      => $::swift::params::proxy_service_name,
--    enable    => true,
-+    enable    => $enabled,
-     provider  => $::swift::params::service_provider,
-     hasstatus => true,
-     subscribe => Concat['/etc/swift/proxy-server.conf'],
-diff --git a/swift/manifests/storage/account.pp b/swift/manifests/storage/account.pp
-index 1ce6865..a4398c3 100644
---- a/swift/manifests/storage/account.pp
-+++ b/swift/manifests/storage/account.pp
-@@ -1,24 +1,51 @@
-+# Class swift::storage::account
-+#
-+# == Parameters
-+#  [*enabled*]
-+#    (optional) Should the service be enabled.
-+#    Defaults to true
-+#
-+#  [*manage_service*]
-+#    (optional) Whether the service should be managed by Puppet.
-+#    Defaults to true.
-+#
-+#  [*package_ensure*]
-+#    (optional) Value of package resource parameter 'ensure'.
-+#    Defaults to 'present'.
-+#
- class swift::storage::account(
-+  $manage_service = true,
-+  $enabled        = true,
-   $package_ensure = 'present'
- ) {
-   swift::storage::generic { 'account':
-+    manage_service => $manage_service,
-+    enabled        => $enabled,
-     package_ensure => $package_ensure,
-   }
- 
-   include swift::params
- 
-+  if $manage_service {
-+    if $enabled {
-+      $service_ensure = 'running'
-+    } else {
-+      $service_ensure = 'stopped'
-+    }
-+  }
-+
-   service { 'swift-account-reaper':
--    ensure    => running,
-+    ensure    => $service_ensure,
-     name      => $::swift::params::account_reaper_service_name,
--    enable    => true,
-+    enable    => $enabled,
-     provider  => $::swift::params::service_provider,
-     require   => Package['swift-account'],
-   }
- 
-   service { 'swift-account-auditor':
--    ensure    => running,
-+    ensure    => $service_ensure,
-     name      => $::swift::params::account_auditor_service_name,
--    enable    => true,
-+    enable    => $enabled,
-     provider  => $::swift::params::service_provider,
-     require   => Package['swift-account'],
-   }
-diff --git a/swift/manifests/storage/container.pp b/swift/manifests/storage/container.pp
-index a4002d8..741dcba 100644
---- a/swift/manifests/storage/container.pp
-+++ b/swift/manifests/storage/container.pp
-@@ -1,31 +1,55 @@
- #
- # === Parameters
-+#  [*enabled*]
-+#    (optional) Should the service be enabled.
-+#    Defaults to true
- #
--# [*allowed_sync_hosts*] A list of hosts allowed in the X-Container-Sync-To
--#   field for containers. Defaults to one entry list '127.0.0.1'.
-+#  [*manage_service*]
-+#    (optional) Whether the service should be managed by Puppet.
-+#    Defaults to true.
-+#
-+#  [*package_ensure*]
-+#    (optional) Value of package resource parameter 'ensure'.
-+#    Defaults to 'present'.
-+#
-+#  [*allowed_sync_hosts*]
-+#    (optional) A list of hosts allowed in the X-Container-Sync-To
-+#    field for containers. Defaults to one entry list '127.0.0.1'.
- #
- class swift::storage::container(
--  $package_ensure = 'present',
-+  $manage_service     = true,
-+  $enabled            = true,
-+  $package_ensure     = 'present',
-   $allowed_sync_hosts = ['127.0.0.1'],
- ) {
-   swift::storage::generic { 'container':
-+    manage_service => $manage_service,
-+    enabled        => $enabled,
-     package_ensure => $package_ensure
-   }
- 
-   include swift::params
- 
-+  if $manage_service {
-+    if $enabled {
-+      $service_ensure = 'running'
-+    } else {
-+      $service_ensure = 'stopped'
-+    }
-+  }
-+
-   service { 'swift-container-updater':
--    ensure    => running,
-+    ensure    => $service_ensure,
-     name      => $::swift::params::container_updater_service_name,
--    enable    => true,
-+    enable    => $enabled,
-     provider  => $::swift::params::service_provider,
-     require   => Package['swift-container'],
-   }
- 
-   service { 'swift-container-auditor':
--    ensure    => running,
-+    ensure    => $service_ensure,
-     name      => $::swift::params::container_auditor_service_name,
--    enable    => true,
-+    enable    => $enabled,
-     provider  => $::swift::params::service_provider,
-     require   => Package['swift-container'],
-   }
-@@ -41,8 +65,8 @@ class swift::storage::container(
-       target => '/lib/init/upstart-job',
-     }
-     service { 'swift-container-sync':
--      ensure    => running,
--      enable    => true,
-+      ensure    => $service_ensure,
-+      enable    => $enabled,
-       provider  => $::swift::params::service_provider,
-       require   => File['/etc/init/swift-container-sync.conf', '/etc/init.d/swift-container-sync']
-     }
-diff --git a/swift/manifests/storage/generic.pp b/swift/manifests/storage/generic.pp
-index 2f84f2e..341bc5a 100644
---- a/swift/manifests/storage/generic.pp
-+++ b/swift/manifests/storage/generic.pp
-@@ -2,9 +2,20 @@
- # needed to deploy each type of storage server.
- #
- # == Parameters
--#  [*package_ensure*] The desired ensure state of the swift storage packages.
--#    Optional. Defaults to present.
--#  [*service_provider*] The provider to use for the service
-+#  [*enabled*]
-+#    (optional) Should the service be enabled.
-+#    Defaults to true
-+#
-+#  [*manage_service*]
-+#    (optional) Whether the service should be managed by Puppet.
-+#    Defaults to true.
-+#
-+#  [*package_ensure*]
-+#    (optional) The desired ensure state of the swift storage packages.
-+#    Defaults to present.
-+#
-+#  [*service_provider*]
-+#    (optional) The provider to use for the service
- #
- # == Dependencies
- #  Requires Class[swift::storage]
-@@ -18,6 +29,8 @@
- #
- # Copyright 2011 Puppetlabs Inc, unless otherwise noted.
- define swift::storage::generic(
-+  $manage_service   = true,
-+  $enabled          = true,
-   $package_ensure   = 'present',
-   $service_provider = $::swift::params::service_provider
- ) {
-@@ -42,19 +55,27 @@ define swift::storage::generic(
-     group  => 'swift',
-   }
- 
-+  if $manage_service {
-+    if $enabled {
-+      $service_ensure = 'running'
-+    } else {
-+      $service_ensure = 'stopped'
-+    }
-+  }
-+
-   service { "swift-${name}":
--    ensure    => running,
-+    ensure    => $service_ensure,
-     name      => inline_template("<%= scope.lookupvar('::swift::params::${name}_service_name') %>"),
--    enable    => true,
-+    enable    => $enabled,
-     hasstatus => true,
-     provider  => $service_provider,
-     subscribe => Package["swift-${name}"],
-   }
- 
-   service { "swift-${name}-replicator":
--    ensure    => running,
-+    ensure    => $service_ensure,
-     name      => inline_template("<%= scope.lookupvar('::swift::params::${name}_replicator_service_name') %>"),
--    enable    => true,
-+    enable    => $enabled,
-     hasstatus => true,
-     provider  => $service_provider,
-     subscribe => Package["swift-${name}"],
-diff --git a/swift/manifests/storage/object.pp b/swift/manifests/storage/object.pp
-index 1e49101..587c60a 100644
---- a/swift/manifests/storage/object.pp
-+++ b/swift/manifests/storage/object.pp
-@@ -1,24 +1,51 @@
-+# Class swift::storage::object
-+#
-+# == Parameters
-+#  [*enabled*]
-+#    (optional) Should the service be enabled.
-+#    Defaults to true
-+#
-+#  [*manage_service*]
-+#    (optional) Whether the service should be managed by Puppet.
-+#    Defaults to true.
-+#
-+#  [*package_ensure*]
-+#    (optional) Value of package resource parameter 'ensure'.
-+#    Defaults to 'present'.
-+#
- class swift::storage::object(
-+  $manage_service = true,
-+  $enabled        = true,
-   $package_ensure = 'present'
- ) {
-   swift::storage::generic { 'object':
-+    manage_service => $manage_service,
-+    enabled        => $enabled,
-     package_ensure => $package_ensure
-   }
- 
-   include swift::params
- 
-+  if $manage_service {
-+    if $enabled {
-+      $service_ensure = 'running'
-+    } else {
-+      $service_ensure = 'stopped'
-+    }
-+  }
-+
-   service { 'swift-object-updater':
--    ensure    => running,
-+    ensure    => $service_ensure,
-     name      => $::swift::params::object_updater_service_name,
--    enable    => true,
-+    enable    => $enabled,
-     provider  => $::swift::params::service_provider,
-     require   => Package['swift-object'],
-   }
- 
-   service { 'swift-object-auditor':
--    ensure    => running,
-+    ensure    => $service_ensure,
-     name      => $::swift::params::object_auditor_service_name,
--    enable    => true,
-+    enable    => $enabled,
-     provider  => $::swift::params::service_provider,
-     require   => Package['swift-object'],
-   }
-diff --git a/swift/spec/classes/swift_proxy_spec.rb b/swift/spec/classes/swift_proxy_spec.rb
-index a0b6f64..4dfe8b0 100644
---- a/swift/spec/classes/swift_proxy_spec.rb
-+++ b/swift/spec/classes/swift_proxy_spec.rb
-@@ -151,6 +151,80 @@ describe 'swift::proxy' do
-         end
-       end
-     end
-+  end
-+
-+  shared_examples_for 'swift-proxy' do
-+    let :params do
-+      { :proxy_local_net_ip => '127.0.0.1' }
-+    end
-+
-+    [{ :enabled => true, :manage_service => true },
-+     { :enabled => false, :manage_service => true }].each do |param_hash|
-+      context "when service should be #{param_hash[:enabled] ? 'enabled' : 'disabled'}" do
-+        before do
-+          params.merge!(param_hash)
-+        end
-+
-+        it 'configures swift-proxy service' do
-+          should contain_service('swift-proxy').with(
-+            :ensure    => (param_hash[:manage_service] && param_hash[:enabled]) ? 'running' : 'stopped',
-+            :name      => platform_params[:service_name],
-+            :provider  => platform_params[:service_provider],
-+            :enable    => param_hash[:enabled],
-+            :hasstatus => true,
-+            :subscribe => 'Concat[/etc/swift/proxy-server.conf]'
-+          )
-+        end
-+      end
-+    end
-+
-+    context 'with disabled service managing' do
-+      before do
-+        params.merge!({
-+          :manage_service => false,
-+          :enabled        => false })
-+      end
-+
-+      it 'configures swift-proxy service' do
-+        should contain_service('swift-proxy').with(
-+          :ensure    => nil,
-+          :name      => platform_params[:service_name],
-+          :provider  => platform_params[:service_provider],
-+          :enable    => false,
-+          :hasstatus => true,
-+          :subscribe => 'Concat[/etc/swift/proxy-server.conf]'
-+        )
-+      end
-+    end
-+  end
-+
-+  context 'on Debian platforms' do
-+    let :facts do
-+      { :operatingsystem => 'Ubuntu',
-+        :osfamily        => 'Debian',
-+        :concat_basedir  => '/var/lib/puppet/concat' }
-+    end
-+
-+    let :platform_params do
-+      { :service_name     => 'swift-proxy',
-+        :service_provider => 'upstart' }
-+    end
-+
-+    it_configures 'swift-proxy'
-+  end
-+
-+  context 'on RedHat platforms' do
-+    let :facts do
-+      { :osfamily        => 'RedHat',
-+        :operatingsystem => 'RedHat',
-+        :concat_basedir  => '/var/lib/puppet/concat' }
-+    end
-+
-+    let :platform_params do
-+      { :service_name     => 'openstack-swift-proxy',
-+        :service_provider => nil }
-+    end
- 
-+    it_configures 'swift-proxy'
-   end
- end
-diff --git a/swift/spec/classes/swift_storage_account_spec.rb b/swift/spec/classes/swift_storage_account_spec.rb
-index 0623cc4..115fd6c 100644
---- a/swift/spec/classes/swift_storage_account_spec.rb
-+++ b/swift/spec/classes/swift_storage_account_spec.rb
-@@ -1,52 +1,106 @@
- require 'spec_helper'
--describe 'swift::storage::account' do
--
--  let :facts do
--    {
--      :operatingsystem => 'Ubuntu',
--      :osfamily        => 'Debian'
--    }
--  end
- 
-+describe 'swift::storage::account' do
-   let :pre_condition do
-     "class { 'ssh::server::install': }
-      class { 'swift': swift_hash_suffix => 'foo' }
-      class { 'swift::storage': storage_local_net_ip => '10.0.0.1' }"
-   end
- 
--  let :default_params do
--    {:package_ensure => 'present'}
-+  let :params do
-+    { :package_ensure => 'present',
-+      :enabled        => true,
-+      :manage_service => true }
-   end
- 
--  [{},
--   {:package_ensure => 'latest'}
--  ].each do |param_set|
--    describe "when #{param_set == {} ? "using default" : "specifying"} class parameters" do
--      let :param_hash do
--        default_params.merge(param_set)
-+  shared_examples_for 'swift-storage-account' do
-+
-+    [{},
-+     {:package_ensure => 'latest'}
-+    ].each do |param_set|
-+      describe "when #{param_set == {} ? "using default" : "specifying"} class parameters" do
-+        before do
-+          params.merge!(param_set)
-+        end
-+
-+        it { should contain_swift__storage__generic('account').with_package_ensure(params[:package_ensure]) }
-+      end
-+    end
-+
-+    [{ :enabled => true, :manage_service => true },
-+     { :enabled => false, :manage_service => true }].each do |param_hash|
-+      context "when service should be #{param_hash[:enabled] ? 'enabled' : 'disabled'}" do
-+        before do
-+          params.merge!(param_hash)
-+        end
-+
-+        it 'configures services' do
-+          platform_params[:service_names].each do |service_alias, service_name|
-+            should contain_service(service_alias).with(
-+              :name    => service_name,
-+              :ensure  => (param_hash[:manage_service] && param_hash[:enabled]) ? 'running' : 'stopped',
-+              :enable  => param_hash[:enabled]
-+            )
-+          end
-+        end
-       end
--      let :params do
--        param_set
-+    end
-+
-+    context 'with disabled service managing' do
-+      before do
-+        params.merge!({
-+          :manage_service => false,
-+          :enabled        => false })
-+      end
-+
-+      it 'configures services' do
-+        platform_params[:service_names].each do |service_alias, service_name|
-+          should contain_service(service_alias).with(
-+            :ensure    => nil,
-+            :name      => service_name,
-+            :enable    => false
-+          )
-+        end
-       end
--      it { should contain_swift__storage__generic('account').with_package_ensure(param_hash[:package_ensure]) }
-     end
-   end
--  describe 'on rhel' do
-+
-+  context 'on Debian platforms' do
-     let :facts do
--      {
--        :operatingsystem => 'RedHat',
--        :osfamily        => 'RedHat'
-+      {:operatingsystem => 'Ubuntu',
-+       :osfamily        => 'Debian' }
-+
-+    end
-+
-+    let :platform_params do
-+      { :service_names => {
-+          'swift-account'            => 'swift-account',
-+          'swift-account-replicator' => 'swift-account-replicator',
-+          'swift-account-reaper'     => 'swift-account-reaper',
-+          'swift-account-auditor'    => 'swift-account-auditor'
-+        }
-       }
-     end
--    it 'should have some support services' do
--      ['swift-account-reaper', 'swift-account-auditor'].each do |service|
--        should contain_service(service).with(
--          :name     => "openstack-#{service}",
--          :ensure   => 'running',
--          :enable   => true,
--          :require  => 'Package[swift-account]'
--        )
--      end
-+
-+    it_configures 'swift-storage-account'
-+  end
-+
-+  context 'on RedHat platforms' do
-+    let :facts do
-+      { :osfamily        => 'RedHat',
-+        :operatingsystem => 'RedHat' }
-+    end
-+
-+    let :platform_params do
-+      { :service_names => {
-+          'swift-account'            => 'openstack-swift-account',
-+          'swift-account-replicator' => 'openstack-swift-account-replicator',
-+          'swift-account-reaper'     => 'openstack-swift-account-reaper',
-+          'swift-account-auditor'    => 'openstack-swift-account-auditor'
-+        }
-+      }
-     end
-+
-+    it_configures 'swift-storage-account'
-   end
- end
-diff --git a/swift/spec/classes/swift_storage_container_spec.rb b/swift/spec/classes/swift_storage_container_spec.rb
-index 38c80b9..8551b97 100644
---- a/swift/spec/classes/swift_storage_container_spec.rb
-+++ b/swift/spec/classes/swift_storage_container_spec.rb
-@@ -1,43 +1,91 @@
- require 'spec_helper'
--describe 'swift::storage::container' do
--
--  let :facts do
--    {
--      :operatingsystem => 'Ubuntu',
--      :osfamily        => 'Debian'
--    }
--  end
- 
-+describe 'swift::storage::container' do
-   let :pre_condition do
-     "class { 'ssh::server::install': }
-      class { 'swift': swift_hash_suffix => 'foo' }
-      class { 'swift::storage': storage_local_net_ip => '10.0.0.1' }"
-   end
- 
--  let :default_params do
--    {:package_ensure => 'present'}
-+  let :params do
-+    { :package_ensure => 'present',
-+      :enabled        => true,
-+      :manage_service => true }
-   end
- 
--  [{},
--   {:package_ensure => 'latest'}
--  ].each do |param_set|
--    describe "when #{param_set == {} ? "using default" : "specifying"} class parameters" do
--      let :param_hash do
--        default_params.merge(param_set)
-+  shared_examples_for 'swift-storage-container' do
-+    [{},
-+     {:package_ensure => 'latest'}
-+    ].each do |param_set|
-+      describe "when #{param_set == {} ? "using default" : "specifying"} class parameters" do
-+        before do
-+          params.merge!(param_set)
-+        end
-+
-+        it { should contain_swift__storage__generic('container').with_package_ensure(params[:package_ensure]) }
-       end
--      let :params do
--        param_set
-+    end
-+
-+
-+    [{ :enabled => true, :manage_service => true },
-+     { :enabled => false, :manage_service => true }].each do |param_hash|
-+      context "when service should be #{param_hash[:enabled] ? 'enabled' : 'disabled'}" do
-+        before do
-+          params.merge!(param_hash)
-+        end
-+
-+        it 'configures services' do
-+          platform_params[:service_names].each do |service_alias, service_name|
-+            should contain_service(service_alias).with(
-+              :name    => service_name,
-+              :ensure  => (param_hash[:manage_service] && param_hash[:enabled]) ? 'running' : 'stopped',
-+              :enable  => param_hash[:enabled]
-+            )
-+          end
-+        end
-       end
--      it { should contain_swift__storage__generic('container').with_package_ensure(param_hash[:package_ensure]) }
--      it 'should have some other services' do
--        ['swift-container-updater', 'swift-container-auditor'].each do |service|
--          should contain_service(service).with(
--            :ensure   => 'running',
--            :enable   => true,
--            :provider => 'upstart',
--            :require  => 'Package[swift-container]'
-+    end
-+
-+    context 'with disabled service managing' do
-+      before do
-+        params.merge!({
-+          :manage_service => false,
-+          :enabled        => false })
-+      end
-+
-+      it 'configures services' do
-+        platform_params[:service_names].each do |service_alias, service_name|
-+          should contain_service(service_alias).with(
-+            :ensure    => nil,
-+            :name      => service_name,
-+            :enable    => false
-           )
-         end
-+      end
-+    end
-+  end
-+
-+  context 'on Debian platforms' do
-+    let :facts do
-+      {:operatingsystem => 'Ubuntu',
-+       :osfamily        => 'Debian' }
-+
-+    end
-+
-+    let :platform_params do
-+      { :service_names => {
-+          'swift-container'            => 'swift-container',
-+          'swift-container-replicator' => 'swift-container-replicator',
-+          'swift-container-updater'    => 'swift-container-updater',
-+          'swift-container-auditor'    => 'swift-container-auditor'
-+        }
-+      }
-+    end
-+
-+    it_configures 'swift-storage-container'
-+
-+    context 'Ubuntu specific resources' do
-+      it 'configures sync' do
-         should contain_service('swift-container-sync').with(
-           :ensure   => 'running',
-           :enable   => true,
-@@ -56,26 +104,30 @@ describe 'swift::storage::container' do
-     end
-   end
- 
--  describe 'on rhel' do
-+  context 'on RedHat platforms' do
-     let :facts do
--      {
-+      { :osfamily        => 'RedHat',
-         :operatingsystem => 'RedHat',
--        :osfamily        => 'RedHat',
--        :concat_basedir => '/var/lib/puppet/concat'
-+        :concat_basedir => '/var/lib/puppet/concat' }
-+    end
-+
-+    let :platform_params do
-+      { :service_names => {
-+          'swift-container'            => 'openstack-swift-container',
-+          'swift-container-replicator' => 'openstack-swift-container-replicator',
-+          'swift-container-updater'    => 'openstack-swift-container-updater',
-+          'swift-container-auditor'    => 'openstack-swift-container-auditor'
-+        }
-       }
-     end
--    it 'should have some support services' do
--      ['swift-container-updater', 'swift-container-auditor'].each do |service|
--        should contain_service(service).with(
--          :name     => "openstack-#{service}",
--          :ensure   => 'running',
--          :enable   => true,
--          :require  => 'Package[swift-container]'
--        )
-+
-+    it_configures 'swift-storage-container'
-+
-+    context 'RedHat specific resources' do
-+      before do
-+        params.merge!({ :allowed_sync_hosts => ['127.0.0.1', '10.1.0.1', '10.1.0.2'] })
-       end
--    end
- 
--    describe 'configuration file' do
-       let :pre_condition do
-         "class { 'ssh::server::install': }
-          class { 'swift': swift_hash_suffix => 'foo' }
-@@ -86,18 +138,9 @@ describe 'swift::storage::container' do
-         "/var/lib/puppet/concat/_etc_swift_container-server.conf/fragments/00_swift-container-6001"
-       end
- 
--      it { should contain_file(fragment_file).with_content(/^allowed_sync_hosts = 127.0.0.1$/) }
--
--      describe 'with allowed_sync_hosts' do
--
--        let :params do
--          { :allowed_sync_hosts => ['127.0.0.1', '10.1.0.1', '10.1.0.2'], }
--        end
--
--        it {
--          should contain_file(fragment_file).with_content(/^allowed_sync_hosts = 127.0.0.1,10.1.0.1,10.1.0.2$/)
--        }
--      end
-+      it {
-+        should contain_file(fragment_file).with_content(/^allowed_sync_hosts = 127.0.0.1,10.1.0.1,10.1.0.2$/)
-+      }
-     end
-   end
- end
-diff --git a/swift/spec/classes/swift_storage_object_spec.rb b/swift/spec/classes/swift_storage_object_spec.rb
-index 3309ea3..d98f948 100644
---- a/swift/spec/classes/swift_storage_object_spec.rb
-+++ b/swift/spec/classes/swift_storage_object_spec.rb
-@@ -1,12 +1,6 @@
- require 'spec_helper'
--describe 'swift::storage::object' do
- 
--  let :facts do
--    {
--      :operatingsystem => 'Ubuntu',
--      :osfamily        => 'Debian'
--    }
--  end
-+describe 'swift::storage::object' do
- 
-   let :pre_condition do
-     "class { 'ssh::server::install': }
-@@ -14,39 +8,100 @@ describe 'swift::storage::object' do
-      class { 'swift::storage': storage_local_net_ip => '10.0.0.1' }"
-   end
- 
--  let :default_params do
--    {:package_ensure => 'present'}
-+  let :params do
-+    { :package_ensure => 'present',
-+      :enabled        => true,
-+      :manage_service => true }
-   end
- 
--  [{},
--   {:package_ensure => 'latest'}
--  ].each do |param_set|
--    describe "when #{param_set == {} ? "using default" : "specifying"} class parameters" do
--      let :param_hash do
--        default_params.merge(param_set)
-+  shared_examples_for 'swift-storage-object' do
-+
-+    [{},
-+     { :package_ensure => 'latest' }
-+    ].each do |param_set|
-+      describe "when #{param_set == {} ? "using default" : "specifying"} class parameters" do
-+        before do
-+          params.merge!(param_set)
-+        end
-+
-+        it { should contain_swift__storage__generic('object').with_package_ensure(params[:package_ensure]) }
-       end
--      let :params do
--        param_set
-+    end
-+
-+    [{ :enabled => true, :manage_service => true },
-+     { :enabled => false, :manage_service => true }].each do |param_hash|
-+      context "when service should be #{param_hash[:enabled] ? 'enabled' : 'disabled'}" do
-+        before do
-+          params.merge!(param_hash)
-+        end
-+
-+        it 'configures services' do
-+          platform_params[:service_names].each do |service_alias, service_name|
-+            should contain_service(service_alias).with(
-+              :name    => service_name,
-+              :ensure  => (param_hash[:manage_service] && param_hash[:enabled]) ? 'running' : 'stopped',
-+              :enable  => param_hash[:enabled]
-+            )
-+          end
-+        end
-+      end
-+    end
-+
-+    context 'with disabled service managing' do
-+      before do
-+        params.merge!({
-+          :manage_service => false,
-+          :enabled        => false })
-+      end
-+
-+      it 'configures services' do
-+        platform_params[:service_names].each do |service_alias, service_name|
-+          should contain_service(service_alias).with(
-+            :ensure    => nil,
-+            :name      => service_name,
-+            :enable    => false
-+          )
-+        end
-       end
--      it { should contain_swift__storage__generic('object').with_package_ensure(param_hash[:package_ensure]) }
-     end
-   end
--  describe 'on rhel' do
-+
-+  context 'on Debian platforms' do
-     let :facts do
--      {
--        :operatingsystem => 'RedHat',
--        :osfamily        => 'RedHat'
-+      {:operatingsystem => 'Ubuntu',
-+       :osfamily        => 'Debian' }
-+
-+    end
-+
-+    let :platform_params do
-+      { :service_names => {
-+          'swift-object'            => 'swift-object',
-+          'swift-object-replicator' => 'swift-object-replicator',
-+          'swift-object-updater'    => 'swift-object-updater',
-+          'swift-object-auditor'    => 'swift-object-auditor'
-+        }
-       }
-     end
--    it 'should have some support services' do
--      ['swift-object-updater', 'swift-object-auditor'].each do |service|
--        should contain_service(service).with(
--          :name     => "openstack-#{service}",
--          :ensure   => 'running',
--          :enable   => true,
--          :require  => 'Package[swift-object]'
--        )
--      end
-+
-+    it_configures 'swift-storage-object'
-+  end
-+
-+  context 'on RedHat platforms' do
-+    let :facts do
-+      { :osfamily        => 'RedHat',
-+        :operatingsystem => 'RedHat' }
-+    end
-+
-+    let :platform_params do
-+      { :service_names => {
-+          'swift-object'            => 'openstack-swift-object',
-+          'swift-object-replicator' => 'openstack-swift-object-replicator',
-+          'swift-object-updater'    => 'openstack-swift-object-updater',
-+          'swift-object-auditor'    => 'openstack-swift-object-auditor'
-+        }
-+      }
-     end
-+
-+    it_configures 'swift-storage-object'
-   end
- end
diff --git a/0005-Fix-against-mongodb-2.6.5-from-epel.patch b/0005-Fix-against-mongodb-2.6.5-from-epel.patch
new file mode 100644
index 0000000..969996c
--- /dev/null
+++ b/0005-Fix-against-mongodb-2.6.5-from-epel.patch
@@ -0,0 +1,32 @@
+From 59e9caeafb32bf957571ee69036216edc741a8a3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ivan=20Ne=C4=8Das?= <inecas at redhat.com>
+Date: Tue, 25 Nov 2014 18:14:37 +0100
+Subject: [PATCH] Fix against mongodb 2.6.5 from epel
+
+The updated version of mongodb-server in epel7 2.6.5 (resp. it's
+systemd script) expects the pid file to be at
+/var/run/mongodb/mongod.pid.
+
+We expect the same to happen in fedora 22
+---
+ mongodb/manifests/params.pp | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/mongodb/manifests/params.pp b/mongodb/manifests/params.pp
+index 7789e27..7c273b2 100644
+--- a/mongodb/manifests/params.pp
++++ b/mongodb/manifests/params.pp
+@@ -57,7 +57,12 @@ class mongodb::params inherits mongodb::globals {
+         $dbpath              = '/var/lib/mongodb'
+         $logpath             = '/var/log/mongodb/mongodb.log'
+         $bind_ip             = pick($::mongodb::globals::bind_ip, ['127.0.0.1'])
+-        $pidfilepath         = '/var/run/mongodb/mongodb.pid'
++        if ($::operatingsystem == 'fedora' and versioncmp($::operatingsystemrelease, '22') >= 0 or
++            $::operatingsystem != 'fedora' and versioncmp($::operatingsystemrelease, '7.0') >= 0) {
++          $pidfilepath         = '/var/run/mongodb/mongod.pid'
++        } else {
++          $pidfilepath         = '/var/run/mongodb/mongodb.pid'
++        }
+         $fork                = true
+         $journal             = true
+       }
diff --git a/0006-Fix-against-mongodb-2.6.5-from-epel.patch b/0006-Fix-against-mongodb-2.6.5-from-epel.patch
deleted file mode 100644
index 8365f8e..0000000
--- a/0006-Fix-against-mongodb-2.6.5-from-epel.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From b0dde7c040da36b67c2f3254a6391f97e200e14e Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ivan=20Ne=C4=8Das?= <inecas at redhat.com>
-Date: Tue, 25 Nov 2014 18:14:37 +0100
-Subject: [PATCH] Fix against mongodb 2.6.5 from epel
-
-The updated version of mongodb-server in epel7 2.6.5 (resp. it's
-systemd script) expects the pid file to be at
-/var/run/mongodb/mongod.pid.
-
-We expect the same to happen in fedora 22
----
- mongodb/manifests/params.pp | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/mongodb/manifests/params.pp b/mongodb/manifests/params.pp
-index 7789e27..7c273b2 100644
---- a/mongodb/manifests/params.pp
-+++ b/mongodb/manifests/params.pp
-@@ -57,7 +57,12 @@ class mongodb::params inherits mongodb::globals {
-         $dbpath              = '/var/lib/mongodb'
-         $logpath             = '/var/log/mongodb/mongodb.log'
-         $bind_ip             = pick($::mongodb::globals::bind_ip, ['127.0.0.1'])
--        $pidfilepath         = '/var/run/mongodb/mongodb.pid'
-+        if ($::operatingsystem == 'fedora' and versioncmp($::operatingsystemrelease, '22') >= 0 or
-+            $::operatingsystem != 'fedora' and versioncmp($::operatingsystemrelease, '7.0') >= 0) {
-+          $pidfilepath         = '/var/run/mongodb/mongod.pid'
-+        } else {
-+          $pidfilepath         = '/var/run/mongodb/mongodb.pid'
-+        }
-         $fork                = true
-         $journal             = true
-       }
diff --git a/0006-Fix-support-for-Fedora-Rawhide.patch b/0006-Fix-support-for-Fedora-Rawhide.patch
new file mode 100644
index 0000000..31216e5
--- /dev/null
+++ b/0006-Fix-support-for-Fedora-Rawhide.patch
@@ -0,0 +1,70 @@
+From 4296203840e4d0faca7b7b26b2bb1b51ff4dad6f Mon Sep 17 00:00:00 2001
+From: Lukas Bezdicka <lbezdick at redhat.com>
+Date: Mon, 8 Dec 2014 13:02:02 -0500
+Subject: [PATCH] Fix support for Fedora Rawhide
+
+---
+ apache/manifests/version.pp        |  2 +-
+ apache/spec/classes/apache_spec.rb | 36 ++++++++++++++++++++++++++++++++++++
+ 2 files changed, 37 insertions(+), 1 deletion(-)
+
+diff --git a/apache/manifests/version.pp b/apache/manifests/version.pp
+index dc5288d..fae008a 100644
+--- a/apache/manifests/version.pp
++++ b/apache/manifests/version.pp
+@@ -12,7 +12,7 @@ class apache::version {
+ 
+   case $::osfamily {
+     'RedHat': {
+-      if ($::operatingsystem == 'Fedora' and $distrelease >= 18) or ($::operatingsystem != 'Fedora' and $distrelease >= 7) {
++      if ($::operatingsystem == 'Fedora' and versioncmp($distrelease, '18') >= 0) or ($::operatingsystem != 'Fedora' and $distrelease >= 7) {
+         $default = '2.4'
+       } else {
+         $default = '2.2'
+diff --git a/apache/spec/classes/apache_spec.rb b/apache/spec/classes/apache_spec.rb
+index fe61a97..a9d9438 100644
+--- a/apache/spec/classes/apache_spec.rb
++++ b/apache/spec/classes/apache_spec.rb
+@@ -488,6 +488,42 @@ describe 'apache', :type => :class do
+         it { is_expected.to contain_file("/etc/httpd/conf/httpd.conf").with_content %r{^EnableSendfile Off\n} }
+       end
+     end
++    context "on Fedora" do
++      let :facts do
++        super().merge({
++          :operatingsystem => 'Fedora'
++        })
++      end
++
++      context "21" do
++        let :facts do
++          super().merge({
++            :lsbdistrelease         => '21',
++            :operatingsystemrelease => '21'
++          })
++        end
++        it { is_expected.to contain_class('apache').with_apache_version('2.4') }
++      end
++      context "Rawhide" do
++        let :facts do
++          super().merge({
++            :lsbdistrelease         => 'Rawhide',
++            :operatingsystemrelease => 'Rawhide'
++          })
++        end
++        it { is_expected.to contain_class('apache').with_apache_version('2.4') }
++      end
++      # kinda obsolete
++      context "17" do
++        let :facts do
++          super().merge({
++            :lsbdistrelease         => '17',
++            :operatingsystemrelease => '17'
++          })
++        end
++        it { is_expected.to contain_class('apache').with_apache_version('2.2') }
++      end
++    end
+   end
+   context "on a FreeBSD OS" do
+     let :facts do
diff --git a/0007-Adds-filtering-for-BONDING-LACP.patch b/0007-Adds-filtering-for-BONDING-LACP.patch
new file mode 100644
index 0000000..7b3dc32
--- /dev/null
+++ b/0007-Adds-filtering-for-BONDING-LACP.patch
@@ -0,0 +1,87 @@
+From be6554d15eecd35ed79b3e1d6616582440798f10 Mon Sep 17 00:00:00 2001
+From: Gilles Dubreuil <gilles at redhat.com>
+Date: Mon, 8 Dec 2014 15:39:04 +1100
+Subject: [PATCH] Adds filtering for BONDING (LACP)
+
+- Separated ifcfg file capture from cleaning filter
+- Fixed REGEX when ifcfg file used as template
+
+RHBZ#1165185
+
+Change-Id: I26d53c832e651668b40a70010bb994e5d2ec10da
+---
+ vswitch/lib/puppet/provider/vs_port/ovs_redhat.rb | 34 +++++++++++++++++++++--
+ 1 file changed, 31 insertions(+), 3 deletions(-)
+
+diff --git a/vswitch/lib/puppet/provider/vs_port/ovs_redhat.rb b/vswitch/lib/puppet/provider/vs_port/ovs_redhat.rb
+index 2bc4374..41f6445 100644
+--- a/vswitch/lib/puppet/provider/vs_port/ovs_redhat.rb
++++ b/vswitch/lib/puppet/provider/vs_port/ovs_redhat.rb
+@@ -34,7 +34,7 @@ Puppet::Type.type(:vs_port).provide(:ovs_redhat, :parent => :ovs) do
+       if link?
+         extras = dynamic_default if dynamic?
+         if File.exist?(BASE + @resource[:interface])
+-          template = from_str(File.read(BASE + @resource[:interface]))
++          template = cleared(from_str(File.read(BASE + @resource[:interface])))
+         end
+       end
+ 
+@@ -42,6 +42,13 @@ Puppet::Type.type(:vs_port).provide(:ovs_redhat, :parent => :ovs) do
+       if vlan?
+         port.set('VLAN' => 'yes')
+       end
++
++      if bonding?
++        port.set('BONDING_MASTER' => 'yes')
++        config = from_str(File.read(BASE + @resource[:interface]))
++        port.set('BONDING_OPTS' => config['BONDING_OPTS']) if config.has_key?('BONDING_OPTS')
++      end
++
+       port.save(BASE + @resource[:interface])
+ 
+       bridge = IFCFG::Bridge.new(@resource[:bridge], template)
+@@ -77,6 +84,17 @@ Puppet::Type.type(:vs_port).provide(:ovs_redhat, :parent => :ovs) do
+ 
+   private
+ 
++  def bonding?
++    # To do: replace with iproute2 commands
++    if File.exists?("/proc/net/bonding/#{@resource[:interface]}")
++      return true
++    else
++      return false
++    end
++  rescue Errno::ENOENT
++    return false
++  end
++
+   def dynamic?
+     device = ''
+     device = ip('addr', 'show', @resource[:interface])
+@@ -114,14 +132,24 @@ Puppet::Type.type(:vs_port).provide(:ovs_redhat, :parent => :ovs) do
+   def from_str(data)
+     items = {}
+     data.each_line do |line|
+-      if m = line.match(/^(.*)=(.*)$/)
++      if m = line.match(/^([A-Za-z_]*)=(.*)$/)
+         items.merge!(m[1] => m[2])
+       end
+     end
+-    items.delete('VLAN') if items.has_key?('VLAN')
+     items
+   end
+ 
++  def cleared(data)
++    data.each do |key, value|
++      case key
++      when /vlan/i
++        data.delete(key)
++      when /bonding/i
++        data.delete(key)
++      end
++    end
++  end
++
+   def vlan?
+     if File.read('/proc/net/vlan/config') =~ /#{@resource[:interface]}/
+       return true
diff --git a/0007-Fix-support-for-Fedora-Rawhide.patch b/0007-Fix-support-for-Fedora-Rawhide.patch
deleted file mode 100644
index b0e06bc..0000000
--- a/0007-Fix-support-for-Fedora-Rawhide.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From d848ab8b0f816ccd5c3adfbd687675f7f9d953bc Mon Sep 17 00:00:00 2001
-From: Lukas Bezdicka <lbezdick at redhat.com>
-Date: Mon, 8 Dec 2014 13:02:02 -0500
-Subject: [PATCH] Fix support for Fedora Rawhide
-
----
- apache/manifests/version.pp        |  2 +-
- apache/spec/classes/apache_spec.rb | 36 ++++++++++++++++++++++++++++++++++++
- 2 files changed, 37 insertions(+), 1 deletion(-)
-
-diff --git a/apache/manifests/version.pp b/apache/manifests/version.pp
-index dc5288d..fae008a 100644
---- a/apache/manifests/version.pp
-+++ b/apache/manifests/version.pp
-@@ -12,7 +12,7 @@ class apache::version {
- 
-   case $::osfamily {
-     'RedHat': {
--      if ($::operatingsystem == 'Fedora' and $distrelease >= 18) or ($::operatingsystem != 'Fedora' and $distrelease >= 7) {
-+      if ($::operatingsystem == 'Fedora' and versioncmp($distrelease, '18') >= 0) or ($::operatingsystem != 'Fedora' and $distrelease >= 7) {
-         $default = '2.4'
-       } else {
-         $default = '2.2'
-diff --git a/apache/spec/classes/apache_spec.rb b/apache/spec/classes/apache_spec.rb
-index fe61a97..a9d9438 100644
---- a/apache/spec/classes/apache_spec.rb
-+++ b/apache/spec/classes/apache_spec.rb
-@@ -488,6 +488,42 @@ describe 'apache', :type => :class do
-         it { is_expected.to contain_file("/etc/httpd/conf/httpd.conf").with_content %r{^EnableSendfile Off\n} }
-       end
-     end
-+    context "on Fedora" do
-+      let :facts do
-+        super().merge({
-+          :operatingsystem => 'Fedora'
-+        })
-+      end
-+
-+      context "21" do
-+        let :facts do
-+          super().merge({
-+            :lsbdistrelease         => '21',
-+            :operatingsystemrelease => '21'
-+          })
-+        end
-+        it { is_expected.to contain_class('apache').with_apache_version('2.4') }
-+      end
-+      context "Rawhide" do
-+        let :facts do
-+          super().merge({
-+            :lsbdistrelease         => 'Rawhide',
-+            :operatingsystemrelease => 'Rawhide'
-+          })
-+        end
-+        it { is_expected.to contain_class('apache').with_apache_version('2.4') }
-+      end
-+      # kinda obsolete
-+      context "17" do
-+        let :facts do
-+          super().merge({
-+            :lsbdistrelease         => '17',
-+            :operatingsystemrelease => '17'
-+          })
-+        end
-+        it { is_expected.to contain_class('apache').with_apache_version('2.2') }
-+      end
-+    end
-   end
-   context "on a FreeBSD OS" do
-     let :facts do
diff --git a/0008-Adds-filtering-for-BONDING-LACP.patch b/0008-Adds-filtering-for-BONDING-LACP.patch
deleted file mode 100644
index 9844ec0..0000000
--- a/0008-Adds-filtering-for-BONDING-LACP.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From 963a88564ba004dd3649a4032dff53dbdeb2af91 Mon Sep 17 00:00:00 2001
-From: Gilles Dubreuil <gilles at redhat.com>
-Date: Mon, 8 Dec 2014 15:39:04 +1100
-Subject: [PATCH] Adds filtering for BONDING (LACP)
-
-- Separated ifcfg file capture from cleaning filter
-- Fixed REGEX when ifcfg file used as template
-
-RHBZ#1165185
-
-Change-Id: I26d53c832e651668b40a70010bb994e5d2ec10da
----
- vswitch/lib/puppet/provider/vs_port/ovs_redhat.rb | 34 +++++++++++++++++++++--
- 1 file changed, 31 insertions(+), 3 deletions(-)
-
-diff --git a/vswitch/lib/puppet/provider/vs_port/ovs_redhat.rb b/vswitch/lib/puppet/provider/vs_port/ovs_redhat.rb
-index 2bc4374..41f6445 100644
---- a/vswitch/lib/puppet/provider/vs_port/ovs_redhat.rb
-+++ b/vswitch/lib/puppet/provider/vs_port/ovs_redhat.rb
-@@ -34,7 +34,7 @@ Puppet::Type.type(:vs_port).provide(:ovs_redhat, :parent => :ovs) do
-       if link?
-         extras = dynamic_default if dynamic?
-         if File.exist?(BASE + @resource[:interface])
--          template = from_str(File.read(BASE + @resource[:interface]))
-+          template = cleared(from_str(File.read(BASE + @resource[:interface])))
-         end
-       end
- 
-@@ -42,6 +42,13 @@ Puppet::Type.type(:vs_port).provide(:ovs_redhat, :parent => :ovs) do
-       if vlan?
-         port.set('VLAN' => 'yes')
-       end
-+
-+      if bonding?
-+        port.set('BONDING_MASTER' => 'yes')
-+        config = from_str(File.read(BASE + @resource[:interface]))
-+        port.set('BONDING_OPTS' => config['BONDING_OPTS']) if config.has_key?('BONDING_OPTS')
-+      end
-+
-       port.save(BASE + @resource[:interface])
- 
-       bridge = IFCFG::Bridge.new(@resource[:bridge], template)
-@@ -77,6 +84,17 @@ Puppet::Type.type(:vs_port).provide(:ovs_redhat, :parent => :ovs) do
- 
-   private
- 
-+  def bonding?
-+    # To do: replace with iproute2 commands
-+    if File.exists?("/proc/net/bonding/#{@resource[:interface]}")
-+      return true
-+    else
-+      return false
-+    end
-+  rescue Errno::ENOENT
-+    return false
-+  end
-+
-   def dynamic?
-     device = ''
-     device = ip('addr', 'show', @resource[:interface])
-@@ -114,14 +132,24 @@ Puppet::Type.type(:vs_port).provide(:ovs_redhat, :parent => :ovs) do
-   def from_str(data)
-     items = {}
-     data.each_line do |line|
--      if m = line.match(/^(.*)=(.*)$/)
-+      if m = line.match(/^([A-Za-z_]*)=(.*)$/)
-         items.merge!(m[1] => m[2])
-       end
-     end
--    items.delete('VLAN') if items.has_key?('VLAN')
-     items
-   end
- 
-+  def cleared(data)
-+    data.each do |key, value|
-+      case key
-+      when /vlan/i
-+        data.delete(key)
-+      when /bonding/i
-+        data.delete(key)
-+      end
-+    end
-+  end
-+
-   def vlan?
-     if File.read('/proc/net/vlan/config') =~ /#{@resource[:interface]}/
-       return true
diff --git a/0008-JSON-was-invalid.patch b/0008-JSON-was-invalid.patch
new file mode 100644
index 0000000..6a8ddc9
--- /dev/null
+++ b/0008-JSON-was-invalid.patch
@@ -0,0 +1,38 @@
+From 204cf9559fb92ec84389c28122e592d173294d2e Mon Sep 17 00:00:00 2001
+From: Gilles Dubreuil <gilles at redhat.com>
+Date: Fri, 12 Dec 2014 15:40:58 +1100
+Subject: [PATCH] JSON was invalid
+
+Created an warning/error message when applying Puppet
+
+$ cat metadata.json | json_verify
+lexical error: inside a string, '\' occurs before a character which it
+may not.
+                                        {   "name": "puppet-galera",
+                     (right here) ------^
+---
+ galera/metadata.json | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/galera/metadata.json b/galera/metadata.json
+index 636b8a4..26a8cb5 100644
+--- a/galera/metadata.json
++++ b/galera/metadata.json
+@@ -1,7 +1,7 @@
+ {
+   "name": "puppet-galera",
+   "version": "0.0.2",
+-  "author": "Ryan O\'Hara",
++  "author": "Ryan O'Hara",
+   "summary": "Install/Configure MariaDB with galera",
+   "license": "Apache 2.0",
+   "source": "git://github.com/redhat-openstack/puppet-galera.git",
+@@ -30,7 +30,7 @@
+         "6",
+         "7"
+       ]
+-    },
++    }
+   ],
+   "requirements": [
+     {
diff --git a/0009-JSON-was-invalid.patch b/0009-JSON-was-invalid.patch
deleted file mode 100644
index 724ee6a..0000000
--- a/0009-JSON-was-invalid.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From cec512442b9ee66b625ee91d7bd30b7d7f22c19e Mon Sep 17 00:00:00 2001
-From: Gilles Dubreuil <gilles at redhat.com>
-Date: Fri, 12 Dec 2014 15:40:58 +1100
-Subject: [PATCH] JSON was invalid
-
-Created an warning/error message when applying Puppet
-
-$ cat metadata.json | json_verify
-lexical error: inside a string, '\' occurs before a character which it
-may not.
-                                        {   "name": "puppet-galera",
-                     (right here) ------^
----
- galera/metadata.json | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/galera/metadata.json b/galera/metadata.json
-index 636b8a4..26a8cb5 100644
---- a/galera/metadata.json
-+++ b/galera/metadata.json
-@@ -1,7 +1,7 @@
- {
-   "name": "puppet-galera",
-   "version": "0.0.2",
--  "author": "Ryan O\'Hara",
-+  "author": "Ryan O'Hara",
-   "summary": "Install/Configure MariaDB with galera",
-   "license": "Apache 2.0",
-   "source": "git://github.com/redhat-openstack/puppet-galera.git",
-@@ -30,7 +30,7 @@
-         "6",
-         "7"
-       ]
--    },
-+    }
-   ],
-   "requirements": [
-     {
diff --git a/0009-Set-control_exchange-in-the-main-config-file.patch b/0009-Set-control_exchange-in-the-main-config-file.patch
new file mode 100644
index 0000000..cb34061
--- /dev/null
+++ b/0009-Set-control_exchange-in-the-main-config-file.patch
@@ -0,0 +1,34 @@
+From 2bbaa949d61ccbd4344aaaaa471ef254a5c8425b Mon Sep 17 00:00:00 2001
+From: Solly Ross <sross at redhat.com>
+Date: Tue, 16 Dec 2014 15:40:19 -0500
+Subject: [PATCH] Set control_exchange in the main config file
+
+`control_exchange = trove` should be set in the main config file.
+
+Change-Id: I559f440a2aed76968bcdce18384f8707febb1f21
+---
+ trove/manifests/init.pp | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/trove/manifests/init.pp b/trove/manifests/init.pp
+index 816be7b..8cfd011 100644
+--- a/trove/manifests/init.pp
++++ b/trove/manifests/init.pp
+@@ -139,6 +139,9 @@
+ # [*control_exchange*]
+ #   (optional) Control exchange.
+ #   Defaults to 'trove'.
++# [*use_neutron*]
++#   (optional) Use Neutron
++#   Defaults to true
+ #
+ # [*use_neutron*]
+ #   (optional) Use Neutron
+@@ -171,6 +174,7 @@ class trove(
+   $use_neutron                  = true,
+   # DEPRECATED PARAMETERS
+   $mysql_module                 = undef,
++  $use_neutron                  = true,
+ ) {
+   include trove::params
+ 
diff --git a/0010-Configure-OVS-mechanism-agent-configs-in-its-config-.patch b/0010-Configure-OVS-mechanism-agent-configs-in-its-config-.patch
new file mode 100644
index 0000000..6f8a498
--- /dev/null
+++ b/0010-Configure-OVS-mechanism-agent-configs-in-its-config-.patch
@@ -0,0 +1,341 @@
+From 171e18ef3225e8af5781ff455fd0e5d622d05e40 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Mathieu=20Gagne=CC=81?= <mgagne at iweb.com>
+Date: Wed, 9 Jul 2014 20:44:07 -0400
+Subject: [PATCH] Configure OVS mechanism agent configs in its config file
+
+Configurations for the OVS agent should go in its config file:
+/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini
+but as packaging is broken and different in Ubuntu and Redhat
+we have to use new neutron_agent_ovs provider to configure
+ovs agent correctly.
+
+Therefore, we should not remove the agent config file and
+replace it with a symlink to plugin.ini or ml2_conf.ini.
+
+Those config files are meant to be used by the core plugin itself
+in neutron-server, not the agents themselves.
+
+- Remove symlink creation from ovs_neutron_plugin.ini to plugin.ini
+- Use neutron_agent_ovs to configure OVS mechanism agent configs
+
+Change-Id: I53d9b923784587e8a2a934f004a3b054c716daaa
+Signed-off-by: Gael Chamoulaud <gchamoul at redhat.com>
+
+Conflicts:
+	neutron/manifests/agents/ml2/ovs.pp
+---
+ .../provider/neutron_agent_ovs/ini_setting.rb      | 26 ++++++++++
+ neutron/lib/puppet/type/neutron_agent_ovs.rb       | 18 +++++++
+ neutron/manifests/agents/ml2/ovs.pp                | 43 ++++++----------
+ .../spec/classes/neutron_agents_ml2_ovs_spec.rb    | 59 ++++++++++------------
+ 4 files changed, 87 insertions(+), 59 deletions(-)
+ create mode 100644 neutron/lib/puppet/provider/neutron_agent_ovs/ini_setting.rb
+ create mode 100644 neutron/lib/puppet/type/neutron_agent_ovs.rb
+
+diff --git a/neutron/lib/puppet/provider/neutron_agent_ovs/ini_setting.rb b/neutron/lib/puppet/provider/neutron_agent_ovs/ini_setting.rb
+new file mode 100644
+index 0000000..47ae0d6
+--- /dev/null
++++ b/neutron/lib/puppet/provider/neutron_agent_ovs/ini_setting.rb
+@@ -0,0 +1,26 @@
++Puppet::Type.type(:neutron_agent_ovs).provide(
++  :ini_setting,
++  :parent => Puppet::Type.type(:ini_setting).provider(:ruby)
++) do
++
++  def section
++    resource[:name].split('/', 2).first
++  end
++
++  def setting
++    resource[:name].split('/', 2).last
++  end
++
++  def separator
++    '='
++  end
++
++  def file_path
++    if Facter['osfamily'].value == 'Debian'
++      '/etc/neutron/plugins/ml2/ml2_conf.ini'
++    else
++      '/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini'
++    end
++  end
++
++end
+diff --git a/neutron/lib/puppet/type/neutron_agent_ovs.rb b/neutron/lib/puppet/type/neutron_agent_ovs.rb
+new file mode 100644
+index 0000000..a2c74f1
+--- /dev/null
++++ b/neutron/lib/puppet/type/neutron_agent_ovs.rb
+@@ -0,0 +1,18 @@
++Puppet::Type.newtype(:neutron_agent_ovs) do
++
++  ensurable
++
++  newparam(:name, :namevar => true) do
++    desc 'Section/setting name to manage from ovs agent config.'
++    newvalues(/\S+\/\S+/)
++  end
++
++  newproperty(:value) do
++    desc 'The value of the setting to be defined.'
++    munge do |value|
++      value = value.to_s.strip
++      value.capitalize! if value =~ /^(true|false)$/i
++      value
++    end
++  end
++end
+diff --git a/neutron/manifests/agents/ml2/ovs.pp b/neutron/manifests/agents/ml2/ovs.pp
+index 4dae4f6..a2fb198 100644
+--- a/neutron/manifests/agents/ml2/ovs.pp
++++ b/neutron/manifests/agents/ml2/ovs.pp
+@@ -117,7 +117,8 @@ class neutron::agents::ml2::ovs (
+     fail('L2 population must be enabled when DVR is enabled')
+   }
+ 
+-  Neutron_plugin_ml2<||> ~> Service['neutron-ovs-agent-service']
++  Package['neutron-ovs-agent'] -> Neutron_agent_ovs<||>
++  Neutron_agent_ovs<||> ~> Service['neutron-ovs-agent-service']
+ 
+   if ($bridge_mappings != []) {
+     # bridge_mappings are used to describe external networks that are
+@@ -135,7 +136,7 @@ class neutron::agents::ml2::ovs (
+     # Set config for bridges that we're going to create
+     # The OVS neutron plugin will talk in terms of the networks in the bridge_mappings
+     $br_map_str = join($bridge_mappings, ',')
+-    neutron_plugin_ml2 {
++    neutron_agent_ovs {
+       'ovs/bridge_mappings': value => $br_map_str;
+     }
+     neutron::plugins::ovs::bridge{ $bridge_mappings:
+@@ -146,7 +147,7 @@ class neutron::agents::ml2::ovs (
+     }
+   }
+ 
+-  neutron_plugin_ml2 {
++  neutron_agent_ovs {
+     'agent/polling_interval':           value => $polling_interval;
+     'agent/l2_population':              value => $l2_population;
+     'agent/arp_responder':              value => $arp_responder;
+@@ -154,12 +155,10 @@ class neutron::agents::ml2::ovs (
+     'ovs/integration_bridge':           value => $integration_bridge;
+   }
+ 
+-  if ($firewall_driver) {
+-    neutron_plugin_ml2 { 'securitygroup/firewall_driver':
+-      value => $firewall_driver
+-    }
++  if $firewall_driver {
++    neutron_agent_ovs { 'securitygroup/firewall_driver': value => $firewall_driver }
+   } else {
+-    neutron_plugin_ml2 { 'securitygroup/firewall_driver': ensure => absent }
++    neutron_agent_ovs { 'securitygroup/firewall_driver': ensure => absent }
+   }
+ 
+   vs_bridge { $integration_bridge:
+@@ -172,25 +171,25 @@ class neutron::agents::ml2::ovs (
+       ensure => present,
+       before => Service['neutron-ovs-agent-service'],
+     }
+-    neutron_plugin_ml2 {
++    neutron_agent_ovs {
+       'ovs/enable_tunneling': value => true;
+       'ovs/tunnel_bridge':    value => $tunnel_bridge;
+       'ovs/local_ip':         value => $local_ip;
+     }
+ 
+     if size($tunnel_types) > 0 {
+-      neutron_plugin_ml2 {
++      neutron_agent_ovs {
+         'agent/tunnel_types': value => join($tunnel_types, ',');
+       }
+     }
+     if 'vxlan' in $tunnel_types {
+       validate_vxlan_udp_port($vxlan_udp_port)
+-      neutron_plugin_ml2 {
++      neutron_agent_ovs {
+         'agent/vxlan_udp_port': value => $vxlan_udp_port;
+       }
+     }
+   } else {
+-    neutron_plugin_ml2 {
++    neutron_agent_ovs {
+       'ovs/enable_tunneling': value  => false;
+       'ovs/tunnel_bridge':    ensure => absent;
+       'ovs/local_ip':         ensure => absent;
+@@ -199,7 +198,6 @@ class neutron::agents::ml2::ovs (
+ 
+ 
+   if $::neutron::params::ovs_agent_package {
+-    Package['neutron-ovs-agent'] -> Neutron_plugin_ml2<||>
+     package { 'neutron-ovs-agent':
+       ensure  => $package_ensure,
+       name    => $::neutron::params::ovs_agent_package,
+@@ -208,21 +206,11 @@ class neutron::agents::ml2::ovs (
+     # Some platforms (RedHat) do not provide a separate
+     # neutron plugin ovs agent package. The configuration file for
+     # the ovs agent is provided by the neutron ovs plugin package.
+-    Package['neutron-ovs-agent'] -> Neutron_plugin_ml2<||>
+-    Package['neutron-ovs-agent'] -> Service['ovs-cleanup-service']
+-
+     if ! defined(Package['neutron-ovs-agent']) {
+       package { 'neutron-ovs-agent':
+-        ensure  => $package_ensure,
+-        name    => $::neutron::params::ovs_server_package,
+-      } ->
+-      # https://bugzilla.redhat.com/show_bug.cgi?id=1087647
+-      # Causes init script for agent to load the old ovs file
+-      # instead of the ml2 config file.
+-      file { '/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini':
+-        ensure => link,
+-        target => '/etc/neutron/plugins/ml2/ml2_conf.ini'
+-      } ~> Service<| title == 'neutron-ovs-agent-service' |>
++        ensure => $package_ensure,
++        name   => $::neutron::params::ovs_server_package,
++      }
+     }
+   }
+ 
+@@ -240,7 +228,8 @@ class neutron::agents::ml2::ovs (
+   }
+ 
+   if $::neutron::params::ovs_cleanup_service {
+-    service {'ovs-cleanup-service':
++    Package['neutron-ovs-agent'] -> Service['ovs-cleanup-service']
++    service { 'ovs-cleanup-service':
+       ensure => $service_ensure,
+       name   => $::neutron::params::ovs_cleanup_service,
+       enable => $enabled,
+diff --git a/neutron/spec/classes/neutron_agents_ml2_ovs_spec.rb b/neutron/spec/classes/neutron_agents_ml2_ovs_spec.rb
+index 45aec8e..b7a1204 100644
+--- a/neutron/spec/classes/neutron_agents_ml2_ovs_spec.rb
++++ b/neutron/spec/classes/neutron_agents_ml2_ovs_spec.rb
+@@ -34,15 +34,15 @@ describe 'neutron::agents::ml2::ovs' do
+     it { should contain_class('neutron::params') }
+ 
+     it 'configures ovs_neutron_plugin.ini' do
+-      should contain_neutron_plugin_ml2('agent/polling_interval').with_value(p[:polling_interval])
+-      should contain_neutron_plugin_ml2('agent/l2_population').with_value(p[:l2_population])
+-      should contain_neutron_plugin_ml2('agent/arp_responder').with_value(p[:arp_responder])
+-      should contain_neutron_plugin_ml2('ovs/integration_bridge').with_value(p[:integration_bridge])
+-      should contain_neutron_plugin_ml2('securitygroup/firewall_driver').\
++      should contain_neutron_agent_ovs('agent/polling_interval').with_value(p[:polling_interval])
++      should contain_neutron_agent_ovs('agent/l2_population').with_value(p[:l2_population])
++      should contain_neutron_agent_ovs('agent/arp_responder').with_value(p[:arp_responder])
++      should contain_neutron_agent_ovs('ovs/integration_bridge').with_value(p[:integration_bridge])
++      should contain_neutron_agent_ovs('securitygroup/firewall_driver').\
+         with_value(p[:firewall_driver])
+-      should contain_neutron_plugin_ml2('ovs/enable_tunneling').with_value(false)
+-      should contain_neutron_plugin_ml2('ovs/tunnel_bridge').with_ensure('absent')
+-      should contain_neutron_plugin_ml2('ovs/local_ip').with_ensure('absent')
++      should contain_neutron_agent_ovs('ovs/enable_tunneling').with_value(false)
++      should contain_neutron_agent_ovs('ovs/tunnel_bridge').with_ensure('absent')
++      should contain_neutron_agent_ovs('ovs/local_ip').with_ensure('absent')
+     end
+ 
+     it 'configures vs_bridge' do
+@@ -59,18 +59,20 @@ describe 'neutron::agents::ml2::ovs' do
+           :name   => platform_params[:ovs_agent_package],
+           :ensure => p[:package_ensure]
+         )
+-        should contain_package('neutron-ovs-agent').with_before(/Neutron_plugin_ml2\[.+\]/)
++        should contain_package('neutron-ovs-agent').with_before(/Neutron_agent_ovs\[.+\]/)
+       else
+       end
+     end
+ 
+-    it 'configures neutron ovs agent service' do
+-      should contain_service('neutron-ovs-agent-service').with(
+-        :name    => platform_params[:ovs_agent_service],
+-        :enable  => true,
+-        :ensure  => 'running',
+-        :require => 'Class[Neutron]'
+-      )
++    it 'configures neutron ovs cleanup service (if any)' do
++      if platform_params.has_key?(:ovs_cleanup_service)
++        should contain_service('ovs-cleanup-service').with(
++          :name    => platform_params[:ovs_cleanup_service],
++          :enable  => true,
++          :ensure  => 'running'
++        )
++        should contain_package('neutron-ovs-agent').with_before(/Service\[ovs-cleanup-service\]/)
++      end
+     end
+ 
+     context 'when supplying a firewall driver' do
+@@ -78,7 +80,7 @@ describe 'neutron::agents::ml2::ovs' do
+         params.merge!(:firewall_driver => false)
+       end
+       it 'should configure firewall driver' do
+-        should contain_neutron_plugin_ml2('securitygroup/firewall_driver').with_ensure('absent')
++        should contain_neutron_agent_ovs('securitygroup/firewall_driver').with_ensure('absent')
+       end
+     end
+ 
+@@ -87,7 +89,7 @@ describe 'neutron::agents::ml2::ovs' do
+         params.merge!(:arp_responder => true)
+       end
+       it 'should enable ARP responder' do
+-        should contain_neutron_plugin_ml2('agent/arp_responder').with_value(true)
++        should contain_neutron_agent_ovs('agent/arp_responder').with_value(true)
+       end
+     end
+ 
+@@ -97,7 +99,7 @@ describe 'neutron::agents::ml2::ovs' do
+                       :l2_population              => true )
+       end
+       it 'should enable DVR' do
+-        should contain_neutron_plugin_ml2('agent/enable_distributed_routing').with_value(true)
++        should contain_neutron_agent_ovs('agent/enable_distributed_routing').with_value(true)
+       end
+     end
+ 
+@@ -107,7 +109,7 @@ describe 'neutron::agents::ml2::ovs' do
+       end
+ 
+       it 'configures bridge mappings' do
+-        should contain_neutron_plugin_ml2('ovs/bridge_mappings')
++        should contain_neutron_agent_ovs('ovs/bridge_mappings')
+       end
+ 
+       it 'should configure bridge mappings' do
+@@ -139,9 +141,9 @@ describe 'neutron::agents::ml2::ovs' do
+           params.merge!(:enable_tunneling => true, :local_ip => '127.0.0.1' )
+         end
+         it 'should configure ovs for tunneling' do
+-          should contain_neutron_plugin_ml2('ovs/enable_tunneling').with_value(true)
+-          should contain_neutron_plugin_ml2('ovs/tunnel_bridge').with_value(default_params[:tunnel_bridge])
+-          should contain_neutron_plugin_ml2('ovs/local_ip').with_value('127.0.0.1')
++          should contain_neutron_agent_ovs('ovs/enable_tunneling').with_value(true)
++          should contain_neutron_agent_ovs('ovs/tunnel_bridge').with_value(default_params[:tunnel_bridge])
++          should contain_neutron_agent_ovs('ovs/local_ip').with_value('127.0.0.1')
+           should contain_vs_bridge(default_params[:tunnel_bridge]).with(
+             :ensure  => 'present',
+             :before => 'Service[neutron-ovs-agent-service]'
+@@ -158,8 +160,8 @@ describe 'neutron::agents::ml2::ovs' do
+         end
+ 
+         it 'should perform vxlan network configuration' do
+-          should contain_neutron_plugin_ml2('agent/tunnel_types').with_value(params[:tunnel_types])
+-          should contain_neutron_plugin_ml2('agent/vxlan_udp_port').with_value(params[:vxlan_udp_port])
++          should contain_neutron_agent_ovs('agent/tunnel_types').with_value(params[:tunnel_types])
++          should contain_neutron_agent_ovs('agent/vxlan_udp_port').with_value(params[:vxlan_udp_port])
+         end
+       end
+ 
+@@ -210,12 +212,5 @@ describe 'neutron::agents::ml2::ovs' do
+       )
+       should contain_package('neutron-ovs-agent').with_before(/Service\[ovs-cleanup-service\]/)
+     end
+-
+-    it 'links from ovs config to plugin config' do
+-      should contain_file('/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini').with(
+-        :ensure => 'link',
+-        :target => '/etc/neutron/plugins/ml2/ml2_conf.ini'
+-      )
+-    end
+   end
+ end
diff --git a/0010-Set-control_exchange-in-the-main-config-file.patch b/0010-Set-control_exchange-in-the-main-config-file.patch
deleted file mode 100644
index 403cc9c..0000000
--- a/0010-Set-control_exchange-in-the-main-config-file.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 341775674f1eb451781bc46759614f053709ec2f Mon Sep 17 00:00:00 2001
-From: Solly Ross <sross at redhat.com>
-Date: Tue, 16 Dec 2014 15:40:19 -0500
-Subject: [PATCH] Set control_exchange in the main config file
-
-`control_exchange = trove` should be set in the main config file.
-
-Change-Id: I559f440a2aed76968bcdce18384f8707febb1f21
----
- trove/manifests/init.pp | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/trove/manifests/init.pp b/trove/manifests/init.pp
-index 816be7b..8cfd011 100644
---- a/trove/manifests/init.pp
-+++ b/trove/manifests/init.pp
-@@ -139,6 +139,9 @@
- # [*control_exchange*]
- #   (optional) Control exchange.
- #   Defaults to 'trove'.
-+# [*use_neutron*]
-+#   (optional) Use Neutron
-+#   Defaults to true
- #
- # [*use_neutron*]
- #   (optional) Use Neutron
-@@ -171,6 +174,7 @@ class trove(
-   $use_neutron                  = true,
-   # DEPRECATED PARAMETERS
-   $mysql_module                 = undef,
-+  $use_neutron                  = true,
- ) {
-   include trove::params
- 
diff --git a/0011-Configure-OVS-mechanism-agent-configs-in-its-config-.patch b/0011-Configure-OVS-mechanism-agent-configs-in-its-config-.patch
deleted file mode 100644
index c772031..0000000
--- a/0011-Configure-OVS-mechanism-agent-configs-in-its-config-.patch
+++ /dev/null
@@ -1,341 +0,0 @@
-From 3650330294a1696ce14d96710aa30301de6cb972 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Mathieu=20Gagne=CC=81?= <mgagne at iweb.com>
-Date: Wed, 9 Jul 2014 20:44:07 -0400
-Subject: [PATCH] Configure OVS mechanism agent configs in its config file
-
-Configurations for the OVS agent should go in its config file:
-/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini
-but as packaging is broken and different in Ubuntu and Redhat
-we have to use new neutron_agent_ovs provider to configure
-ovs agent correctly.
-
-Therefore, we should not remove the agent config file and
-replace it with a symlink to plugin.ini or ml2_conf.ini.
-
-Those config files are meant to be used by the core plugin itself
-in neutron-server, not the agents themselves.
-
-- Remove symlink creation from ovs_neutron_plugin.ini to plugin.ini
-- Use neutron_agent_ovs to configure OVS mechanism agent configs
-
-Change-Id: I53d9b923784587e8a2a934f004a3b054c716daaa
-Signed-off-by: Gael Chamoulaud <gchamoul at redhat.com>
-
-Conflicts:
-	neutron/manifests/agents/ml2/ovs.pp
----
- .../provider/neutron_agent_ovs/ini_setting.rb      | 26 ++++++++++
- neutron/lib/puppet/type/neutron_agent_ovs.rb       | 18 +++++++
- neutron/manifests/agents/ml2/ovs.pp                | 43 ++++++----------
- .../spec/classes/neutron_agents_ml2_ovs_spec.rb    | 59 ++++++++++------------
- 4 files changed, 87 insertions(+), 59 deletions(-)
- create mode 100644 neutron/lib/puppet/provider/neutron_agent_ovs/ini_setting.rb
- create mode 100644 neutron/lib/puppet/type/neutron_agent_ovs.rb
-
-diff --git a/neutron/lib/puppet/provider/neutron_agent_ovs/ini_setting.rb b/neutron/lib/puppet/provider/neutron_agent_ovs/ini_setting.rb
-new file mode 100644
-index 0000000..47ae0d6
---- /dev/null
-+++ b/neutron/lib/puppet/provider/neutron_agent_ovs/ini_setting.rb
-@@ -0,0 +1,26 @@
-+Puppet::Type.type(:neutron_agent_ovs).provide(
-+  :ini_setting,
-+  :parent => Puppet::Type.type(:ini_setting).provider(:ruby)
-+) do
-+
-+  def section
-+    resource[:name].split('/', 2).first
-+  end
-+
-+  def setting
-+    resource[:name].split('/', 2).last
-+  end
-+
-+  def separator
-+    '='
-+  end
-+
-+  def file_path
-+    if Facter['osfamily'].value == 'Debian'
-+      '/etc/neutron/plugins/ml2/ml2_conf.ini'
-+    else
-+      '/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini'
-+    end
-+  end
-+
-+end
-diff --git a/neutron/lib/puppet/type/neutron_agent_ovs.rb b/neutron/lib/puppet/type/neutron_agent_ovs.rb
-new file mode 100644
-index 0000000..a2c74f1
---- /dev/null
-+++ b/neutron/lib/puppet/type/neutron_agent_ovs.rb
-@@ -0,0 +1,18 @@
-+Puppet::Type.newtype(:neutron_agent_ovs) do
-+
-+  ensurable
-+
-+  newparam(:name, :namevar => true) do
-+    desc 'Section/setting name to manage from ovs agent config.'
-+    newvalues(/\S+\/\S+/)
-+  end
-+
-+  newproperty(:value) do
-+    desc 'The value of the setting to be defined.'
-+    munge do |value|
-+      value = value.to_s.strip
-+      value.capitalize! if value =~ /^(true|false)$/i
-+      value
-+    end
-+  end
-+end
-diff --git a/neutron/manifests/agents/ml2/ovs.pp b/neutron/manifests/agents/ml2/ovs.pp
-index 4dae4f6..a2fb198 100644
---- a/neutron/manifests/agents/ml2/ovs.pp
-+++ b/neutron/manifests/agents/ml2/ovs.pp
-@@ -117,7 +117,8 @@ class neutron::agents::ml2::ovs (
-     fail('L2 population must be enabled when DVR is enabled')
-   }
- 
--  Neutron_plugin_ml2<||> ~> Service['neutron-ovs-agent-service']
-+  Package['neutron-ovs-agent'] -> Neutron_agent_ovs<||>
-+  Neutron_agent_ovs<||> ~> Service['neutron-ovs-agent-service']
- 
-   if ($bridge_mappings != []) {
-     # bridge_mappings are used to describe external networks that are
-@@ -135,7 +136,7 @@ class neutron::agents::ml2::ovs (
-     # Set config for bridges that we're going to create
-     # The OVS neutron plugin will talk in terms of the networks in the bridge_mappings
-     $br_map_str = join($bridge_mappings, ',')
--    neutron_plugin_ml2 {
-+    neutron_agent_ovs {
-       'ovs/bridge_mappings': value => $br_map_str;
-     }
-     neutron::plugins::ovs::bridge{ $bridge_mappings:
-@@ -146,7 +147,7 @@ class neutron::agents::ml2::ovs (
-     }
-   }
- 
--  neutron_plugin_ml2 {
-+  neutron_agent_ovs {
-     'agent/polling_interval':           value => $polling_interval;
-     'agent/l2_population':              value => $l2_population;
-     'agent/arp_responder':              value => $arp_responder;
-@@ -154,12 +155,10 @@ class neutron::agents::ml2::ovs (
-     'ovs/integration_bridge':           value => $integration_bridge;
-   }
- 
--  if ($firewall_driver) {
--    neutron_plugin_ml2 { 'securitygroup/firewall_driver':
--      value => $firewall_driver
--    }
-+  if $firewall_driver {
-+    neutron_agent_ovs { 'securitygroup/firewall_driver': value => $firewall_driver }
-   } else {
--    neutron_plugin_ml2 { 'securitygroup/firewall_driver': ensure => absent }
-+    neutron_agent_ovs { 'securitygroup/firewall_driver': ensure => absent }
-   }
- 
-   vs_bridge { $integration_bridge:
-@@ -172,25 +171,25 @@ class neutron::agents::ml2::ovs (
-       ensure => present,
-       before => Service['neutron-ovs-agent-service'],
-     }
--    neutron_plugin_ml2 {
-+    neutron_agent_ovs {
-       'ovs/enable_tunneling': value => true;
-       'ovs/tunnel_bridge':    value => $tunnel_bridge;
-       'ovs/local_ip':         value => $local_ip;
-     }
- 
-     if size($tunnel_types) > 0 {
--      neutron_plugin_ml2 {
-+      neutron_agent_ovs {
-         'agent/tunnel_types': value => join($tunnel_types, ',');
-       }
-     }
-     if 'vxlan' in $tunnel_types {
-       validate_vxlan_udp_port($vxlan_udp_port)
--      neutron_plugin_ml2 {
-+      neutron_agent_ovs {
-         'agent/vxlan_udp_port': value => $vxlan_udp_port;
-       }
-     }
-   } else {
--    neutron_plugin_ml2 {
-+    neutron_agent_ovs {
-       'ovs/enable_tunneling': value  => false;
-       'ovs/tunnel_bridge':    ensure => absent;
-       'ovs/local_ip':         ensure => absent;
-@@ -199,7 +198,6 @@ class neutron::agents::ml2::ovs (
- 
- 
-   if $::neutron::params::ovs_agent_package {
--    Package['neutron-ovs-agent'] -> Neutron_plugin_ml2<||>
-     package { 'neutron-ovs-agent':
-       ensure  => $package_ensure,
-       name    => $::neutron::params::ovs_agent_package,
-@@ -208,21 +206,11 @@ class neutron::agents::ml2::ovs (
-     # Some platforms (RedHat) do not provide a separate
-     # neutron plugin ovs agent package. The configuration file for
-     # the ovs agent is provided by the neutron ovs plugin package.
--    Package['neutron-ovs-agent'] -> Neutron_plugin_ml2<||>
--    Package['neutron-ovs-agent'] -> Service['ovs-cleanup-service']
--
-     if ! defined(Package['neutron-ovs-agent']) {
-       package { 'neutron-ovs-agent':
--        ensure  => $package_ensure,
--        name    => $::neutron::params::ovs_server_package,
--      } ->
--      # https://bugzilla.redhat.com/show_bug.cgi?id=1087647
--      # Causes init script for agent to load the old ovs file
--      # instead of the ml2 config file.
--      file { '/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini':
--        ensure => link,
--        target => '/etc/neutron/plugins/ml2/ml2_conf.ini'
--      } ~> Service<| title == 'neutron-ovs-agent-service' |>
-+        ensure => $package_ensure,
-+        name   => $::neutron::params::ovs_server_package,
-+      }
-     }
-   }
- 
-@@ -240,7 +228,8 @@ class neutron::agents::ml2::ovs (
-   }
- 
-   if $::neutron::params::ovs_cleanup_service {
--    service {'ovs-cleanup-service':
-+    Package['neutron-ovs-agent'] -> Service['ovs-cleanup-service']
-+    service { 'ovs-cleanup-service':
-       ensure => $service_ensure,
-       name   => $::neutron::params::ovs_cleanup_service,
-       enable => $enabled,
-diff --git a/neutron/spec/classes/neutron_agents_ml2_ovs_spec.rb b/neutron/spec/classes/neutron_agents_ml2_ovs_spec.rb
-index 45aec8e..b7a1204 100644
---- a/neutron/spec/classes/neutron_agents_ml2_ovs_spec.rb
-+++ b/neutron/spec/classes/neutron_agents_ml2_ovs_spec.rb
-@@ -34,15 +34,15 @@ describe 'neutron::agents::ml2::ovs' do
-     it { should contain_class('neutron::params') }
- 
-     it 'configures ovs_neutron_plugin.ini' do
--      should contain_neutron_plugin_ml2('agent/polling_interval').with_value(p[:polling_interval])
--      should contain_neutron_plugin_ml2('agent/l2_population').with_value(p[:l2_population])
--      should contain_neutron_plugin_ml2('agent/arp_responder').with_value(p[:arp_responder])
--      should contain_neutron_plugin_ml2('ovs/integration_bridge').with_value(p[:integration_bridge])
--      should contain_neutron_plugin_ml2('securitygroup/firewall_driver').\
-+      should contain_neutron_agent_ovs('agent/polling_interval').with_value(p[:polling_interval])
-+      should contain_neutron_agent_ovs('agent/l2_population').with_value(p[:l2_population])
-+      should contain_neutron_agent_ovs('agent/arp_responder').with_value(p[:arp_responder])
-+      should contain_neutron_agent_ovs('ovs/integration_bridge').with_value(p[:integration_bridge])
-+      should contain_neutron_agent_ovs('securitygroup/firewall_driver').\
-         with_value(p[:firewall_driver])
--      should contain_neutron_plugin_ml2('ovs/enable_tunneling').with_value(false)
--      should contain_neutron_plugin_ml2('ovs/tunnel_bridge').with_ensure('absent')
--      should contain_neutron_plugin_ml2('ovs/local_ip').with_ensure('absent')
-+      should contain_neutron_agent_ovs('ovs/enable_tunneling').with_value(false)
-+      should contain_neutron_agent_ovs('ovs/tunnel_bridge').with_ensure('absent')
-+      should contain_neutron_agent_ovs('ovs/local_ip').with_ensure('absent')
-     end
- 
-     it 'configures vs_bridge' do
-@@ -59,18 +59,20 @@ describe 'neutron::agents::ml2::ovs' do
-           :name   => platform_params[:ovs_agent_package],
-           :ensure => p[:package_ensure]
-         )
--        should contain_package('neutron-ovs-agent').with_before(/Neutron_plugin_ml2\[.+\]/)
-+        should contain_package('neutron-ovs-agent').with_before(/Neutron_agent_ovs\[.+\]/)
-       else
-       end
-     end
- 
--    it 'configures neutron ovs agent service' do
--      should contain_service('neutron-ovs-agent-service').with(
--        :name    => platform_params[:ovs_agent_service],
--        :enable  => true,
--        :ensure  => 'running',
--        :require => 'Class[Neutron]'
--      )
-+    it 'configures neutron ovs cleanup service (if any)' do
-+      if platform_params.has_key?(:ovs_cleanup_service)
-+        should contain_service('ovs-cleanup-service').with(
-+          :name    => platform_params[:ovs_cleanup_service],
-+          :enable  => true,
-+          :ensure  => 'running'
-+        )
-+        should contain_package('neutron-ovs-agent').with_before(/Service\[ovs-cleanup-service\]/)
-+      end
-     end
- 
-     context 'when supplying a firewall driver' do
-@@ -78,7 +80,7 @@ describe 'neutron::agents::ml2::ovs' do
-         params.merge!(:firewall_driver => false)
-       end
-       it 'should configure firewall driver' do
--        should contain_neutron_plugin_ml2('securitygroup/firewall_driver').with_ensure('absent')
-+        should contain_neutron_agent_ovs('securitygroup/firewall_driver').with_ensure('absent')
-       end
-     end
- 
-@@ -87,7 +89,7 @@ describe 'neutron::agents::ml2::ovs' do
-         params.merge!(:arp_responder => true)
-       end
-       it 'should enable ARP responder' do
--        should contain_neutron_plugin_ml2('agent/arp_responder').with_value(true)
-+        should contain_neutron_agent_ovs('agent/arp_responder').with_value(true)
-       end
-     end
- 
-@@ -97,7 +99,7 @@ describe 'neutron::agents::ml2::ovs' do
-                       :l2_population              => true )
-       end
-       it 'should enable DVR' do
--        should contain_neutron_plugin_ml2('agent/enable_distributed_routing').with_value(true)
-+        should contain_neutron_agent_ovs('agent/enable_distributed_routing').with_value(true)
-       end
-     end
- 
-@@ -107,7 +109,7 @@ describe 'neutron::agents::ml2::ovs' do
-       end
- 
-       it 'configures bridge mappings' do
--        should contain_neutron_plugin_ml2('ovs/bridge_mappings')
-+        should contain_neutron_agent_ovs('ovs/bridge_mappings')
-       end
- 
-       it 'should configure bridge mappings' do
-@@ -139,9 +141,9 @@ describe 'neutron::agents::ml2::ovs' do
-           params.merge!(:enable_tunneling => true, :local_ip => '127.0.0.1' )
-         end
-         it 'should configure ovs for tunneling' do
--          should contain_neutron_plugin_ml2('ovs/enable_tunneling').with_value(true)
--          should contain_neutron_plugin_ml2('ovs/tunnel_bridge').with_value(default_params[:tunnel_bridge])
--          should contain_neutron_plugin_ml2('ovs/local_ip').with_value('127.0.0.1')
-+          should contain_neutron_agent_ovs('ovs/enable_tunneling').with_value(true)
-+          should contain_neutron_agent_ovs('ovs/tunnel_bridge').with_value(default_params[:tunnel_bridge])
-+          should contain_neutron_agent_ovs('ovs/local_ip').with_value('127.0.0.1')
-           should contain_vs_bridge(default_params[:tunnel_bridge]).with(
-             :ensure  => 'present',
-             :before => 'Service[neutron-ovs-agent-service]'
-@@ -158,8 +160,8 @@ describe 'neutron::agents::ml2::ovs' do
-         end
- 
-         it 'should perform vxlan network configuration' do
--          should contain_neutron_plugin_ml2('agent/tunnel_types').with_value(params[:tunnel_types])
--          should contain_neutron_plugin_ml2('agent/vxlan_udp_port').with_value(params[:vxlan_udp_port])
-+          should contain_neutron_agent_ovs('agent/tunnel_types').with_value(params[:tunnel_types])
-+          should contain_neutron_agent_ovs('agent/vxlan_udp_port').with_value(params[:vxlan_udp_port])
-         end
-       end
- 
-@@ -210,12 +212,5 @@ describe 'neutron::agents::ml2::ovs' do
-       )
-       should contain_package('neutron-ovs-agent').with_before(/Service\[ovs-cleanup-service\]/)
-     end
--
--    it 'links from ovs config to plugin config' do
--      should contain_file('/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini').with(
--        :ensure => 'link',
--        :target => '/etc/neutron/plugins/ml2/ml2_conf.ini'
--      )
--    end
-   end
- end
diff --git a/0011-Fix-rabbitmq-support.patch b/0011-Fix-rabbitmq-support.patch
new file mode 100644
index 0000000..60aafc6
--- /dev/null
+++ b/0011-Fix-rabbitmq-support.patch
@@ -0,0 +1,308 @@
+From 851b55c0041253952e86328b7061b88e1f7cc7b4 Mon Sep 17 00:00:00 2001
+From: Lukas Bezdicka <lbezdick at redhat.com>
+Date: Mon, 23 Feb 2015 15:00:31 +0100
+Subject: [PATCH] Fix rabbitmq support
+
+Ironic was missing SSL and amqp_durable_queues for
+rabbitmq.
+
+Change-Id: Iadc7ac8481d52d7764345d50b5d3ffd9bc31999f
+---
+ ironic/manifests/init.pp                | 112 ++++++++++++++++++++++++++++----
+ ironic/spec/classes/ironic_init_spec.rb |  84 ++++++++++++++++++++++--
+ 2 files changed, 179 insertions(+), 17 deletions(-)
+
+diff --git a/ironic/manifests/init.pp b/ironic/manifests/init.pp
+index 90cbe22..2df9f81 100644
+--- a/ironic/manifests/init.pp
++++ b/ironic/manifests/init.pp
+@@ -44,15 +44,62 @@
+ # [*control_exchange*]
+ #   (optional) What RPC queue/exchange to use
+ #   Defaults to openstack
+-
++#
+ # [*rpc_backend*]
+ #   (optional) what rpc/queuing service to use
+ #   Defaults to impl_kombu (rabbitmq)
+ #
+-# [*rabbit_password*]
+ # [*rabbit_host*]
++#   (Optional) IP or hostname of the rabbit server.
++#   Defaults to 'localhost'
++#
+ # [*rabbit_port*]
+-# [*rabbit_user*]
++#   (Optional) Port of the rabbit server.
++#   Defaults to 5672.
++#
++# [*rabbit_hosts*]
++#   (Optional) Array of host:port (used with HA queues).
++#   If defined, will remove rabbit_host & rabbit_port parameters from config
++#   Defaults to undef.
++#
++# [*rabbit_userid*]
++#   (Optional) User to connect to the rabbit server.
++#   Defaults to 'guest'
++#
++# [*rabbit_password*]
++#   (Optional) Password to connect to the rabbit_server.
++#   Defaults to empty.
++#
++# [*rabbit_virtual_host*]
++#   (Optional) Virtual_host to use.
++#   Defaults to '/'
++#
++# [*rabbit_use_ssl*]
++#   (optional) Connect over SSL for RabbitMQ
++#   Defaults to false
++#
++# [*kombu_ssl_ca_certs*]
++#   (optional) SSL certification authority file (valid only if SSL enabled).
++#   Defaults to undef
++#
++# [*kombu_ssl_certfile*]
++#   (optional) SSL cert file (valid only if SSL enabled).
++#   Defaults to undef
++#
++# [*kombu_ssl_keyfile*]
++#   (optional) SSL key file (valid only if SSL enabled).
++#   Defaults to undef
++#
++# [*kombu_ssl_version*]
++#   (optional) SSL version to use (valid only if SSL enabled).
++#   Valid values are TLSv1, SSLv23 and SSLv3. SSLv2 may be
++#   available on some distributions.
++#   Defaults to 'TLSv1'
++#
++# [*amqp_durable_queues*]
++#   Use durable queues in amqp.
++#   (Optional) Defaults to false.
++#
+ # [*rabbit_virtual_host*]
+ #   (optional) Various rabbitmq settings
+ #
+@@ -123,12 +170,20 @@ class ironic (
+   $auth_strategy               = 'keystone',
+   $control_exchange            = 'openstack',
+   $rpc_backend                 = 'ironic.openstack.common.rpc.impl_kombu',
+-  $rabbit_password             = false,
++  $rabbit_hosts                = false,
++  $rabbit_virtual_host         = '/',
+   $rabbit_host                 = 'localhost',
++  $rabbit_port                 = 5672,
+   $rabbit_hosts                = false,
+-  $rabbit_port                 = '5672',
+-  $rabbit_user                 = 'guest',
+   $rabbit_virtual_host         = '/',
++  $rabbit_userid               = 'guest',
++  $rabbit_password             = false,
++  $rabbit_use_ssl              = false,
++  $kombu_ssl_ca_certs          = undef,
++  $kombu_ssl_certfile          = undef,
++  $kombu_ssl_keyfile           = undef,
++  $kombu_ssl_version           = 'TLSv1',
++  $amqp_durable_queues         = false,
+   $qpid_hostname               = 'localhost',
+   $qpid_port                   = '5672',
+   $qpid_username               = 'guest',
+@@ -219,7 +274,6 @@ class ironic (
+     'DEFAULT/verbose':                 value => $verbose;
+     'DEFAULT/debug':                   value => $debug;
+     'DEFAULT/auth_strategy':           value => $auth_strategy;
+-    'DEFAULT/control_exchange':        value => $control_exchange;
+     'DEFAULT/rpc_backend':             value => $rpc_backend;
+     'database/connection':             value => $database_connection, secret => true;
+     'database/idle_timeout':           value => $database_idle_timeout;
+@@ -240,12 +294,25 @@ class ironic (
+   }
+ 
+   if $rpc_backend == 'ironic.openstack.common.rpc.impl_kombu' {
++
+     if ! $rabbit_password {
+       fail('When rpc_backend is rabbitmq, you must set rabbit password')
+     }
++
++    ironic_config {
++      'DEFAULT/rabbit_userid':       value => $rabbit_userid;
++      'DEFAULT/rabbit_password':     value => $rabbit_password, secret => true;
++      'DEFAULT/rabbit_virtual_host': value => $rabbit_virtual_host;
++      'DEFAULT/rabbit_use_ssl':      value => $rabbit_use_ssl;
++      'DEFAULT/control_exchange':    value => $control_exchange;
++      'DEFAULT/amqp_durable_queues': value => $amqp_durable_queues;
++    }
++
+     if $rabbit_hosts {
+       ironic_config { 'DEFAULT/rabbit_hosts':     value  => join($rabbit_hosts, ',') }
+       ironic_config { 'DEFAULT/rabbit_ha_queues': value  => true }
++      ironic_config { 'DEFAULT/rabbit_host':      ensure => absent }
++      ironic_config { 'DEFAULT/rabbit_port':      ensure => absent }
+     } else  {
+       ironic_config { 'DEFAULT/rabbit_host':      value => $rabbit_host }
+       ironic_config { 'DEFAULT/rabbit_port':      value => $rabbit_port }
+@@ -253,10 +320,33 @@ class ironic (
+       ironic_config { 'DEFAULT/rabbit_ha_queues': value => false }
+     }
+ 
+-    ironic_config {
+-      'DEFAULT/rabbit_userid':       value => $rabbit_user;
+-      'DEFAULT/rabbit_password':     value => $rabbit_password, secret => true;
+-      'DEFAULT/rabbit_virtual_host': value => $rabbit_virtual_host;
++    if $rabbit_use_ssl {
++      ironic_config { 'DEFAULT/kombu_ssl_version': value => $kombu_ssl_version }
++
++      if $kombu_ssl_ca_certs {
++        ironic_config { 'DEFAULT/kombu_ssl_ca_certs': value => $kombu_ssl_ca_certs }
++      } else {
++        ironic_config { 'DEFAULT/kombu_ssl_ca_certs': ensure => absent}
++      }
++
++      if $kombu_ssl_certfile {
++        ironic_config { 'DEFAULT/kombu_ssl_certfile': value => $kombu_ssl_certfile }
++      } else {
++        ironic_config { 'DEFAULT/kombu_ssl_certfile': ensure => absent}
++      }
++
++      if $kombu_ssl_keyfile {
++        ironic_config { 'DEFAULT/kombu_ssl_keyfile': value => $kombu_ssl_keyfile }
++      } else {
++        ironic_config { 'DEFAULT/kombu_ssl_keyfile': ensure => absent}
++      }
++    } else {
++      ironic_config {
++        'DEFAULT/kombu_ssl_ca_certs': ensure => absent;
++        'DEFAULT/kombu_ssl_certfile': ensure => absent;
++        'DEFAULT/kombu_ssl_keyfile':  ensure => absent;
++        'DEFAULT/kombu_ssl_version':  ensure => absent;
++      }
+     }
+   }
+ 
+diff --git a/ironic/spec/classes/ironic_init_spec.rb b/ironic/spec/classes/ironic_init_spec.rb
+index 5c2f6ee..4aeea8f 100644
+--- a/ironic/spec/classes/ironic_init_spec.rb
++++ b/ironic/spec/classes/ironic_init_spec.rb
+@@ -29,7 +29,7 @@ describe 'ironic' do
+       :rabbit_host                 => '127.0.0.1',
+       :rabbit_port                 => 5672,
+       :rabbit_hosts                => false,
+-      :rabbit_user                 => 'guest',
++      :rabbit_userid               => 'guest',
+       :rabbit_password             => 'guest',
+       :rabbit_virtual_host         => '/',
+       :database_connection         => 'sqlite:////var/lib/ironic/ironic.sqlite',
+@@ -46,6 +46,9 @@ describe 'ironic' do
+ 
+     context 'and if rabbit_host parameter is provided' do
+       it_configures 'a ironic base installation'
++      it_configures 'with SSL disabled'
++      it_configures 'with SSL enabled without kombu'
++      it_configures 'with SSL enabled with kombu'
+     end
+ 
+     context 'and if rabbit_hosts parameter is provided' do
+@@ -123,7 +126,7 @@ describe 'ironic' do
+     end
+ 
+     it 'configures credentials for rabbit' do
+-      should contain_ironic_config('DEFAULT/rabbit_userid').with_value( params[:rabbit_user] )
++      should contain_ironic_config('DEFAULT/rabbit_userid').with_value( params[:rabbit_userid] )
+       should contain_ironic_config('DEFAULT/rabbit_password').with_value( params[:rabbit_password] )
+       should contain_ironic_config('DEFAULT/rabbit_virtual_host').with_value( params[:rabbit_virtual_host] )
+       should contain_ironic_config('DEFAULT/rabbit_password').with_secret( true )
+@@ -150,8 +153,8 @@ describe 'ironic' do
+ 
+   shared_examples_for 'rabbit HA with a single virtual host' do
+     it 'in ironic.conf' do
+-      should_not contain_ironic_config('DEFAULT/rabbit_host')
+-      should_not contain_ironic_config('DEFAULT/rabbit_port')
++      should contain_ironic_config('DEFAULT/rabbit_host').with_ensure('absent')
++      should contain_ironic_config('DEFAULT/rabbit_port').with_ensure('absent')
+       should contain_ironic_config('DEFAULT/rabbit_hosts').with_value( params[:rabbit_hosts] )
+       should contain_ironic_config('DEFAULT/rabbit_ha_queues').with_value(true)
+     end
+@@ -159,13 +162,82 @@ describe 'ironic' do
+ 
+   shared_examples_for 'rabbit HA with multiple hosts' do
+     it 'in ironic.conf' do
+-      should_not contain_ironic_config('DEFAULT/rabbit_host')
+-      should_not contain_ironic_config('DEFAULT/rabbit_port')
++      should contain_ironic_config('DEFAULT/rabbit_host').with_ensure('absent')
++      should contain_ironic_config('DEFAULT/rabbit_port').with_ensure('absent')
+       should contain_ironic_config('DEFAULT/rabbit_hosts').with_value( params[:rabbit_hosts].join(',') )
+       should contain_ironic_config('DEFAULT/rabbit_ha_queues').with_value(true)
+     end
+   end
+ 
++  shared_examples_for 'with SSL enabled with kombu' do
++    before do
++      params.merge!(
++        :rabbit_use_ssl     => true,
++        :kombu_ssl_ca_certs => '/path/to/ssl/ca/certs',
++        :kombu_ssl_certfile => '/path/to/ssl/cert/file',
++        :kombu_ssl_keyfile  => '/path/to/ssl/keyfile',
++        :kombu_ssl_version  => 'TLSv1'
++      )
++    end
++
++    it do
++      should contain_ironic_config('DEFAULT/rabbit_use_ssl').with_value('true')
++      should contain_ironic_config('DEFAULT/kombu_ssl_ca_certs').with_value('/path/to/ssl/ca/certs')
++      should contain_ironic_config('DEFAULT/kombu_ssl_certfile').with_value('/path/to/ssl/cert/file')
++      should contain_ironic_config('DEFAULT/kombu_ssl_keyfile').with_value('/path/to/ssl/keyfile')
++      should contain_ironic_config('DEFAULT/kombu_ssl_version').with_value('TLSv1')
++    end
++  end
++
++  shared_examples_for 'with SSL enabled without kombu' do
++    before do
++      params.merge!(
++        :rabbit_use_ssl     => true,
++      )
++    end
++
++    it do
++      should contain_ironic_config('DEFAULT/rabbit_use_ssl').with_value('true')
++      should contain_ironic_config('DEFAULT/kombu_ssl_ca_certs').with_ensure('absent')
++      should contain_ironic_config('DEFAULT/kombu_ssl_certfile').with_ensure('absent')
++      should contain_ironic_config('DEFAULT/kombu_ssl_keyfile').with_ensure('absent')
++      should contain_ironic_config('DEFAULT/kombu_ssl_version').with_value('TLSv1')
++    end
++  end
++
++  shared_examples_for 'with SSL disabled' do
++    before do
++      params.merge!(
++        :rabbit_use_ssl     => false,
++        :kombu_ssl_ca_certs => 'undef',
++        :kombu_ssl_certfile => 'undef',
++        :kombu_ssl_keyfile  => 'undef',
++        :kombu_ssl_version  => 'TLSv1'
++      )
++    end
++
++    it do
++      should contain_ironic_config('DEFAULT/rabbit_use_ssl').with_value('false')
++      should contain_ironic_config('DEFAULT/kombu_ssl_ca_certs').with_ensure('absent')
++      should contain_ironic_config('DEFAULT/kombu_ssl_certfile').with_ensure('absent')
++      should contain_ironic_config('DEFAULT/kombu_ssl_keyfile').with_ensure('absent')
++      should contain_ironic_config('DEFAULT/kombu_ssl_version').with_ensure('absent')
++    end
++  end
++
++
++  shared_examples_for 'with amqp_durable_queues disabled' do
++    it { should contain_ironic_config('DEFAULT/amqp_durable_queues').with_value(false) }
++  end
++
++  shared_examples_for 'with amqp_durable_queues enabled' do
++    before do
++      params.merge( :amqp_durable_queues => true )
++    end
++
++    it { should contain_ironic_config('DEFAULT/amqp_durable_queues').with_value(true) }
++  end
++
+   shared_examples_for 'with syslog disabled' do
+     it { should contain_ironic_config('DEFAULT/use_syslog').with_value(false) }
+   end
diff --git a/0012-Changing-the-default-value-of-fastpath_flood-to-enab.patch b/0012-Changing-the-default-value-of-fastpath_flood-to-enab.patch
new file mode 100644
index 0000000..0eff9ec
--- /dev/null
+++ b/0012-Changing-the-default-value-of-fastpath_flood-to-enab.patch
@@ -0,0 +1,79 @@
+From 54fddb2d9a834ab6655b4c0d3b8e93b23377fdb7 Mon Sep 17 00:00:00 2001
+From: Dulanjalie Ganegedara <ddhanapa at cisco.com>
+Date: Wed, 25 Feb 2015 08:43:17 -0800
+Subject: [PATCH] Changing the default value of fastpath_flood to enable
+
+Current default value of fastpath_flood in nexus1000v is set to disable.
+Cisco1000v handles broadcast floods and unknown pkts in fastpath(KLM) by default.
+Thus this variable need to be set to enale as the default.
+
+Change-Id: If18ba553b70a896f0d9e38113831445bf3a08cbe
+Closes-Bug: 1425589
+(cherry picked from commit c90b465001b82005f656cc8af08e87111c884089)
+---
+ neutron/manifests/agents/n1kv_vem.pp                 |  4 ++--
+ neutron/spec/classes/neutron_agents_n1kv_vem_spec.rb | 10 +++++-----
+ 2 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/neutron/manifests/agents/n1kv_vem.pp b/neutron/manifests/agents/n1kv_vem.pp
+index dc740c0..6366b41 100644
+--- a/neutron/manifests/agents/n1kv_vem.pp
++++ b/neutron/manifests/agents/n1kv_vem.pp
+@@ -97,7 +97,7 @@
+ #
+ # [*fastpath_flood*]
+ #   (optional) Handle broadcast floods and unknown pkts in fastpath(KLM)
+-#   Defaults to disable
++#   Defaults to enable
+ #
+ class neutron::agents::n1kv_vem (
+   $n1kv_vsm_ip          = '127.0.0.1',
+@@ -113,7 +113,7 @@ class neutron::agents::n1kv_vem (
+   $enable               = true,
+   $manage_service       = true,
+   $portdb               = 'ovs',
+-  $fastpath_flood       = 'disable'
++  $fastpath_flood       = 'enable'
+ ) {
+ 
+   include neutron::params
+diff --git a/neutron/spec/classes/neutron_agents_n1kv_vem_spec.rb b/neutron/spec/classes/neutron_agents_n1kv_vem_spec.rb
+index 4eeee17..68863ef 100644
+--- a/neutron/spec/classes/neutron_agents_n1kv_vem_spec.rb
++++ b/neutron/spec/classes/neutron_agents_n1kv_vem_spec.rb
+@@ -68,7 +68,7 @@ describe 'neutron::agents::n1kv_vem' do
+       :n1kv_vsm_domain_id => 900,
+       :host_mgmt_intf     => 'eth9',
+       :portdb             => 'ovs',
+-      :fastpath_flood     => 'disable'
++      :fastpath_flood     => 'enable'
+     }
+     end
+     it do
+@@ -87,7 +87,7 @@ describe 'neutron::agents::n1kv_vem' do
+       should contain_file('/etc/n1kv/n1kv.conf') \
+         .with_content(/^node-type compute/)
+       should contain_file('/etc/n1kv/n1kv.conf') \
+-        .with_content(/^fastpath-flood disable/)
++        .with_content(/^fastpath-flood enable/)
+     end
+   end
+ 
+@@ -122,14 +122,14 @@ describe 'neutron::agents::n1kv_vem' do
+   context 'verify fastpath_flood' do
+     let :params do
+     {
+-      :fastpath_flood     => 'enable',
++      :fastpath_flood     => 'disable',
+     }
+     end
+     it do
+       should contain_file('/etc/n1kv/n1kv.conf') \
+-        .with_content(/^fastpath-flood enable/)
++        .with_content(/^fastpath-flood disable/)
+       should contain_file('/etc/n1kv/n1kv.conf') \
+-        .without_content(/^fastpath-flood disable/)
++        .without_content(/^fastpath-flood enable/)
+     end
+   end
+ 
diff --git a/0012-Fix-rabbitmq-support.patch b/0012-Fix-rabbitmq-support.patch
deleted file mode 100644
index b363512..0000000
--- a/0012-Fix-rabbitmq-support.patch
+++ /dev/null
@@ -1,308 +0,0 @@
-From 1055239987472da2974fa5f6989cee09853faafb Mon Sep 17 00:00:00 2001
-From: Lukas Bezdicka <lbezdick at redhat.com>
-Date: Mon, 23 Feb 2015 15:00:31 +0100
-Subject: [PATCH] Fix rabbitmq support
-
-Ironic was missing SSL and amqp_durable_queues for
-rabbitmq.
-
-Change-Id: Iadc7ac8481d52d7764345d50b5d3ffd9bc31999f
----
- ironic/manifests/init.pp                | 112 ++++++++++++++++++++++++++++----
- ironic/spec/classes/ironic_init_spec.rb |  84 ++++++++++++++++++++++--
- 2 files changed, 179 insertions(+), 17 deletions(-)
-
-diff --git a/ironic/manifests/init.pp b/ironic/manifests/init.pp
-index 90cbe22..2df9f81 100644
---- a/ironic/manifests/init.pp
-+++ b/ironic/manifests/init.pp
-@@ -44,15 +44,62 @@
- # [*control_exchange*]
- #   (optional) What RPC queue/exchange to use
- #   Defaults to openstack
--
-+#
- # [*rpc_backend*]
- #   (optional) what rpc/queuing service to use
- #   Defaults to impl_kombu (rabbitmq)
- #
--# [*rabbit_password*]
- # [*rabbit_host*]
-+#   (Optional) IP or hostname of the rabbit server.
-+#   Defaults to 'localhost'
-+#
- # [*rabbit_port*]
--# [*rabbit_user*]
-+#   (Optional) Port of the rabbit server.
-+#   Defaults to 5672.
-+#
-+# [*rabbit_hosts*]
-+#   (Optional) Array of host:port (used with HA queues).
-+#   If defined, will remove rabbit_host & rabbit_port parameters from config
-+#   Defaults to undef.
-+#
-+# [*rabbit_userid*]
-+#   (Optional) User to connect to the rabbit server.
-+#   Defaults to 'guest'
-+#
-+# [*rabbit_password*]
-+#   (Optional) Password to connect to the rabbit_server.
-+#   Defaults to empty.
-+#
-+# [*rabbit_virtual_host*]
-+#   (Optional) Virtual_host to use.
-+#   Defaults to '/'
-+#
-+# [*rabbit_use_ssl*]
-+#   (optional) Connect over SSL for RabbitMQ
-+#   Defaults to false
-+#
-+# [*kombu_ssl_ca_certs*]
-+#   (optional) SSL certification authority file (valid only if SSL enabled).
-+#   Defaults to undef
-+#
-+# [*kombu_ssl_certfile*]
-+#   (optional) SSL cert file (valid only if SSL enabled).
-+#   Defaults to undef
-+#
-+# [*kombu_ssl_keyfile*]
-+#   (optional) SSL key file (valid only if SSL enabled).
-+#   Defaults to undef
-+#
-+# [*kombu_ssl_version*]
-+#   (optional) SSL version to use (valid only if SSL enabled).
-+#   Valid values are TLSv1, SSLv23 and SSLv3. SSLv2 may be
-+#   available on some distributions.
-+#   Defaults to 'TLSv1'
-+#
-+# [*amqp_durable_queues*]
-+#   Use durable queues in amqp.
-+#   (Optional) Defaults to false.
-+#
- # [*rabbit_virtual_host*]
- #   (optional) Various rabbitmq settings
- #
-@@ -123,12 +170,20 @@ class ironic (
-   $auth_strategy               = 'keystone',
-   $control_exchange            = 'openstack',
-   $rpc_backend                 = 'ironic.openstack.common.rpc.impl_kombu',
--  $rabbit_password             = false,
-+  $rabbit_hosts                = false,
-+  $rabbit_virtual_host         = '/',
-   $rabbit_host                 = 'localhost',
-+  $rabbit_port                 = 5672,
-   $rabbit_hosts                = false,
--  $rabbit_port                 = '5672',
--  $rabbit_user                 = 'guest',
-   $rabbit_virtual_host         = '/',
-+  $rabbit_userid               = 'guest',
-+  $rabbit_password             = false,
-+  $rabbit_use_ssl              = false,
-+  $kombu_ssl_ca_certs          = undef,
-+  $kombu_ssl_certfile          = undef,
-+  $kombu_ssl_keyfile           = undef,
-+  $kombu_ssl_version           = 'TLSv1',
-+  $amqp_durable_queues         = false,
-   $qpid_hostname               = 'localhost',
-   $qpid_port                   = '5672',
-   $qpid_username               = 'guest',
-@@ -219,7 +274,6 @@ class ironic (
-     'DEFAULT/verbose':                 value => $verbose;
-     'DEFAULT/debug':                   value => $debug;
-     'DEFAULT/auth_strategy':           value => $auth_strategy;
--    'DEFAULT/control_exchange':        value => $control_exchange;
-     'DEFAULT/rpc_backend':             value => $rpc_backend;
-     'database/connection':             value => $database_connection, secret => true;
-     'database/idle_timeout':           value => $database_idle_timeout;
-@@ -240,12 +294,25 @@ class ironic (
-   }
- 
-   if $rpc_backend == 'ironic.openstack.common.rpc.impl_kombu' {
-+
-     if ! $rabbit_password {
-       fail('When rpc_backend is rabbitmq, you must set rabbit password')
-     }
-+
-+    ironic_config {
-+      'DEFAULT/rabbit_userid':       value => $rabbit_userid;
-+      'DEFAULT/rabbit_password':     value => $rabbit_password, secret => true;
-+      'DEFAULT/rabbit_virtual_host': value => $rabbit_virtual_host;
-+      'DEFAULT/rabbit_use_ssl':      value => $rabbit_use_ssl;
-+      'DEFAULT/control_exchange':    value => $control_exchange;
-+      'DEFAULT/amqp_durable_queues': value => $amqp_durable_queues;
-+    }
-+
-     if $rabbit_hosts {
-       ironic_config { 'DEFAULT/rabbit_hosts':     value  => join($rabbit_hosts, ',') }
-       ironic_config { 'DEFAULT/rabbit_ha_queues': value  => true }
-+      ironic_config { 'DEFAULT/rabbit_host':      ensure => absent }
-+      ironic_config { 'DEFAULT/rabbit_port':      ensure => absent }
-     } else  {
-       ironic_config { 'DEFAULT/rabbit_host':      value => $rabbit_host }
-       ironic_config { 'DEFAULT/rabbit_port':      value => $rabbit_port }
-@@ -253,10 +320,33 @@ class ironic (
-       ironic_config { 'DEFAULT/rabbit_ha_queues': value => false }
-     }
- 
--    ironic_config {
--      'DEFAULT/rabbit_userid':       value => $rabbit_user;
--      'DEFAULT/rabbit_password':     value => $rabbit_password, secret => true;
--      'DEFAULT/rabbit_virtual_host': value => $rabbit_virtual_host;
-+    if $rabbit_use_ssl {
-+      ironic_config { 'DEFAULT/kombu_ssl_version': value => $kombu_ssl_version }
-+
-+      if $kombu_ssl_ca_certs {
-+        ironic_config { 'DEFAULT/kombu_ssl_ca_certs': value => $kombu_ssl_ca_certs }
-+      } else {
-+        ironic_config { 'DEFAULT/kombu_ssl_ca_certs': ensure => absent}
-+      }
-+
-+      if $kombu_ssl_certfile {
-+        ironic_config { 'DEFAULT/kombu_ssl_certfile': value => $kombu_ssl_certfile }
-+      } else {
-+        ironic_config { 'DEFAULT/kombu_ssl_certfile': ensure => absent}
-+      }
-+
-+      if $kombu_ssl_keyfile {
-+        ironic_config { 'DEFAULT/kombu_ssl_keyfile': value => $kombu_ssl_keyfile }
-+      } else {
-+        ironic_config { 'DEFAULT/kombu_ssl_keyfile': ensure => absent}
-+      }
-+    } else {
-+      ironic_config {
-+        'DEFAULT/kombu_ssl_ca_certs': ensure => absent;
-+        'DEFAULT/kombu_ssl_certfile': ensure => absent;
-+        'DEFAULT/kombu_ssl_keyfile':  ensure => absent;
-+        'DEFAULT/kombu_ssl_version':  ensure => absent;
-+      }
-     }
-   }
- 
-diff --git a/ironic/spec/classes/ironic_init_spec.rb b/ironic/spec/classes/ironic_init_spec.rb
-index 5c2f6ee..4aeea8f 100644
---- a/ironic/spec/classes/ironic_init_spec.rb
-+++ b/ironic/spec/classes/ironic_init_spec.rb
-@@ -29,7 +29,7 @@ describe 'ironic' do
-       :rabbit_host                 => '127.0.0.1',
-       :rabbit_port                 => 5672,
-       :rabbit_hosts                => false,
--      :rabbit_user                 => 'guest',
-+      :rabbit_userid               => 'guest',
-       :rabbit_password             => 'guest',
-       :rabbit_virtual_host         => '/',
-       :database_connection         => 'sqlite:////var/lib/ironic/ironic.sqlite',
-@@ -46,6 +46,9 @@ describe 'ironic' do
- 
-     context 'and if rabbit_host parameter is provided' do
-       it_configures 'a ironic base installation'
-+      it_configures 'with SSL disabled'
-+      it_configures 'with SSL enabled without kombu'
-+      it_configures 'with SSL enabled with kombu'
-     end
- 
-     context 'and if rabbit_hosts parameter is provided' do
-@@ -123,7 +126,7 @@ describe 'ironic' do
-     end
- 
-     it 'configures credentials for rabbit' do
--      should contain_ironic_config('DEFAULT/rabbit_userid').with_value( params[:rabbit_user] )
-+      should contain_ironic_config('DEFAULT/rabbit_userid').with_value( params[:rabbit_userid] )
-       should contain_ironic_config('DEFAULT/rabbit_password').with_value( params[:rabbit_password] )
-       should contain_ironic_config('DEFAULT/rabbit_virtual_host').with_value( params[:rabbit_virtual_host] )
-       should contain_ironic_config('DEFAULT/rabbit_password').with_secret( true )
-@@ -150,8 +153,8 @@ describe 'ironic' do
- 
-   shared_examples_for 'rabbit HA with a single virtual host' do
-     it 'in ironic.conf' do
--      should_not contain_ironic_config('DEFAULT/rabbit_host')
--      should_not contain_ironic_config('DEFAULT/rabbit_port')
-+      should contain_ironic_config('DEFAULT/rabbit_host').with_ensure('absent')
-+      should contain_ironic_config('DEFAULT/rabbit_port').with_ensure('absent')
-       should contain_ironic_config('DEFAULT/rabbit_hosts').with_value( params[:rabbit_hosts] )
-       should contain_ironic_config('DEFAULT/rabbit_ha_queues').with_value(true)
-     end
-@@ -159,13 +162,82 @@ describe 'ironic' do
- 
-   shared_examples_for 'rabbit HA with multiple hosts' do
-     it 'in ironic.conf' do
--      should_not contain_ironic_config('DEFAULT/rabbit_host')
--      should_not contain_ironic_config('DEFAULT/rabbit_port')
-+      should contain_ironic_config('DEFAULT/rabbit_host').with_ensure('absent')
-+      should contain_ironic_config('DEFAULT/rabbit_port').with_ensure('absent')
-       should contain_ironic_config('DEFAULT/rabbit_hosts').with_value( params[:rabbit_hosts].join(',') )
-       should contain_ironic_config('DEFAULT/rabbit_ha_queues').with_value(true)
-     end
-   end
- 
-+  shared_examples_for 'with SSL enabled with kombu' do
-+    before do
-+      params.merge!(
-+        :rabbit_use_ssl     => true,
-+        :kombu_ssl_ca_certs => '/path/to/ssl/ca/certs',
-+        :kombu_ssl_certfile => '/path/to/ssl/cert/file',
-+        :kombu_ssl_keyfile  => '/path/to/ssl/keyfile',
-+        :kombu_ssl_version  => 'TLSv1'
-+      )
-+    end
-+
-+    it do
-+      should contain_ironic_config('DEFAULT/rabbit_use_ssl').with_value('true')
-+      should contain_ironic_config('DEFAULT/kombu_ssl_ca_certs').with_value('/path/to/ssl/ca/certs')
-+      should contain_ironic_config('DEFAULT/kombu_ssl_certfile').with_value('/path/to/ssl/cert/file')
-+      should contain_ironic_config('DEFAULT/kombu_ssl_keyfile').with_value('/path/to/ssl/keyfile')
-+      should contain_ironic_config('DEFAULT/kombu_ssl_version').with_value('TLSv1')
-+    end
-+  end
-+
-+  shared_examples_for 'with SSL enabled without kombu' do
-+    before do
-+      params.merge!(
-+        :rabbit_use_ssl     => true,
-+      )
-+    end
-+
-+    it do
-+      should contain_ironic_config('DEFAULT/rabbit_use_ssl').with_value('true')
-+      should contain_ironic_config('DEFAULT/kombu_ssl_ca_certs').with_ensure('absent')
-+      should contain_ironic_config('DEFAULT/kombu_ssl_certfile').with_ensure('absent')
-+      should contain_ironic_config('DEFAULT/kombu_ssl_keyfile').with_ensure('absent')
-+      should contain_ironic_config('DEFAULT/kombu_ssl_version').with_value('TLSv1')
-+    end
-+  end
-+
-+  shared_examples_for 'with SSL disabled' do
-+    before do
-+      params.merge!(
-+        :rabbit_use_ssl     => false,
-+        :kombu_ssl_ca_certs => 'undef',
-+        :kombu_ssl_certfile => 'undef',
-+        :kombu_ssl_keyfile  => 'undef',
-+        :kombu_ssl_version  => 'TLSv1'
-+      )
-+    end
-+
-+    it do
-+      should contain_ironic_config('DEFAULT/rabbit_use_ssl').with_value('false')
-+      should contain_ironic_config('DEFAULT/kombu_ssl_ca_certs').with_ensure('absent')
-+      should contain_ironic_config('DEFAULT/kombu_ssl_certfile').with_ensure('absent')
-+      should contain_ironic_config('DEFAULT/kombu_ssl_keyfile').with_ensure('absent')
-+      should contain_ironic_config('DEFAULT/kombu_ssl_version').with_ensure('absent')
-+    end
-+  end
-+
-+
-+  shared_examples_for 'with amqp_durable_queues disabled' do
-+    it { should contain_ironic_config('DEFAULT/amqp_durable_queues').with_value(false) }
-+  end
-+
-+  shared_examples_for 'with amqp_durable_queues enabled' do
-+    before do
-+      params.merge( :amqp_durable_queues => true )
-+    end
-+
-+    it { should contain_ironic_config('DEFAULT/amqp_durable_queues').with_value(true) }
-+  end
-+
-   shared_examples_for 'with syslog disabled' do
-     it { should contain_ironic_config('DEFAULT/use_syslog').with_value(false) }
-   end
diff --git a/0013-Changing-the-default-value-of-fastpath_flood-to-enab.patch b/0013-Changing-the-default-value-of-fastpath_flood-to-enab.patch
deleted file mode 100644
index 93899c0..0000000
--- a/0013-Changing-the-default-value-of-fastpath_flood-to-enab.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From db640aca13015c3c2f28d71602a0f915ae31e7bf Mon Sep 17 00:00:00 2001
-From: Dulanjalie Ganegedara <ddhanapa at cisco.com>
-Date: Wed, 25 Feb 2015 08:43:17 -0800
-Subject: [PATCH] Changing the default value of fastpath_flood to enable
-
-Current default value of fastpath_flood in nexus1000v is set to disable.
-Cisco1000v handles broadcast floods and unknown pkts in fastpath(KLM) by default.
-Thus this variable need to be set to enale as the default.
-
-Change-Id: If18ba553b70a896f0d9e38113831445bf3a08cbe
-Closes-Bug: 1425589
-(cherry picked from commit c90b465001b82005f656cc8af08e87111c884089)
----
- neutron/manifests/agents/n1kv_vem.pp                 |  4 ++--
- neutron/spec/classes/neutron_agents_n1kv_vem_spec.rb | 10 +++++-----
- 2 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/neutron/manifests/agents/n1kv_vem.pp b/neutron/manifests/agents/n1kv_vem.pp
-index dc740c0..6366b41 100644
---- a/neutron/manifests/agents/n1kv_vem.pp
-+++ b/neutron/manifests/agents/n1kv_vem.pp
-@@ -97,7 +97,7 @@
- #
- # [*fastpath_flood*]
- #   (optional) Handle broadcast floods and unknown pkts in fastpath(KLM)
--#   Defaults to disable
-+#   Defaults to enable
- #
- class neutron::agents::n1kv_vem (
-   $n1kv_vsm_ip          = '127.0.0.1',
-@@ -113,7 +113,7 @@ class neutron::agents::n1kv_vem (
-   $enable               = true,
-   $manage_service       = true,
-   $portdb               = 'ovs',
--  $fastpath_flood       = 'disable'
-+  $fastpath_flood       = 'enable'
- ) {
- 
-   include neutron::params
-diff --git a/neutron/spec/classes/neutron_agents_n1kv_vem_spec.rb b/neutron/spec/classes/neutron_agents_n1kv_vem_spec.rb
-index 4eeee17..68863ef 100644
---- a/neutron/spec/classes/neutron_agents_n1kv_vem_spec.rb
-+++ b/neutron/spec/classes/neutron_agents_n1kv_vem_spec.rb
-@@ -68,7 +68,7 @@ describe 'neutron::agents::n1kv_vem' do
-       :n1kv_vsm_domain_id => 900,
-       :host_mgmt_intf     => 'eth9',
-       :portdb             => 'ovs',
--      :fastpath_flood     => 'disable'
-+      :fastpath_flood     => 'enable'
-     }
-     end
-     it do
-@@ -87,7 +87,7 @@ describe 'neutron::agents::n1kv_vem' do
-       should contain_file('/etc/n1kv/n1kv.conf') \
-         .with_content(/^node-type compute/)
-       should contain_file('/etc/n1kv/n1kv.conf') \
--        .with_content(/^fastpath-flood disable/)
-+        .with_content(/^fastpath-flood enable/)
-     end
-   end
- 
-@@ -122,14 +122,14 @@ describe 'neutron::agents::n1kv_vem' do
-   context 'verify fastpath_flood' do
-     let :params do
-     {
--      :fastpath_flood     => 'enable',
-+      :fastpath_flood     => 'disable',
-     }
-     end
-     it do
-       should contain_file('/etc/n1kv/n1kv.conf') \
--        .with_content(/^fastpath-flood enable/)
-+        .with_content(/^fastpath-flood disable/)
-       should contain_file('/etc/n1kv/n1kv.conf') \
--        .without_content(/^fastpath-flood disable/)
-+        .without_content(/^fastpath-flood enable/)
-     end
-   end
- 
diff --git a/0013-move-setting-of-novncproxy_base_url.patch b/0013-move-setting-of-novncproxy_base_url.patch
new file mode 100644
index 0000000..d3a47fc
--- /dev/null
+++ b/0013-move-setting-of-novncproxy_base_url.patch
@@ -0,0 +1,175 @@
+From 1ccaf89db5fddd14afe16c443040512557c79dfa Mon Sep 17 00:00:00 2001
+From: Lars Kellogg-Stedman <lars at redhat.com>
+Date: Fri, 27 Mar 2015 22:44:57 -0400
+Subject: [PATCH] move setting of novncproxy_base_url
+
+The fixes introduced in order to resolve
+https://bugs.launchpad.net/nova/+bug/1409142 (CVE-2015-0259) make
+novncproxy_base_url relevant on hosts running the nova-novncproxy
+service, whereas previously it was only used by nova-compute to
+construct VNC console urls.
+
+This change moves the setting of the novncproxy_base_url option out of
+compute.pp and into nova::vncproxy_common, where it can be used both
+by compute.pp and vncproxy.pp.
+
+Change-Id: I7af4cf8257f2bdbc7d3cc57930fd6371571db531
+
+Conflicts:
+	nova/spec/classes/nova_vnc_proxy_spec.rb
+---
+ nova/manifests/compute.pp                | 10 ++----
+ nova/manifests/vncproxy.pp               | 25 ++++++++++-----
+ nova/manifests/vncproxy/common.pp        | 54 ++++++++++++++++++++++++++++++++
+ nova/spec/classes/nova_vnc_proxy_spec.rb |  1 +
+ 4 files changed, 75 insertions(+), 15 deletions(-)
+ create mode 100644 nova/manifests/vncproxy/common.pp
+
+diff --git a/nova/manifests/compute.pp b/nova/manifests/compute.pp
+index d4eb0f6..6694032 100644
+--- a/nova/manifests/compute.pp
++++ b/nova/manifests/compute.pp
+@@ -38,7 +38,7 @@
+ #
+ # [*vncproxy_path*]
+ #   (optional) The path at the end of the uri for communication with the VNC proxy server
+-#   Defaults to './vnc_auto.html'
++#   Defaults to '/vnc_auto.html'
+ #
+ # [*vnc_keymap*]
+ #   (optional) The keymap to use with VNC (ls -alh /usr/share/qemu/keymaps to list available keymaps)
+@@ -121,13 +121,7 @@ class nova::compute (
+   }
+ 
+   if ($vnc_enabled) {
+-    if ($vncproxy_host) {
+-      $vncproxy_base_url = "${vncproxy_protocol}://${vncproxy_host}:${vncproxy_port}${vncproxy_path}"
+-      # config for vnc proxy
+-      nova_config {
+-        'DEFAULT/novncproxy_base_url': value => $vncproxy_base_url;
+-      }
+-    }
++    include ::nova::vncproxy::common
+   }
+ 
+   nova_config {
+diff --git a/nova/manifests/vncproxy.pp b/nova/manifests/vncproxy.pp
+index b131aac..f2ae993 100644
+--- a/nova/manifests/vncproxy.pp
++++ b/nova/manifests/vncproxy.pp
+@@ -24,18 +24,27 @@
+ #   (optional) The state of the nova-novncproxy package
+ #   Defaults to 'present'
+ #
++# [*vncproxy_protocol*]
++#   (optional) The protocol to communicate with the VNC proxy server
++#   Defaults to 'http'
++#
++# [*vncproxy_path*]
++#   (optional) The path at the end of the uri for communication with the VNC
++#   proxy server
++#   Defaults to '/vnc_auto.html'
++#
+ class nova::vncproxy(
+-  $enabled        = false,
+-  $manage_service = true,
+-  $host           = '0.0.0.0',
+-  $port           = '6080',
+-  $ensure_package = 'present'
++  $enabled           = false,
++  $manage_service    = true,
++  $vncproxy_protocol = 'http',
++  $host              = '0.0.0.0',
++  $port              = '6080',
++  $vncproxy_path     = '/vnc_auto.html',
++  $ensure_package    = 'present'
+ ) {
+ 
+   include nova::params
+ 
+-  # TODO make this work on Fedora
+-
+   # See http://nova.openstack.org/runnova/vncconsole.html for more details.
+ 
+   nova_config {
+@@ -43,6 +52,8 @@ class nova::vncproxy(
+     'DEFAULT/novncproxy_port': value => $port;
+   }
+ 
++  include ::nova::vncproxy::common
++
+   if ! defined(Package['python-numpy']) {
+     package { 'python-numpy':
+       ensure => present,
+diff --git a/nova/manifests/vncproxy/common.pp b/nova/manifests/vncproxy/common.pp
+new file mode 100644
+index 0000000..15b4633
+--- /dev/null
++++ b/nova/manifests/vncproxy/common.pp
+@@ -0,0 +1,54 @@
++# == Class: nova::vncproxy::common
++#
++# [*vncproxy_host*]
++#   (optional) The host of the VNC proxy server
++#   Defaults to false
++#
++# [*vncproxy_protocol*]
++#   (optional) The protocol to communicate with the VNC proxy server
++#   Defaults to 'http'
++#
++# [*vncproxy_port*]
++#   (optional) The port to communicate with the VNC proxy server
++#   Defaults to '6080'
++#
++# [*vncproxy_path*]
++#   (optional) The path at the end of the uri for communication with the VNC proxy server
++#   Defaults to '/vnc_auto.html'
++#
++class nova::vncproxy::common (
++  $vncproxy_host     = undef,
++  $vncproxy_protocol = undef,
++  $vncproxy_port     = undef,
++  $vncproxy_path     = undef,
++) {
++
++  $vncproxy_host_real     = pick(
++    $vncproxy_host,
++    $::nova::compute::vncproxy_host,
++    $::nova::vncproxy::host,
++    false)
++  $vncproxy_protocol_real = pick(
++    $vncproxy_protocol,
++    $::nova::compute::vncproxy_protocol,
++    $::nova::vncproxy::vncproxy_protocol,
++    'http')
++  $vncproxy_port_real     = pick(
++    $vncproxy_port,
++    $::nova::compute::vncproxy_port,
++    $::nova::vncproxy::port,
++    6080)
++  $vncproxy_path_real     = pick(
++    $vncproxy_path,
++    $::nova::compute::vncproxy_path,
++    $::nova::vncproxy::vncproxy_path,
++    '/vnc_auto.html')
++
++  if ($vncproxy_host_real) {
++    $vncproxy_base_url = "${vncproxy_protocol_real}://${vncproxy_host_real}:${vncproxy_port_real}${vncproxy_path_real}"
++    # config for vnc proxy
++    nova_config {
++      'DEFAULT/novncproxy_base_url': value => $vncproxy_base_url;
++    }
++  }
++}
+diff --git a/nova/spec/classes/nova_vnc_proxy_spec.rb b/nova/spec/classes/nova_vnc_proxy_spec.rb
+index b96415b..0b12686 100644
+--- a/nova/spec/classes/nova_vnc_proxy_spec.rb
++++ b/nova/spec/classes/nova_vnc_proxy_spec.rb
+@@ -22,6 +22,7 @@ describe 'nova::vncproxy' do
+ 
+     it { should contain_nova_config('DEFAULT/novncproxy_host').with(:value => '0.0.0.0') }
+     it { should contain_nova_config('DEFAULT/novncproxy_port').with(:value => '6080') }
++    it { should contain_nova_config('DEFAULT/novncproxy_base_url').with(:value => 'http://0.0.0.0:6080/vnc_auto.html') }
+ 
+     it { should contain_package('nova-vncproxy').with(
+       :name   => 'nova-novncproxy',
diff --git a/0014-move-setting-of-novncproxy_base_url.patch b/0014-move-setting-of-novncproxy_base_url.patch
deleted file mode 100644
index 2a8a1ab..0000000
--- a/0014-move-setting-of-novncproxy_base_url.patch
+++ /dev/null
@@ -1,175 +0,0 @@
-From 50eb58255cbb8509e15f04fb41af34bb2c79efe0 Mon Sep 17 00:00:00 2001
-From: Lars Kellogg-Stedman <lars at redhat.com>
-Date: Fri, 27 Mar 2015 22:44:57 -0400
-Subject: [PATCH] move setting of novncproxy_base_url
-
-The fixes introduced in order to resolve
-https://bugs.launchpad.net/nova/+bug/1409142 (CVE-2015-0259) make
-novncproxy_base_url relevant on hosts running the nova-novncproxy
-service, whereas previously it was only used by nova-compute to
-construct VNC console urls.
-
-This change moves the setting of the novncproxy_base_url option out of
-compute.pp and into nova::vncproxy_common, where it can be used both
-by compute.pp and vncproxy.pp.
-
-Change-Id: I7af4cf8257f2bdbc7d3cc57930fd6371571db531
-
-Conflicts:
-	nova/spec/classes/nova_vnc_proxy_spec.rb
----
- nova/manifests/compute.pp                | 10 ++----
- nova/manifests/vncproxy.pp               | 25 ++++++++++-----
- nova/manifests/vncproxy/common.pp        | 54 ++++++++++++++++++++++++++++++++
- nova/spec/classes/nova_vnc_proxy_spec.rb |  1 +
- 4 files changed, 75 insertions(+), 15 deletions(-)
- create mode 100644 nova/manifests/vncproxy/common.pp
-
-diff --git a/nova/manifests/compute.pp b/nova/manifests/compute.pp
-index d4eb0f6..6694032 100644
---- a/nova/manifests/compute.pp
-+++ b/nova/manifests/compute.pp
-@@ -38,7 +38,7 @@
- #
- # [*vncproxy_path*]
- #   (optional) The path at the end of the uri for communication with the VNC proxy server
--#   Defaults to './vnc_auto.html'
-+#   Defaults to '/vnc_auto.html'
- #
- # [*vnc_keymap*]
- #   (optional) The keymap to use with VNC (ls -alh /usr/share/qemu/keymaps to list available keymaps)
-@@ -121,13 +121,7 @@ class nova::compute (
-   }
- 
-   if ($vnc_enabled) {
--    if ($vncproxy_host) {
--      $vncproxy_base_url = "${vncproxy_protocol}://${vncproxy_host}:${vncproxy_port}${vncproxy_path}"
--      # config for vnc proxy
--      nova_config {
--        'DEFAULT/novncproxy_base_url': value => $vncproxy_base_url;
--      }
--    }
-+    include ::nova::vncproxy::common
-   }
- 
-   nova_config {
-diff --git a/nova/manifests/vncproxy.pp b/nova/manifests/vncproxy.pp
-index b131aac..f2ae993 100644
---- a/nova/manifests/vncproxy.pp
-+++ b/nova/manifests/vncproxy.pp
-@@ -24,18 +24,27 @@
- #   (optional) The state of the nova-novncproxy package
- #   Defaults to 'present'
- #
-+# [*vncproxy_protocol*]
-+#   (optional) The protocol to communicate with the VNC proxy server
-+#   Defaults to 'http'
-+#
-+# [*vncproxy_path*]
-+#   (optional) The path at the end of the uri for communication with the VNC
-+#   proxy server
-+#   Defaults to '/vnc_auto.html'
-+#
- class nova::vncproxy(
--  $enabled        = false,
--  $manage_service = true,
--  $host           = '0.0.0.0',
--  $port           = '6080',
--  $ensure_package = 'present'
-+  $enabled           = false,
-+  $manage_service    = true,
-+  $vncproxy_protocol = 'http',
-+  $host              = '0.0.0.0',
-+  $port              = '6080',
-+  $vncproxy_path     = '/vnc_auto.html',
-+  $ensure_package    = 'present'
- ) {
- 
-   include nova::params
- 
--  # TODO make this work on Fedora
--
-   # See http://nova.openstack.org/runnova/vncconsole.html for more details.
- 
-   nova_config {
-@@ -43,6 +52,8 @@ class nova::vncproxy(
-     'DEFAULT/novncproxy_port': value => $port;
-   }
- 
-+  include ::nova::vncproxy::common
-+
-   if ! defined(Package['python-numpy']) {
-     package { 'python-numpy':
-       ensure => present,
-diff --git a/nova/manifests/vncproxy/common.pp b/nova/manifests/vncproxy/common.pp
-new file mode 100644
-index 0000000..15b4633
---- /dev/null
-+++ b/nova/manifests/vncproxy/common.pp
-@@ -0,0 +1,54 @@
-+# == Class: nova::vncproxy::common
-+#
-+# [*vncproxy_host*]
-+#   (optional) The host of the VNC proxy server
-+#   Defaults to false
-+#
-+# [*vncproxy_protocol*]
-+#   (optional) The protocol to communicate with the VNC proxy server
-+#   Defaults to 'http'
-+#
-+# [*vncproxy_port*]
-+#   (optional) The port to communicate with the VNC proxy server
-+#   Defaults to '6080'
-+#
-+# [*vncproxy_path*]
-+#   (optional) The path at the end of the uri for communication with the VNC proxy server
-+#   Defaults to '/vnc_auto.html'
-+#
-+class nova::vncproxy::common (
-+  $vncproxy_host     = undef,
-+  $vncproxy_protocol = undef,
-+  $vncproxy_port     = undef,
-+  $vncproxy_path     = undef,
-+) {
-+
-+  $vncproxy_host_real     = pick(
-+    $vncproxy_host,
-+    $::nova::compute::vncproxy_host,
-+    $::nova::vncproxy::host,
-+    false)
-+  $vncproxy_protocol_real = pick(
-+    $vncproxy_protocol,
-+    $::nova::compute::vncproxy_protocol,
-+    $::nova::vncproxy::vncproxy_protocol,
-+    'http')
-+  $vncproxy_port_real     = pick(
-+    $vncproxy_port,
-+    $::nova::compute::vncproxy_port,
-+    $::nova::vncproxy::port,
-+    6080)
-+  $vncproxy_path_real     = pick(
-+    $vncproxy_path,
-+    $::nova::compute::vncproxy_path,
-+    $::nova::vncproxy::vncproxy_path,
-+    '/vnc_auto.html')
-+
-+  if ($vncproxy_host_real) {
-+    $vncproxy_base_url = "${vncproxy_protocol_real}://${vncproxy_host_real}:${vncproxy_port_real}${vncproxy_path_real}"
-+    # config for vnc proxy
-+    nova_config {
-+      'DEFAULT/novncproxy_base_url': value => $vncproxy_base_url;
-+    }
-+  }
-+}
-diff --git a/nova/spec/classes/nova_vnc_proxy_spec.rb b/nova/spec/classes/nova_vnc_proxy_spec.rb
-index b96415b..0b12686 100644
---- a/nova/spec/classes/nova_vnc_proxy_spec.rb
-+++ b/nova/spec/classes/nova_vnc_proxy_spec.rb
-@@ -22,6 +22,7 @@ describe 'nova::vncproxy' do
- 
-     it { should contain_nova_config('DEFAULT/novncproxy_host').with(:value => '0.0.0.0') }
-     it { should contain_nova_config('DEFAULT/novncproxy_port').with(:value => '6080') }
-+    it { should contain_nova_config('DEFAULT/novncproxy_base_url').with(:value => 'http://0.0.0.0:6080/vnc_auto.html') }
- 
-     it { should contain_package('nova-vncproxy').with(
-       :name   => 'nova-novncproxy',
diff --git a/openstack-puppet-modules.spec b/openstack-puppet-modules.spec
index beecaef..401a28c 100644
--- a/openstack-puppet-modules.spec
+++ b/openstack-puppet-modules.spec
@@ -1,6 +1,6 @@
 
 Name:           openstack-puppet-modules
-Version:        2014.2.14
+Version:        2014.2.15
 Release:        1%{?dist}
 Summary:        Collection of Puppet modules for OpenStack deployment
 License:        ASL 2.0 and GPLv2 and GPLv3
@@ -13,16 +13,15 @@ Patch0001: 0001-horizon-Change-default-documentation-URL.patch
 Patch0002: 0002-rabbitmq-Don-t-manage-RabbitMQ-repos.patch
 Patch0003: 0003-openstack-Set-default-charset-to-utf8.patch
 Patch0004: 0004-keystone-Add-manage_service-feature.patch
-Patch0005: 0005-Add-manage_service-feature.patch
-Patch0006: 0006-Fix-against-mongodb-2.6.5-from-epel.patch
-Patch0007: 0007-Fix-support-for-Fedora-Rawhide.patch
-Patch0008: 0008-Adds-filtering-for-BONDING-LACP.patch
-Patch0009: 0009-JSON-was-invalid.patch
-Patch0010: 0010-Set-control_exchange-in-the-main-config-file.patch
-Patch0011: 0011-Configure-OVS-mechanism-agent-configs-in-its-config-.patch
-Patch0012: 0012-Fix-rabbitmq-support.patch
-Patch0013: 0013-Changing-the-default-value-of-fastpath_flood-to-enab.patch
-Patch0014: 0014-move-setting-of-novncproxy_base_url.patch
+Patch0005: 0005-Fix-against-mongodb-2.6.5-from-epel.patch
+Patch0006: 0006-Fix-support-for-Fedora-Rawhide.patch
+Patch0007: 0007-Adds-filtering-for-BONDING-LACP.patch
+Patch0008: 0008-JSON-was-invalid.patch
+Patch0009: 0009-Set-control_exchange-in-the-main-config-file.patch
+Patch0010: 0010-Configure-OVS-mechanism-agent-configs-in-its-config-.patch
+Patch0011: 0011-Fix-rabbitmq-support.patch
+Patch0012: 0012-Changing-the-default-value-of-fastpath_flood-to-enab.patch
+Patch0013: 0013-move-setting-of-novncproxy_base_url.patch
 
 BuildArch:      noarch
 Requires:       rubygem-json
@@ -48,7 +47,6 @@ OpenStack via installers using Puppet configuration tool.
 %patch0011 -p1
 %patch0012 -p1
 %patch0013 -p1
-%patch0014 -p1
 
 find %{_builddir}/%{name}-%{version}/ -type f -name ".*" -exec rm {} +
 find %{_builddir}/%{name}-%{version}/ -size 0 -exec rm {} +
@@ -122,6 +120,9 @@ rm -f %{buildroot}/%{_datadir}/openstack-puppet/modules/nova/files/nova-novncpro
 
 
 %changelog
+* Wed Apr 15 2015 Ivan Chavero <ichavero at redhat.com> 2014.2.15-1
+- Update to upstream 2014.2.15
+
 * Thu Apr 02 2015 Lukas Bezdicka <lbezdick at redhat.com> 2014.2.14-1
 - Update to upstream 2014.2.14
 - apache       1417312b493ea79f88f22cc8b961d8db08cb9273
diff --git a/sources b/sources
index 731cbe4..d124e64 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-ca27dd2f20714deaf86b1e10c29fb73b  2014.2.14.tar.gz
+79cf9124d39820d5002334848f58bb2b  2014.2.15.tar.gz
-- 
cgit v0.10.2


	http://pkgs.fedoraproject.org/cgit/openstack-puppet-modules.git/commit/?h=f22&id=98a8af6c368ee6284b372d07e47f32487a6d1763


More information about the scm-commits mailing list