From 9d592f61e4529795d51c481d0a33c86c84c0b6af Mon Sep 17 00:00:00 2001 From: Lukas Bezdicka Date: Mon, 2 Jun 2014 16:47:56 +0200 Subject: [PATCH] Add swift::proxy::crossdomain class Change-Id: Ie7e5dfc3732ad552063293f16aa04a791bc5add8 swift::proxy::crossdomain class is used to configure crossdomain middleware. --- manifests/proxy/crossdomain.pp | 25 ++++++++++ spec/classes/swift_proxy_crossdomain_spec.rb | 51 ++++++++++++++++++++ templates/proxy/crossdomain.conf.erb | 4 ++ 3 files changed, 80 insertions(+) create mode 100644 manifests/proxy/crossdomain.pp create mode 100644 spec/classes/swift_proxy_crossdomain_spec.rb create mode 100644 templates/proxy/crossdomain.conf.erb diff --git a/manifests/proxy/crossdomain.pp b/manifests/proxy/crossdomain.pp new file mode 100644 index 00000000..d01d99fc --- /dev/null +++ b/manifests/proxy/crossdomain.pp @@ -0,0 +1,25 @@ +# +# Configure swift crossdomain. +# +# == Examples +# +# include swift::proxy::crossdomain +# +# == Parameters +# +# [*cross_domain_policy*] +# cross_domain_policy value according to http://docs.openstack.org/developer/swift/crossdomain.html +# default: +# + +class swift::proxy::crossdomain ( + $cross_domain_policy = '', +) { + + concat::fragment { 'swift_crossdomain': + target => '/etc/swift/proxy-server.conf', + content => template('swift/proxy/crossdomain.conf.erb'), + order => '35', + } + +} diff --git a/spec/classes/swift_proxy_crossdomain_spec.rb b/spec/classes/swift_proxy_crossdomain_spec.rb new file mode 100644 index 00000000..155765c3 --- /dev/null +++ b/spec/classes/swift_proxy_crossdomain_spec.rb @@ -0,0 +1,51 @@ +require 'spec_helper' + +describe 'swift::proxy::crossdomain' do + + let :facts do + { + :concat_basedir => '/var/lib/puppet/concat' + } + end + + let :pre_condition do + 'class { "concat::setup": } + concat { "/etc/swift/proxy-server.conf": }' + end + + let :fragment_file do + "/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/35_swift_crossdomain" + end + + describe "when using default parameters" do + it 'should build the fragment with correct parameters' do + verify_contents(subject, fragment_file, + [ + '[filter:crossdomain]', + 'use = egg:swift#crossdomain', + 'cross_domain_policy = ', + ] + ) + end + end + + describe "when overriding default parameters" do + let :params do + { + :cross_domain_policy => ' +', + } + end + it 'should build the fragment with correct parameters' do + verify_contents(subject, fragment_file, + [ + '[filter:crossdomain]', + 'use = egg:swift#crossdomain', + 'cross_domain_policy = ', + '', + ] + ) + end + end + +end diff --git a/templates/proxy/crossdomain.conf.erb b/templates/proxy/crossdomain.conf.erb new file mode 100644 index 00000000..ef21b084 --- /dev/null +++ b/templates/proxy/crossdomain.conf.erb @@ -0,0 +1,4 @@ +[filter:crossdomain] +use = egg:swift#crossdomain +cross_domain_policy = <%= @cross_domain_policy %> +