Support to configure memcache.conf
Change-Id: Iab2520403edd47004c3edbeda66b4eb16eed587a
This commit is contained in:
parent
d9f55bdbd2
commit
0a6ac4addc
10
lib/puppet/provider/swift_memcache_config/ini_setting.rb
Normal file
10
lib/puppet/provider/swift_memcache_config/ini_setting.rb
Normal file
@ -0,0 +1,10 @@
|
||||
Puppet::Type.type(:swift_memcache_config).provide(
|
||||
:ini_setting,
|
||||
:parent => Puppet::Type.type(:openstack_config).provider(:ini_setting)
|
||||
) do
|
||||
|
||||
def self.file_path
|
||||
'/etc/swift/memcache.conf'
|
||||
end
|
||||
|
||||
end
|
53
lib/puppet/type/swift_memcache_config.rb
Normal file
53
lib/puppet/type/swift_memcache_config.rb
Normal file
@ -0,0 +1,53 @@
|
||||
Puppet::Type.newtype(:swift_memcache_config) do
|
||||
|
||||
ensurable
|
||||
|
||||
newparam(:name, :namevar => true) do
|
||||
desc 'Section/setting name to manage from /etc/swift/memcache.conf'
|
||||
newvalues(/\S+\/\S+/)
|
||||
end
|
||||
|
||||
newproperty(:value) do
|
||||
desc 'The value of the setting to be defined.'
|
||||
munge do |value|
|
||||
value = value.to_s.strip
|
||||
value.capitalize! if value =~ /^(true|false)$/i
|
||||
value
|
||||
end
|
||||
newvalues(/^[\S ]*$/)
|
||||
|
||||
def is_to_s( currentvalue )
|
||||
if resource.secret?
|
||||
return '[old secret redacted]'
|
||||
else
|
||||
return currentvalue
|
||||
end
|
||||
end
|
||||
|
||||
def should_to_s( newvalue )
|
||||
if resource.secret?
|
||||
return '[new secret redacted]'
|
||||
else
|
||||
return newvalue
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
newparam(:secret, :boolean => true) do
|
||||
desc 'Whether to hide the value from Puppet logs. Defaults to `false`.'
|
||||
|
||||
newvalues(:true, :false)
|
||||
|
||||
defaultto false
|
||||
end
|
||||
|
||||
newparam(:ensure_absent_val) do
|
||||
desc 'A value that is specified as the value property will behave as if ensure => absent was specified'
|
||||
defaultto('<SERVICE DEFAULT>')
|
||||
end
|
||||
|
||||
autorequire(:package) do
|
||||
'swift'
|
||||
end
|
||||
|
||||
end
|
92
manifests/memcache.pp
Normal file
92
manifests/memcache.pp
Normal file
@ -0,0 +1,92 @@
|
||||
# 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.
|
||||
#
|
||||
# == Class: swift::memcache
|
||||
#
|
||||
# This class creates a memcache configuration file
|
||||
#
|
||||
#
|
||||
# === Parameters
|
||||
#
|
||||
# [*memcache_servers*]
|
||||
# You can use this single conf file instead of having memcache_servers set in
|
||||
# several other conf files under [filter:cache] for example. You can specify
|
||||
# multiple servers separated with commas, as in: 10.1.2.3:11211,10.1.2.4:11211
|
||||
# Default to ['127.0.0.1:11211']
|
||||
#
|
||||
# [*memcache_serialization_support*]
|
||||
# Sets how memcache values are serialized and deserialized:
|
||||
# 0 = older, insecure pickle serialization
|
||||
# 1 = json serialization but pickles can still be read (still insecure)
|
||||
# 2 = json serialization only (secure and the default)
|
||||
# To avoid an instant full cache flush, existing installations should
|
||||
# upgrade with 0, then set to 1 and reload, then after some time (24 hours)
|
||||
# set to 2 and reload.
|
||||
# In the future, the ability to use pickle serialization will be removed.
|
||||
# Default to $::os_service_default
|
||||
#
|
||||
# [*memcache_max_connections*]
|
||||
# Sets the maximum number of connections to each memcached server per worker
|
||||
# Default to $::os_service_default
|
||||
#
|
||||
# [*connect_timeout*]
|
||||
# Timeout for connection
|
||||
# Default to $::os_service_default
|
||||
#
|
||||
# [*pool_timeout*]
|
||||
# Timeout for pooled connection
|
||||
# Default to $::os_service_default
|
||||
#
|
||||
# [*tries*]
|
||||
# number of servers to retry on failures getting a pooled connection
|
||||
# Default to $::os_service_default
|
||||
#
|
||||
# [*io_timeout*]
|
||||
# Timeout for read and writes
|
||||
# Default to $::os_service_default
|
||||
#
|
||||
#
|
||||
# === Authors
|
||||
#
|
||||
# shi.yan@ardc.edu.au
|
||||
#
|
||||
class swift::memcache (
|
||||
$memcache_servers = ['127.0.0.1:11211'],
|
||||
$memcache_serialization_support = $::os_service_default,
|
||||
$memcache_max_connections = $::os_service_default,
|
||||
$connect_timeout = $::os_service_default,
|
||||
$pool_timeout = $::os_service_default,
|
||||
$tries = $::os_service_default,
|
||||
$io_timeout = $::os_service_default,
|
||||
) {
|
||||
|
||||
include swift::deps
|
||||
include swift::params
|
||||
|
||||
|
||||
file { '/etc/swift/memcache.conf':
|
||||
ensure => file,
|
||||
owner => 'swift',
|
||||
group => 'swift',
|
||||
mode => '0640',
|
||||
}
|
||||
|
||||
swift_memcache_config {
|
||||
'memcache/memcache_servers': value => join(any2array($memcache_servers), ',');
|
||||
'memcache/memcache_serialization_support': value => $memcache_serialization_support;
|
||||
'memcache/memcache_max_connections': value => $memcache_max_connections;
|
||||
'memcache/connect_timeout': value => $connect_timeout;
|
||||
'memcache/pool_timeout': value => $pool_timeout;
|
||||
'memcache/tries': value => $tries;
|
||||
'memcache/io_timeout': value => $io_timeout;
|
||||
}
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
---
|
||||
features:
|
||||
- |
|
||||
Support to configure memcache.conf file.
|
76
spec/classes/swift_memcache_spec.rb
Normal file
76
spec/classes/swift_memcache_spec.rb
Normal file
@ -0,0 +1,76 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe 'swift::memcache' do
|
||||
shared_examples 'swift::memcache' do
|
||||
|
||||
describe 'when using default parameters' do
|
||||
|
||||
let :file_defaults do
|
||||
{
|
||||
:owner => 'swift',
|
||||
:group => 'swift',
|
||||
:mode => '0640',
|
||||
}
|
||||
end
|
||||
|
||||
it {is_expected.to contain_file('/etc/swift/memcache.conf').with(
|
||||
{:ensure => 'file'}.merge(file_defaults)
|
||||
)}
|
||||
|
||||
it { is_expected.to contain_swift_memcache_config(
|
||||
'memcache/memcache_servers').with_value(['127.0.0.1:11211']) }
|
||||
it { is_expected.to contain_swift_memcache_config(
|
||||
'memcache/memcache_serialization_support').with_value('<SERVICE DEFAULT>') }
|
||||
it { is_expected.to contain_swift_memcache_config(
|
||||
'memcache/memcache_max_connections').with_value('<SERVICE DEFAULT>') }
|
||||
it { is_expected.to contain_swift_memcache_config(
|
||||
'memcache/connect_timeout').with_value('<SERVICE DEFAULT>') }
|
||||
it { is_expected.to contain_swift_memcache_config(
|
||||
'memcache/pool_timeout').with_value('<SERVICE DEFAULT>') }
|
||||
it { is_expected.to contain_swift_memcache_config(
|
||||
'memcache/tries').with_value('<SERVICE DEFAULT>') }
|
||||
it { is_expected.to contain_swift_memcache_config(
|
||||
'memcache/io_timeout').with_value('<SERVICE DEFAULT>') }
|
||||
end
|
||||
|
||||
describe 'when overridding parameters' do
|
||||
let :params do
|
||||
{
|
||||
:memcache_servers => ['1.1.1.1:11211', '2.2.2.2:11211'],
|
||||
:memcache_serialization_support => 1,
|
||||
:memcache_max_connections => 3,
|
||||
:connect_timeout => '0.5',
|
||||
:pool_timeout => '2.0',
|
||||
:tries => 5,
|
||||
:io_timeout => '1.0'
|
||||
}
|
||||
end
|
||||
it { is_expected.to contain_swift_memcache_config(
|
||||
'memcache/memcache_servers').with_value('1.1.1.1:11211,2.2.2.2:11211') }
|
||||
it { is_expected.to contain_swift_memcache_config(
|
||||
'memcache/memcache_serialization_support').with_value('1') }
|
||||
it { is_expected.to contain_swift_memcache_config(
|
||||
'memcache/memcache_max_connections').with_value('3') }
|
||||
it { is_expected.to contain_swift_memcache_config(
|
||||
'memcache/connect_timeout').with_value('0.5') }
|
||||
it { is_expected.to contain_swift_memcache_config(
|
||||
'memcache/pool_timeout').with_value('2.0') }
|
||||
it { is_expected.to contain_swift_memcache_config(
|
||||
'memcache/tries').with_value('5') }
|
||||
it { is_expected.to contain_swift_memcache_config(
|
||||
'memcache/io_timeout').with_value('1.0') }
|
||||
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_configures 'swift::memcache'
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue
Block a user