我为新资源实现了一对类型和提供程序。 我为提供者定义了一系列新参数,它看起来像这样。
...
newparam(:name) do
desc "description blah"
end
newproperty(:foo) do
desc "foo property. This should be able to take empty value"
end
...
在提供程序中,我为属性foo
...
def foo
@property_hash[:foo]
end
def foo=(value)
# call cmd to set property
set_property(value)
end
...
当foo有值时,此资源运行良好,但如果未设置该值,则会触发错误消息。
# puppet resource my_property foo="bar" // works well
# puppet resource my_property foo="" // error
Error: Could not run: Invalid parameter setting foo=
foo=""
意味着“属性重置”,我想我有什么方法可以为属性允许空字符串。
编辑:我尝试munge
获取@resource.original_parameters[:foo]
值并覆盖它,但是木偶甚至没有进入munge do
块而没有参数值。任何价值(甚至是空格),当然都有效。