diff --git a/manifests/proxy/etag_quoter.pp b/manifests/proxy/etag_quoter.pp new file mode 100644 index 00000000..a7b1e0eb --- /dev/null +++ b/manifests/proxy/etag_quoter.pp @@ -0,0 +1,34 @@ +# +# Configure swift etag quoter. +# +# == Parameters +# +# [*enabled_by_default*] +# Enable quoting ETag header cluster-wide by default. +# Defaults to $::os_service_default. +# +# == Examples +# +# class {'swift::proxy::etag_quoter': +# enable_by_default => true, +# } +# +# == Authors +# +# Takashi Kajinami +# +# == Copyright +# +# Copyright (C) 2020 Red Hat +# +class swift::proxy::etag_quoter ( + $enabled_by_default = $::os_service_default +) { + + include swift::deps + + swift_proxy_config { + 'filter:etag-quoter/use': value => 'egg:swift#etag_quoter'; + 'filter:etag-quoter/enabled_by_default': value => $enabled_by_default; + } +} diff --git a/releasenotes/notes/add-swift-proxy-etag_quoter-2a55ef5b7e0ac029.yaml b/releasenotes/notes/add-swift-proxy-etag_quoter-2a55ef5b7e0ac029.yaml new file mode 100644 index 00000000..10a63427 --- /dev/null +++ b/releasenotes/notes/add-swift-proxy-etag_quoter-2a55ef5b7e0ac029.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + Add swift::proxy::etag_quoter to configure etag_quoter middleware for swift + proxy. diff --git a/spec/classes/swift_proxy_etag_quoter_spec.rb b/spec/classes/swift_proxy_etag_quoter_spec.rb new file mode 100644 index 00000000..35b8d5d3 --- /dev/null +++ b/spec/classes/swift_proxy_etag_quoter_spec.rb @@ -0,0 +1,34 @@ +require 'spec_helper' + +describe 'swift::proxy::etag_quoter' do + shared_examples 'swift::proxy::etag_quoter' do + context 'when using default parameters' do + it { is_expected.to contain_swift_proxy_config('filter:etag-quoter/use').with_value('egg:swift#etag_quoter') } + it { is_expected.to contain_swift_proxy_config('filter:etag-quoter/enabled_by_default').with_value('') } + end + + context 'when overriding default parameters' do + let :params do + { + :enabled_by_default => true + } + end + + it { is_expected.to contain_swift_proxy_config('filter:etag-quoter/use').with_value('egg:swift#etag_quoter') } + it { is_expected.to contain_swift_proxy_config('filter:etag-quoter/enabled_by_default').with_value(true) } + end + end + + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge(OSDefaults.get_facts()) + end + + it_behaves_like 'swift::proxy::etag_quoter' + end + end +end +