# 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