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