【发布时间】:2014-07-24 10:12:33
【问题描述】:
我正在尝试将一个资源属性的默认值设置为另一个属性的值。
我正在为我正在构建的 tomcat 食谱定义一个包含以下定义的资源。我想拥有可以独立设置的“名称”和“服务名称”属性。当未设置服务名称时,我希望它默认为“名称”提供的任何内容。
以下不符合我的预期:
attribute :name, :kind_of => String, :required => true, :name_attribute => true
attribute :service_name, :kind_of => String, :default => :name
注意第二行末尾的“:default => :name”。当我在配方中的新块中引用我的资源时
my_tomcat "install tomcat" do
name "foo_bar"
end
属性值被赋值为
name = "foo_bar"
service_name = "name"
这不是我所期望的。除非明确设置,否则我希望 service_name 为“foo_bar”。
我试过了
attribute :service_name, :kind_of => String, :default => new_resource.name
attribute :service_name, :kind_of => String, :default => @new_resource.name
但那些不能编译。
有没有办法做我想做的事?
【问题讨论】:
标签: ruby chef-infra lwrp