summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/puppet/property.rb14
-rwxr-xr-xlib/puppet/type/file/ensure.rb23
-rwxr-xr-xlib/puppet/type/file/source.rb24
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