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