何时应该在Puppet提供程序中使用resource或@property\u哈希?

何时应该在Puppet提供程序中使用resource或@property\u哈希?,puppet,Puppet,编写Puppet提供程序时,有两种方法可以访问资源的属性:resource变量和@property\u hash变量。我试图在setter中使用属性foo,并从使用resource[:foo]开始。这样做时有效 puppet apply puppet resource thing thingname 当你做某事时,它就起作用了 puppet apply puppet resource thing thingname 但是如果我尝试 puppet resource thing thingn

编写Puppet提供程序时,有两种方法可以访问资源的属性:
resource
变量和
@property\u hash
变量。我试图在setter中使用属性
foo
,并从使用
resource[:foo]
开始。这样做时有效

puppet apply
puppet resource thing thingname
当你做某事时,它就起作用了

puppet apply
puppet resource thing thingname
但是如果我尝试

puppet resource thing thingname foo=Foo
然后
资源[:foo]
被取消设置
@property\u hash[:foo]
具有正确的值。 在调用
self.instances
中的
new
之前,我可以打印出
foo
的值,这两种情况下都是正确的

显示到处使用的
资源
。它位于一个从
flush
调用的函数中,因此我将所有设置器都更改为使用
flush
,但仍然没有设置
资源[:foo]


我可以使用
@property\u hash[:foo]
,但一位同事发现,在创建资源时,这不起作用-在我的情况下,这不是一个问题,因为资源只是被管理而不是创建的-但我真的需要正确理解这一点,以避免将来出现问题。我应该何时使用
资源
以及何时使用
@property\u哈希
?为什么
resource
在那个例子中起作用,但对我不起作用呢?

resource
在我需要的时候对我起作用。还请注意,参数属性和属性属性之间存在差异,这可能解释了您的同事在我需要时为我提供
资源
的问题。还请注意,参数属性和属性属性之间存在差异,这可能解释了同事遇到的问题