summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJesse Wolfe <jes5199@gmail.com>2009-11-24 19:34:15 -0800
committerJames Turnbull <james@lovedthanlost.net>2009-12-09 10:58:56 +1100
commitbd9e06fe0c0be0b361f5b5299365f1385f429616 (patch)
treea3d21138e18f277120cf0bb6997ba4e8e2709a56 /lib
parent8b669985427a0acc41b842ce89047592922fa760 (diff)
downloadpuppet-bd9e06fe0c0be0b361f5b5299365f1385f429616.tar.gz
puppet-bd9e06fe0c0be0b361f5b5299365f1385f429616.tar.xz
puppet-bd9e06fe0c0be0b361f5b5299365f1385f429616.zip
Feature 2827 Option to disable managing internal files
Add a flag "manage_internal_file_permissions" which is enabled by default. Disabling this flag prevents Puppet from managing the owner, group, or mode of files created from Puppet::Util::Settings::FileSetting I think this is a wide enough net to follow Luke's suggestion of "disable management of everything", and it certainly satisfies the requests I'm aware of, but if I've missed anything, let me know. Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/puppet/defaults.rb4
-rw-r--r--lib/puppet/util/settings/file_setting.rb11
2 files changed, 11 insertions, 4 deletions
diff --git a/lib/puppet/defaults.rb b/lib/puppet/defaults.rb
index f128e60b0..67d4a42a5 100644
--- a/lib/puppet/defaults.rb
+++ b/lib/puppet/defaults.rb
@@ -86,6 +86,10 @@ module Puppet
:mkusers => [false,
"Whether to create the necessary user and group that puppetd will
run as."],
+ :manage_internal_file_permissions => [true,
+ "Whether Puppet should manage the owner, group, and mode of files
+ it uses internally"
+ ],
:path => {:default => "none",
:desc => "The shell search path. Defaults to whatever is inherited
from the parent process.",
diff --git a/lib/puppet/util/settings/file_setting.rb b/lib/puppet/util/settings/file_setting.rb
index 573628fb8..2dfbcf46e 100644
--- a/lib/puppet/util/settings/file_setting.rb
+++ b/lib/puppet/util/settings/file_setting.rb
@@ -89,11 +89,14 @@ class Puppet::Util::Settings::FileSetting < Puppet::Util::Settings::Setting
return nil if path =~ /^\/dev/
resource = Puppet::Resource.new(:file, path)
- resource[:mode] = self.mode if self.mode
- if Puppet.features.root?
- resource[:owner] = self.owner if self.owner
- resource[:group] = self.group if self.group
+ if Puppet[:manage_internal_file_permissions]
+ resource[:mode] = self.mode if self.mode
+
+ if Puppet.features.root?
+ resource[:owner] = self.owner if self.owner
+ resource[:group] = self.group if self.group
+ end
end
resource[:ensure] = type