Puppet:Package Provider - 什么是"查询"方法为?

时间:2013-11-29 10:06:15

标签: package puppet

我正在构建自定义包提供程序,我不确定查询方法应该返回什么。

例如包裹提供者:

https://github.com/puppetlabs/puppet/blob/master/lib/puppet/provider/package/dpkg.rb

找到包提供程序的示例,但没有关于每个方法应该做什么的文档。

谢谢!

1 个答案:

答案 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。我通过逆向工程找到了它。

希望这会有所帮助。祝你好运!