Files
puppet-swift/manifests/ringbuilder/create.pp
Takashi Kajinami 11b193cab8 Fix type validation warning for storage policy rings
Since 63688a14e5 was merged, this module
support configuring storage policies.

When multiple storage policies are used, we need to create multiple
object rings like object.ring.gz, object-1.ring.gz. However the current
regexp to validate the ring name does not consider this format and
shows the type validation warning when creating a non-default policy
rings.

This change updates the regexp used in validation to accept that
object-<number> format as well.

Closes-Bug: #1987260
Change-Id: Ibc7479e7defbfa4c49bf3c9f1574cdcf61b90ab9
2022-08-22 19:37:40 +09:00

58 lines
1.5 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 'root'
#
# == Examples
#
# swift::ringbuilder::create { 'account':
# part_power => 19,
# replicas => 5,
# min_part_hours => 1,
# user => 'root',
# }
#
# == 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 = 'root'
) {
include swift::deps
validate_legacy(
Pattern[/^(object(-(\d)+)?|container|account)$/], 'validate_re', $name,
['^(object(-(\d)+)?|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'],
}
}