Add swift::proxy::crossdomain class
Change-Id: Ie7e5dfc3732ad552063293f16aa04a791bc5add8 swift::proxy::crossdomain class is used to configure crossdomain middleware.
This commit is contained in:
25
manifests/proxy/crossdomain.pp
Normal file
25
manifests/proxy/crossdomain.pp
Normal file
@@ -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: <allow-access-from domain="*" secure="false" />
|
||||
#
|
||||
|
||||
class swift::proxy::crossdomain (
|
||||
$cross_domain_policy = '<allow-access-from domain="*" secure="false" />',
|
||||
) {
|
||||
|
||||
concat::fragment { 'swift_crossdomain':
|
||||
target => '/etc/swift/proxy-server.conf',
|
||||
content => template('swift/proxy/crossdomain.conf.erb'),
|
||||
order => '35',
|
||||
}
|
||||
|
||||
}
|
51
spec/classes/swift_proxy_crossdomain_spec.rb
Normal file
51
spec/classes/swift_proxy_crossdomain_spec.rb
Normal file
@@ -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 = <allow-access-from domain="*" secure="false" />',
|
||||
]
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
describe "when overriding default parameters" do
|
||||
let :params do
|
||||
{
|
||||
:cross_domain_policy => '<allow-access-from domain="xml-fragment-in-ini-file.so.wrong" secure="true" />
|
||||
<allow-access-from domain="*" secure="false" />',
|
||||
}
|
||||
end
|
||||
it 'should build the fragment with correct parameters' do
|
||||
verify_contents(subject, fragment_file,
|
||||
[
|
||||
'[filter:crossdomain]',
|
||||
'use = egg:swift#crossdomain',
|
||||
'cross_domain_policy = <allow-access-from domain="xml-fragment-in-ini-file.so.wrong" secure="true" />',
|
||||
'<allow-access-from domain="*" secure="false" />',
|
||||
]
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
4
templates/proxy/crossdomain.conf.erb
Normal file
4
templates/proxy/crossdomain.conf.erb
Normal file
@@ -0,0 +1,4 @@
|
||||
[filter:crossdomain]
|
||||
use = egg:swift#crossdomain
|
||||
cross_domain_policy = <%= @cross_domain_policy %>
|
||||
|
Reference in New Issue
Block a user