diff options
-rw-r--r-- | lib/puppet/property.rb | 14 | ||||
-rwxr-xr-x | lib/puppet/type/file/ensure.rb | 23 | ||||
-rwxr-xr-x | lib/puppet/type/file/source.rb | 24 |
3 files changed, 21 insertions, 40 deletions
diff --git a/lib/puppet/property.rb b/lib/puppet/property.rb index 76c388eb6..7d5edcfc1 100644 --- a/lib/puppet/property.rb +++ b/lib/puppet/property.rb @@ -355,20 +355,12 @@ class Puppet::Property < Puppet::Parameter end def should_to_s(newvalue) - newvalue = [newvalue] unless newvalue.is_a? Array - if defined? newvalue - newvalue.join(" ") - else - return nil - end + [newvalue].flatten.join(" ") end def sync - if value = self.should - set(value) - else - self.devfail "Got a nil value for should" - end + devfail "Got a nil value for should" unless should + set(should) end def to_s diff --git a/lib/puppet/type/file/ensure.rb b/lib/puppet/type/file/ensure.rb index f4236b4fc..c4b5fa188 100755 --- a/lib/puppet/type/file/ensure.rb +++ b/lib/puppet/type/file/ensure.rb @@ -80,13 +80,9 @@ module Puppet newvalue(:link) do - if property = @resource.property(:target) - property.retrieve - - return property.mklink - else - self.fail "Cannot create a symlink without a target" - end + fail "Cannot create a symlink without a target" unless property = resource.property(:target) + property.retrieve + property.mklink end # Symlinks. @@ -97,16 +93,9 @@ module Puppet munge do |value| value = super(value) - - # It doesn't make sense to try to manage links unless, well, - # we're managing links. - resource[:links] = :manage if value == :link - return value if value.is_a? Symbol - - @resource[:target] = value - resource[:links] = :manage - - return :link + value,resource[:target] = :link,value unless value.is_a? Symbol + resource[:links] = :manage if value == :link and resource[:links] != :follow + value end def change_to_s(currentvalue, newvalue) diff --git a/lib/puppet/type/file/source.rb b/lib/puppet/type/file/source.rb index 39d9a20df..838dabb27 100755 --- a/lib/puppet/type/file/source.rb +++ b/lib/puppet/type/file/source.rb @@ -93,11 +93,7 @@ module Puppet end def checksum - if metadata - metadata.checksum - else - nil - end + metadata && metadata.checksum end # Look up (if necessary) and return remote content. @@ -119,16 +115,20 @@ module Puppet [: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) + unless value = resource[param] and value != :absent + resource[param] = metadata.send(param) end end - # Set the 'ensure' value, unless we're trying to delete the file. - @resource[:ensure] = metadata.ftype unless @resource[:ensure] == :absent - - if metadata.ftype == "link" - @resource[:target] = metadata.destination + if resource[:ensure] == :absent + # We know all we need to + elsif metadata.ftype != "link" + resource[:ensure] = metadata.ftype + elsif @resource[:links] == :follow + resource[:ensure] = :present + else + resource[:ensure] = "link" + resource[:target] = metadata.destination end end |