Merge "Add Bulk middleware support"
This commit is contained in:
commit
328a805f1a
52
manifests/proxy/bulk.pp
Normal file
52
manifests/proxy/bulk.pp
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
#
|
||||||
|
# Copyright (C) 2013 eNovance SAS <licensing@enovance.com>
|
||||||
|
#
|
||||||
|
# Author: Emilien Macchi <emilien.macchi@enovance.com>
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
# Configure Bulk
|
||||||
|
#
|
||||||
|
# === Parameters
|
||||||
|
#
|
||||||
|
# [*max_containers_per_extraction*]
|
||||||
|
# The maximum number of containers that can be extracted from an archive.
|
||||||
|
# Default to 10000.
|
||||||
|
#
|
||||||
|
# [*max_failed_extractions*]
|
||||||
|
# The maximum number of failed extractions allowed when an archive has
|
||||||
|
# extraction failures.
|
||||||
|
# Default to 1000.
|
||||||
|
#
|
||||||
|
# [*max_deletes_per_request*]
|
||||||
|
# The maximum number of deletes allowed by each request.
|
||||||
|
# Default to 10000.
|
||||||
|
#
|
||||||
|
# [*yield_frequency*]
|
||||||
|
# The frequency the server will spit out an ' ' to keep the connection alive
|
||||||
|
# while its processing the request.
|
||||||
|
# Default to 60.
|
||||||
|
#
|
||||||
|
|
||||||
|
class swift::proxy::bulk(
|
||||||
|
$max_containers_per_extraction = '10000',
|
||||||
|
$max_failed_extractions = '1000',
|
||||||
|
$max_deletes_per_request = '10000',
|
||||||
|
$yield_frequency = '60',
|
||||||
|
) {
|
||||||
|
concat::fragment { 'swift_bulk':
|
||||||
|
target => '/etc/swift/proxy-server.conf',
|
||||||
|
content => template('swift/proxy/bulk.conf.erb'),
|
||||||
|
order => '21',
|
||||||
|
}
|
||||||
|
}
|
78
spec/classes/swift_proxy_bulk_spec.rb
Normal file
78
spec/classes/swift_proxy_bulk_spec.rb
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
#
|
||||||
|
# Copyright (C) 2013 eNovance SAS <licensing@enovance.com>
|
||||||
|
#
|
||||||
|
# Author: Emilien Macchi <emilien.macchi@enovance.com>
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
# Tests for swift::proxy::bulk
|
||||||
|
#
|
||||||
|
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe 'swift::proxy::bulk' 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/21_swift_bulk"
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "when using default parameters" do
|
||||||
|
it 'should build the fragment with correct parameters' do
|
||||||
|
verify_contents(subject, fragment_file,
|
||||||
|
[
|
||||||
|
'[filter:bulk]',
|
||||||
|
'use = egg:swift#bulk',
|
||||||
|
'max_containers_per_extraction = 10000',
|
||||||
|
'max_failed_extractions = 1000',
|
||||||
|
'max_deletes_per_request = 10000',
|
||||||
|
'yield_frequency = 60',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "when overriding default parameters" do
|
||||||
|
let :params do
|
||||||
|
{
|
||||||
|
:max_containers_per_extraction => 5000,
|
||||||
|
:max_failed_extractions => 500,
|
||||||
|
:max_deletes_per_request => 5000,
|
||||||
|
:yield_frequency => 10
|
||||||
|
}
|
||||||
|
end
|
||||||
|
it 'should build the fragment with correct parameters' do
|
||||||
|
verify_contents(subject, fragment_file,
|
||||||
|
[
|
||||||
|
'[filter:bulk]',
|
||||||
|
'use = egg:swift#bulk',
|
||||||
|
'max_containers_per_extraction = 5000',
|
||||||
|
'max_failed_extractions = 500',
|
||||||
|
'max_deletes_per_request = 5000',
|
||||||
|
'yield_frequency = 10',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
8
templates/proxy/bulk.conf.erb
Normal file
8
templates/proxy/bulk.conf.erb
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
|
||||||
|
[filter:bulk]
|
||||||
|
use = egg:swift#bulk
|
||||||
|
max_containers_per_extraction = <%= @max_containers_per_extraction %>
|
||||||
|
max_failed_extractions = <%= @max_failed_extractions %>
|
||||||
|
max_deletes_per_request = <%= @max_deletes_per_request %>
|
||||||
|
yield_frequency = <%= @yield_frequency %>
|
||||||
|
|
@ -183,6 +183,7 @@ node /swift-proxy/ inherits swift_base {
|
|||||||
class { 'swift::proxy':
|
class { 'swift::proxy':
|
||||||
proxy_local_net_ip => $swift_local_net_ip,
|
proxy_local_net_ip => $swift_local_net_ip,
|
||||||
pipeline => [
|
pipeline => [
|
||||||
|
'bulk',
|
||||||
'catch_errors',
|
'catch_errors',
|
||||||
'healthcheck',
|
'healthcheck',
|
||||||
'cache',
|
'cache',
|
||||||
@ -209,6 +210,12 @@ node /swift-proxy/ inherits swift_base {
|
|||||||
'swift::proxy::cache',
|
'swift::proxy::cache',
|
||||||
'swift::proxy::swift3',
|
'swift::proxy::swift3',
|
||||||
]: }
|
]: }
|
||||||
|
class { 'swift::proxy::bulk':
|
||||||
|
max_containers_per_extraction => 10000,
|
||||||
|
max_failed_extractions => 1000,
|
||||||
|
max_deletes_per_request => 10000,
|
||||||
|
yield_frequency => 60,
|
||||||
|
}
|
||||||
class { 'swift::proxy::ratelimit':
|
class { 'swift::proxy::ratelimit':
|
||||||
clock_accuracy => 1000,
|
clock_accuracy => 1000,
|
||||||
max_sleep_time_seconds => 60,
|
max_sleep_time_seconds => 60,
|
||||||
|
Loading…
Reference in New Issue
Block a user