Add swift::proxy::slo class
swift::proxy::slo class is used to configure proxy slo middleware. Change-Id: Ic751d2e89de39478b55e3323ddf220610b1b7541 Implements: blueprint icehouse-proxyserver-middlewares
This commit is contained in:
59
manifests/proxy/slo.pp
Normal file
59
manifests/proxy/slo.pp
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
#
|
||||||
|
# Configure swift slo.
|
||||||
|
#
|
||||||
|
# == Examples
|
||||||
|
#
|
||||||
|
# include swift::proxy::slo
|
||||||
|
#
|
||||||
|
# == Parameters
|
||||||
|
#
|
||||||
|
# [*max_manifest_segments*]
|
||||||
|
# Max manifest segments.
|
||||||
|
# Default to 1000.
|
||||||
|
#
|
||||||
|
# [*max_manifest_size*]
|
||||||
|
# Max manifest size.
|
||||||
|
# Default to 2097152.
|
||||||
|
#
|
||||||
|
# [*min_segment_size*]
|
||||||
|
# minimal segment size
|
||||||
|
# Default to 1048576.
|
||||||
|
#
|
||||||
|
# [*rate_limit_after_segment*]
|
||||||
|
# Start rate-limiting SLO segment serving after the Nth segment of a segmented object.
|
||||||
|
# Default to 10.
|
||||||
|
#
|
||||||
|
# [*rate_limit_segments_per_sec*]
|
||||||
|
# Once segment rate-limiting kicks in for an object, limit segments served to N per second.
|
||||||
|
# 0 means no rate-limiting.
|
||||||
|
# Default to 0.
|
||||||
|
#
|
||||||
|
# [*max_get_time*]
|
||||||
|
# Time limit on GET requests (seconds).
|
||||||
|
# Default to 86400.
|
||||||
|
#
|
||||||
|
# == Authors
|
||||||
|
#
|
||||||
|
# Xingchao Yu yuxcer@gmail.com
|
||||||
|
#
|
||||||
|
# == Copyright
|
||||||
|
#
|
||||||
|
# Copyright 2014 UnitedStack licensing@unitedstack.com
|
||||||
|
#
|
||||||
|
|
||||||
|
class swift::proxy::slo (
|
||||||
|
$max_manifest_segments = '1000',
|
||||||
|
$max_manifest_size = '2097152',
|
||||||
|
$min_segment_size = '1048576',
|
||||||
|
$rate_limit_after_segment = '10',
|
||||||
|
$rate_limit_segments_per_sec = '0',
|
||||||
|
$max_get_time = '86400'
|
||||||
|
) {
|
||||||
|
|
||||||
|
concat::fragment { 'swift_slo':
|
||||||
|
target => '/etc/swift/proxy-server.conf',
|
||||||
|
content => template('swift/proxy/slo.conf.erb'),
|
||||||
|
order => '35',
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
60
spec/classes/swift_proxy_slo_spec.rb
Normal file
60
spec/classes/swift_proxy_slo_spec.rb
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe 'swift::proxy::slo' 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_slo"
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "when using default parameters" do
|
||||||
|
it 'should build the fragment with correct parameters' do
|
||||||
|
verify_contents(subject, fragment_file,
|
||||||
|
[
|
||||||
|
'[filter:slo]',
|
||||||
|
'use = egg:swift#slo',
|
||||||
|
'max_manifest_segments = 1000',
|
||||||
|
'max_manifest_size = 2097152',
|
||||||
|
'min_segment_size = 1048576',
|
||||||
|
'rate_limit_after_segment = 10',
|
||||||
|
'rate_limit_segments_per_sec = 0',
|
||||||
|
'max_get_time = 86400',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "when overriding default parameters" do
|
||||||
|
let :params do
|
||||||
|
{
|
||||||
|
:max_manifest_segments => '2000',
|
||||||
|
:max_manifest_size => '500000',
|
||||||
|
:rate_limit_after_segment => '30',
|
||||||
|
:max_get_time => '6400',
|
||||||
|
}
|
||||||
|
end
|
||||||
|
it 'should build the fragment with correct parameters' do
|
||||||
|
verify_contents(subject, fragment_file,
|
||||||
|
[
|
||||||
|
'[filter:slo]',
|
||||||
|
'use = egg:swift#slo',
|
||||||
|
'max_manifest_segments = 2000',
|
||||||
|
'max_manifest_size = 500000',
|
||||||
|
'rate_limit_after_segment = 30',
|
||||||
|
'max_get_time = 6400',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
8
templates/proxy/slo.conf.erb
Normal file
8
templates/proxy/slo.conf.erb
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
[filter:slo]
|
||||||
|
use = egg:swift#slo
|
||||||
|
max_manifest_segments = <%= @max_manifest_segments %>
|
||||||
|
max_manifest_size = <%= @max_manifest_size %>
|
||||||
|
min_segment_size = <%= @min_segment_size %>
|
||||||
|
rate_limit_after_segment = <%= @rate_limit_after_segment %>
|
||||||
|
rate_limit_segments_per_sec = <%= @rate_limit_segments_per_sec %>
|
||||||
|
max_get_time = <%= @max_get_time %>
|
Reference in New Issue
Block a user