summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorLuke Kanies <luke@puppetlabs.com>2010-04-12 11:06:06 -0700
committerLuke Kanies <luke@puppetlabs.com>2010-04-12 11:06:06 -0700
commiteffa7196781c2c233935206388c7e18d410e8e5f (patch)
tree1a9f6446eebb728ed14cf20f4a13f8e672190659 /lib
parent456447cab21ef6cfa66a6fbb949146e0d1df462c (diff)
downloadpuppet-effa7196781c2c233935206388c7e18d410e8e5f.tar.gz
puppet-effa7196781c2c233935206388c7e18d410e8e5f.tar.xz
puppet-effa7196781c2c233935206388c7e18d410e8e5f.zip
Cleaning up content/source code
This is probably a slight refactor, but only because it fixed a bug (content not being copied over correctly from metadata), which required that slight refactor. Mostly this just makes the code a bit cleaner. Signed-off-by: Luke Kanies <luke@puppetlabs.com>
Diffstat (limited to 'lib')
-rwxr-xr-xlib/puppet/type/file/content.rb12
-rwxr-xr-xlib/puppet/type/file/source.rb14
2 files changed, 11 insertions, 15 deletions
diff --git a/lib/puppet/type/file/content.rb b/lib/puppet/type/file/content.rb
index b6c671b98..cc2494b00 100755
--- a/lib/puppet/type/file/content.rb
+++ b/lib/puppet/type/file/content.rb
@@ -96,17 +96,9 @@ module Puppet
end
return true if ! @resource.replace?
+ return true unless self.should
- if self.should
- result = super
- elsif source = resource.parameter(:source)
- fail "Got a remote source with no checksum" unless source.checksum
- result = (is == source.checksum)
- else
- # We've got no content specified, and no source from which to
- # get content.
- return true
- end
+ result = super
if ! result and Puppet[:show_diff]
string_file_diff(@resource[:path], actual_content)
diff --git a/lib/puppet/type/file/source.rb b/lib/puppet/type/file/source.rb
index 838dabb27..7eb3d019a 100755
--- a/lib/puppet/type/file/source.rb
+++ b/lib/puppet/type/file/source.rb
@@ -112,11 +112,15 @@ module Puppet
# Take each of the stats and set them as states on the local file
# if a value has not already been provided.
- [:owner, :mode, :group, :checksum].each do |param|
- next if param == :owner and Puppet::Util::SUIDManager.uid != 0
- next if param == :checksum and metadata.ftype == "directory"
- unless value = resource[param] and value != :absent
- resource[param] = metadata.send(param)
+ [:owner, :mode, :group, :checksum].each do |metadata_method|
+ param_name = (metadata_method == :checksum) ? :content : metadata_method
+ next if metadata_method == :owner and Puppet::Util::SUIDManager.uid != 0
+ next if metadata_method == :checksum and metadata.ftype == "directory"
+
+ if resource[param_name].nil? or resource[param_name] == :absent
+ v = metadata.send(metadata_method)
+ resource.info "Setting #{param_name} to #{v}"
+ resource[param_name] = metadata.send(metadata_method)
end
end