Files
puppet-swift/manifests/ringbuilder/create.pp
Tobias Urdin ba1ec6d40c Use validate_legacy
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
2019-02-25 22:49:42 +01:00

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'],
}
}