我正在构建自定义包提供程序,我不确定查询方法应该返回什么。
例如包裹提供者:
https://github.com/puppetlabs/puppet/blob/master/lib/puppet/provider/package/dpkg.rb
找到包提供程序的示例,但没有关于每个方法应该做什么的文档。
谢谢!
答案 0 :(得分:1)
查询方法由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
在Puppet::Provider
的rubydoc中,它说明了property_hash
的以下内容:
属性哈希 - 重要的实例变量
@property_hash
包含属性的所有当前状态值(它是延迟构建的)。 重要的是要在这些值中适当地管理这些值 方法{instances},{prefetch},以及改变方法的方法 当前状态(那些改变生命周期(创建,破坏)或者 改变由财产支持的一些价值。)
因此,查询应该返回一个反映在Puppet的package properties中表示的包的当前状态的哈希。
这未记录在案AFAIK。我通过逆向工程找到了它。
希望这会有所帮助。祝你好运!