Puppet 自定义类型的 munge 方法如何访问整个数组参数?

Puppet 自定义类型的 munge 方法如何访问整个数组参数?

此属性是一个数组,其顺序无关紧要。它实际上是一个集合,但据我所知,Puppet 没有集合。所以我尝试使用它来对munge值进行排序:

newproperty(:things, :array_matching => :all) do  
  munge do |value|
    value.sort
  end
end

这失败了,因为munge应用于数组中的每个值而不是整个值。有什么方法可以让它工作吗?

答案1

我遇到了类似的问题并解决了像这样:

newproperty(:things, :array_matching => :all) do  
  def should(values)
    sort(super)
  end
  def should=(values)
    super
    sort!(@should)
  end
  def insync?(is)
    sort(is) == should
  end
end

如果我正在编写一个新模块,我会使用资源 API,它有一个规范化钩子就是为此目的而生的。

相关内容