
This changes all the puppet 3 validate_* functions to use the validate_legacy function. The validate_legacy function has been available since about three years but require Puppet >= 4.4.0 and since there is Puppet 4.10.12 as latest we should assume people are running a fairly new Puppet 4 version. This is the first step to then remove all validate function calls and use proper types for parameter as described in spec [1]. [1] https://review.openstack.org/#/c/568929/ Change-Id: I5661c2d685b4bf2422936326db1c3d543a49f92a
56 lines
1.4 KiB
Puppet
56 lines
1.4 KiB
Puppet
# Creates a swift ring using ringbuilder.
|
|
# It creates the associated ring file as /etc/swift/${name}.builder
|
|
# It will not create a ring if the file already exists.
|
|
#
|
|
# == Parameters
|
|
#
|
|
# [*name*] The type of ring to create. Accepts object|container|account
|
|
# [*part_power*] Number of partitions in the ring. (specified as the power of 2)
|
|
# Optional. Defaults to 18 (2^18)
|
|
# [*replicas*] Number of replicas to store.
|
|
# Optional. Defaults to 3
|
|
# [*min_part_hours*] Time before a partition can be moved.
|
|
# Optional. Defaults to 24.
|
|
# [*user*] User to run as
|
|
# Optional. Defaults to 'swift'
|
|
#
|
|
|
|
# == Examples
|
|
#
|
|
# swift::ringbuilder::create { 'account':
|
|
# part_power => 19,
|
|
# replicas => 5,
|
|
# min_part_hours => 1,
|
|
# user => 'swift',
|
|
# }
|
|
#
|
|
# == Authors
|
|
#
|
|
# Pupppetlabs <info@puppetlabs.com>
|
|
#
|
|
# == Copyright
|
|
#
|
|
# Copyright 2011 Puppetlabs Inc, unless otherwise noted.
|
|
#
|
|
define swift::ringbuilder::create(
|
|
$part_power = 18,
|
|
$replicas = 3,
|
|
$min_part_hours = 24,
|
|
$user = 'swift'
|
|
) {
|
|
|
|
include ::swift::deps
|
|
|
|
validate_legacy(Enum['object', 'container', 'account'], 'validate_re', $name,
|
|
['^object|container|account$'])
|
|
|
|
exec { "create_${name}":
|
|
command => "swift-ring-builder /etc/swift/${name}.builder create ${part_power} ${replicas} ${min_part_hours}",
|
|
path => ['/usr/bin'],
|
|
user => $user,
|
|
creates => "/etc/swift/${name}.builder",
|
|
before => Anchor['swift::config::end'],
|
|
}
|
|
|
|
}
|