# File lib/puppet/property/ensure.rb, line 61 61: def retrieve 62: # XXX This is a problem -- whether the object exists or not often 63: # depends on the results of other properties, yet we're the first property 64: # to get checked, which means that those other properties do not have 65: # @is values set. This seems to be the source of quite a few bugs, 66: # although they're mostly logging bugs, not functional ones. 67: if prov = @resource.provider and prov.respond_to?(:exists?) 68: result = prov.exists? 69: elsif @resource.respond_to?(:exists?) 70: result = @resource.exists? 71: else 72: raise Puppet::DevError, "No ability to determine if #{@resource.class.name} exists" 73: end 74: if result 75: return :present 76: else 77: return :absent 78: end 79: end