From d443048fae953e03e4a9db53d5b5f518e6a17d2f Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Mon, 4 Jul 2022 10:10:02 +0900 Subject: [PATCH] Use the root user to generate ring builder files In Ubuntu, the swift user does not have write access to the /etc/swift directory, so generating a ring builder file by the swift user fails with Permission Error. This change switches the execution user to root to avoid the error. Closes-Bug: #1980613 Change-Id: Ibad7afb29007109a683e22a1119b5b5fbdb1c130 --- manifests/ringbuilder/create.pp | 10 +++++----- releasenotes/notes/bug-1980613-b2e589f74602f11f.yaml | 6 ++++++ spec/defines/swift_ringbuilder_create_spec.rb | 4 ++-- 3 files changed, 13 insertions(+), 7 deletions(-) create mode 100644 releasenotes/notes/bug-1980613-b2e589f74602f11f.yaml diff --git a/manifests/ringbuilder/create.pp b/manifests/ringbuilder/create.pp index 3e203c90..bb951eff 100644 --- a/manifests/ringbuilder/create.pp +++ b/manifests/ringbuilder/create.pp @@ -12,7 +12,7 @@ # [*min_part_hours*] Time before a partition can be moved. # Optional. Defaults to 24. # [*user*] User to run as -# Optional. Defaults to 'swift' +# Optional. Defaults to 'root' # # == Examples @@ -21,7 +21,7 @@ # part_power => 19, # replicas => 5, # min_part_hours => 1, -# user => 'swift', +# user => 'root', # } # # == Authors @@ -33,10 +33,10 @@ # Copyright 2011 Puppetlabs Inc, unless otherwise noted. # define swift::ringbuilder::create( - $part_power = 18, - $replicas = 3, + $part_power = 18, + $replicas = 3, $min_part_hours = 24, - $user = 'swift' + $user = 'root' ) { include swift::deps diff --git a/releasenotes/notes/bug-1980613-b2e589f74602f11f.yaml b/releasenotes/notes/bug-1980613-b2e589f74602f11f.yaml new file mode 100644 index 00000000..00398b1d --- /dev/null +++ b/releasenotes/notes/bug-1980613-b2e589f74602f11f.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Now the ``swift::ringbuilder::create`` defined type generates a ring + builder file by root user, instead of swift user, by default. Set the user + parameter if a different should be used. diff --git a/spec/defines/swift_ringbuilder_create_spec.rb b/spec/defines/swift_ringbuilder_create_spec.rb index 70e406f4..7689172e 100644 --- a/spec/defines/swift_ringbuilder_create_spec.rb +++ b/spec/defines/swift_ringbuilder_create_spec.rb @@ -6,7 +6,7 @@ describe 'swift::ringbuilder::create' do :part_power => 18, :replicas => 3, :min_part_hours => 24, - :user => 'swift' + :user => 'root' } end @@ -22,7 +22,7 @@ describe 'swift::ringbuilder::create' do {:part_power => 19, :replicas => 6, :min_part_hours => 2, - :user => 'root'}].each do |param_set| + :user => 'swift'}].each do |param_set| describe "when #{param_set == {} ? "using default" : "specifying"} class parameters" do let :param_hash do