# File lib/puppet/property.rb, line 463 463: def retrieve 464: # XXX This is a problem -- whether the object exists or not often 465: # depends on the results of other properties, yet we're the first property 466: # to get checked, which means that those other properties do not have 467: # @is values set. This seems to be the source of quite a few bugs, 468: # although they're mostly logging bugs, not functional ones. 469: if prov = @resource.provider and prov.respond_to?(:exists?) 470: result = prov.exists? 471: elsif @resource.respond_to?(:exists?) 472: result = @resource.exists? 473: else 474: raise Puppet::DevError, "No ability to determine if %s exists" % 475: @resource.class.name 476: end 477: if result 478: return :present 479: else 480: return :absent 481: end 482: end