Ruby puppet:为资源的参数获取空值

Ruby puppet:为资源的参数获取空值,ruby,puppet,Ruby,Puppet,我为一个新资源实现了一对类型和提供者。 我为提供者定义了一系列新参数,如下所示 ... newparam(:name) do desc "description blah" end newproperty(:foo) do desc "foo property. This should be able to take empty value" end ... 在provider中,我为属性foo ... def foo @property_hash[:foo] end

我为一个新资源实现了一对类型和提供者。 我为提供者定义了一系列新参数,如下所示

...
newparam(:name) do
    desc "description blah"
end

newproperty(:foo) do
    desc "foo property. This should be able to take empty value"
end
...
在provider中,我为属性
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_参数[:foo]
值并覆盖它,但是puppet甚至没有参数值就没有进入
munge do
块。当然,对于任何值(甚至是空白),都是有效的。

puppet应用-e'my_属性{“test”:foo=>“}”会产生相同的结果吗?那么
puppet apply-e'my_属性{“test”:}
呢?我总是发现
木偶资源
是一张古怪的
fwiw.nope。。两者都会产生相同的结果你能幽默我并添加其中任何一个的全部输出吗?