Files
puppet-swift/manifests/storage/server.pp
Mathieu Gagné 178f4b18dc Various Puppet lint fixes
* Fix following warnings:
    * double quoted string containing no variables
    * indentation of => is not properly aligned
    * mode should be represented as a 4 digit octal value or symbolic mode
    * string containing only a variable
    * top-scope variable being used without an explicit namespace
    * unquoted file mode
    * variable not enclosed in {}
* Fix following errors:
    * trailing whitespace found
    * two-space soft tabs not used
* Remove quotes around class in include/require statements

Change-Id: Ia920d848e1955612a6486ec8731309e6d3a70f63
2013-08-02 11:51:57 -04:00

83 lines
2.5 KiB
ObjectPascal

#
# I am not sure if this is the right name
# - should it be device?
#
# name - is going to be port
define swift::storage::server(
$type,
$storage_local_net_ip,
$devices = '/srv/node',
$owner = 'swift',
$group = 'swift',
$max_connections = 25,
$pipeline = ["${type}-server"],
$mount_check = false,
$user = 'swift',
$workers = '1',
$allow_versions = false,
$replicator_concurrency = $::processorcount,
$updater_concurrency = $::processorcount,
$reaper_concurrency = $::processorcount,
$log_facility = "LOG_LOCAL2",
$log_level = "INFO",
$log_address = "/dev/log",
# this parameters needs to be specified after type and name
$config_file_path = "${type}-server/${name}.conf"
) {
# TODO if array does not include type-server, warn
if(
(is_array($pipeline) and ! member($pipeline, "${type}-server")) or
$pipeline != "${type}-server"
) {
warning("swift storage server ${type} must specify ${type}-server")
}
include "swift::storage::${type}"
include concat::setup
validate_re($name, '^\d+$')
validate_re($type, '^object|container|account$')
validate_array($pipeline)
validate_bool($allow_versions)
# TODO - validate that name is an integer
$bind_port = $name
rsync::server::module { $type:
path => $devices,
lock_file => "/var/lock/${type}.lock",
uid => $owner,
gid => $group,
max_connections => $max_connections,
read_only => false,
}
concat { "/etc/swift/${config_file_path}":
owner => $owner,
group => $group,
notify => Service["swift-${type}", "swift-${type}-replicator"],
mode => 640,
}
$required_middlewares = split(
inline_template(
"<%=
(pipeline - ['${type}-server']).collect do |x|
'Swift::Storage::Filter::' + x + '[${type}]'
end.join(',')
%>"), ',')
# you can now add your custom fragments at the user level
concat::fragment { "swift-${type}-${name}":
target => "/etc/swift/${config_file_path}",
content => template("swift/${type}-server.conf.erb"),
order => '00',
# require classes for each of the elements of the pipeline
# this is to ensure the user gets reasonable elements if he
# does not specify the backends for every specified element of
# the pipeline
before => $required_middlewares,
}
}