Метод запроса вызывается базовым типом Puppet::Provider::Package. Метод properties заполняет property_hash с помощью метода query:
# Look up the current status.
def properties
if @property_hash.empty?
@property_hash = query || {:ensure => :absent}
@property_hash[:ensure] = :absent if @property_hash.empty?
end
@property_hash.dup
end
В rubydoc Puppet::Provider говорится о property_hash следующее:
Хэш свойства — важная переменная экземпляра @property_hash содержит все текущие значения состояния свойств (она создается лениво). Важно, чтобы эти значения правильно управлялись в методах {instances}, {prefetch} и в методах, которые изменяют текущее состояние (те, которые изменяют жизненный цикл (создают, уничтожают) или изменяют какое-либо значение, отраженное в свойстве). .
Таким образом, запрос должен возвращать хэш, отражающий текущее состояние пакета, выраженное в пакете Puppet. свойства.
Это не задокументировано AFAIK. Я понял это путем реверс-инжиниринга.