diff --git a/manifests/ringbuilder/create.pp b/manifests/ringbuilder/create.pp index 1fde2cf6..68e4dd6b 100644 --- a/manifests/ringbuilder/create.pp +++ b/manifests/ringbuilder/create.pp @@ -11,13 +11,17 @@ # 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 @@ -31,7 +35,8 @@ define swift::ringbuilder::create( $part_power = 18, $replicas = 3, - $min_part_hours = 24 + $min_part_hours = 24, + $user = 'swift' ) { validate_re($name, '^object|container|account$') @@ -39,6 +44,7 @@ define swift::ringbuilder::create( 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", } diff --git a/spec/defines/swift_ringbuilder_create_spec.rb b/spec/defines/swift_ringbuilder_create_spec.rb index d5a6d083..dadcda83 100644 --- a/spec/defines/swift_ringbuilder_create_spec.rb +++ b/spec/defines/swift_ringbuilder_create_spec.rb @@ -4,7 +4,8 @@ describe 'swift::ringbuilder::create' do let :default_params do {:part_power => 18, :replicas => 3, - :min_part_hours => 24} + :min_part_hours => 24, + :user => 'swift'} end describe 'with allowed titles' do @@ -17,7 +18,8 @@ describe 'swift::ringbuilder::create' do [{}, {:part_power => 19, :replicas => 6, - :min_part_hours => 2}].each do |param_set| + :min_part_hours => 2, + :user => 'root'}].each do |param_set| describe "when #{param_set == {} ? "using default" : "specifying"} class parame ters" do @@ -32,6 +34,7 @@ describe 'swift::ringbuilder::create' do it { is_expected.to contain_exec("create_#{type}").with( {:command => "swift-ring-builder /etc/swift/#{type}.builder create #{param_hash[:part_power]} #{param_hash[:replicas]} #{param_hash[:min_part_hours]}", :path => ['/usr/bin'], + :user => param_hash[:user], :creates => "/etc/swift/#{type}.builder" } )} end