食谱一个规定,我想在菜谱B中的LWRP或HWRP延伸,使得我可以做类似以下,其中LWRP provider_b
将使用现有的代码/资源provider_a
并接受它可以使用它的附加属性用自己的行动:
provider_a "A" do
attr_from_a :value
end
provider_b "B" do
attr_from_a :value
attr_from_b :value
end
这是可能的,而且是它仍然可能的,如果我想避免编辑食谱阿?
食谱一个规定,我想在菜谱B中的LWRP或HWRP延伸,使得我可以做类似以下,其中LWRP provider_b
将使用现有的代码/资源provider_a
并接受它可以使用它的附加属性用自己的行动:
provider_a "A" do
attr_from_a :value
end
provider_b "B" do
attr_from_a :value
attr_from_b :value
end
这是可能的,而且是它仍然可能的,如果我想避免编辑食谱阿?
这听起来像你想创建现有LWRP的子资源,所以你不是“捆绑”了 - 你“推它”。 该LWRP语法使得这比预期少,因为资源在运行时动态编译成Ruby类。
你可以切换到HWRPs(新詹金斯食谱是使用继承和面向对象的扩展资源和共享属性一个很好的例子)。 就其性质而言,LWRPs都不是很可扩展的,因为它们是动态的重建,并在运行时重新加载。
我认为,对部分自定义LWRPs的文档和教程末链接应该帮助你。
编辑:好吧,也许在看这个LWRP或本LWRP去多一点到正确的方向(我认为这是对LWRPs一个很常见的模式,我没去这么多细说)。 您可以通过访问参数new_resource.param_a
。
所以,这样的事情应该工作:
action :install do
provider_a "A" do
param_a new_resource.param_a
end
provider_b "B" do
param_a new_resource.param_a
param_b new_resource.param_b
end
end