summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2007-07-20 16:27:44 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2007-07-20 16:27:44 +0000
commit47b705883bfdb38e3f94cba129936f70e3153735 (patch)
treebe0d8309d6615f5d141d443dd32398ab8cee7b60 /lib/puppet
parent2e14ea4294fb520a95bfa9f8930a1ed47e71e7de (diff)
downloadpuppet-47b705883bfdb38e3f94cba129936f70e3153735.tar.gz
puppet-47b705883bfdb38e3f94cba129936f70e3153735.tar.xz
puppet-47b705883bfdb38e3f94cba129936f70e3153735.zip
Adding some code in an attempt to fix #728, but it is all commented out since I could not get it fixed in time for beaker
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2722 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib/puppet')
-rwxr-xr-xlib/puppet/provider/parsedfile.rb23
1 files changed, 22 insertions, 1 deletions
diff --git a/lib/puppet/provider/parsedfile.rb b/lib/puppet/provider/parsedfile.rb
index 441dfac9e..a26788843 100755
--- a/lib/puppet/provider/parsedfile.rb
+++ b/lib/puppet/provider/parsedfile.rb
@@ -119,6 +119,15 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
[resource_type.validproperties, resource_type.parameters].flatten.each do |attr|
attr = symbolize(attr)
define_method(attr) do
+# if @property_hash.empty?
+# # Note that this swaps the provider out from under us.
+# prefetch()
+# if @resource.provider == self
+# return @property_hash[attr]
+# else
+# return @resource.provider.send(attr)
+# end
+# end
# If it's not a valid field for this record type (which can happen
# when different platforms support different fields), then just
# return the should value, so the resource shuts up.
@@ -273,7 +282,9 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
# Lastly, check the file from any resource instances
if resources
resources.each do |name, resource|
- targets << resource.value(:target)
+ if value = resource.should(:target)
+ targets << value
+ end
end
end
@@ -323,6 +334,8 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
@property_hash[:name] ||= @resource.name
self.class.flush(@property_hash)
+
+ #@property_hash = {}
end
def initialize(resource)
@@ -336,6 +349,14 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
@property_hash = self.class.record?(resource[:name]) ||
{:record_type => self.class.name, :ensure => :absent}
end
+
+ # Retrieve the current state from disk.
+ def prefetch
+ unless @resource
+ raise Puppet::DevError, "Somehow got told to prefetch with no resource set"
+ end
+ self.class.prefetch(@resource[:name] => @resource)
+ end
end
# $Id$