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':
|
||||
proxy_local_net_ip => $swift_local_net_ip,
|
||||
pipeline => [
|
||||
'bulk',
|
||||
'catch_errors',
|
||||
'healthcheck',
|
||||
'cache',
|
||||
@ -209,6 +210,12 @@ node /swift-proxy/ inherits swift_base {
|
||||
'swift::proxy::cache',
|
||||
'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':
|
||||
clock_accuracy => 1000,
|
||||
max_sleep_time_seconds => 60,
|
||||
|
Loading…
Reference in New Issue
Block a user