如何在属性文件中检查我的属性是否包含值,空字符串或nil?
假设我在default.rb
中有这个我只是不确定验证节点属性是否具有值或null的最佳方法是什么?
#<> Supply endpoint or not < clients will supply this value or not in my run list >
default[:my_code][:my_endpoint] = ""
#Option 1
if node[:my_code][:my_endpoint] == ""
default[:my_code][:my_endpoint] = 'default'
end
#Option 2
if node[:my_code][:my_endpoint].to_s.empty?
default[:my_code][:my_endpoint] = 'default'
end
我目前无法对此进行测试,因为我的环境已经失效,所以我现在就把这个问题放在首位。我实际上没有尝试过Option 2.我只是为了谷歌搜索或者有更好的选择
答案 0 :(得分:0)
我认为你的做法在这种情况下是错误的。您应该按照设计使用precedence levels。在属性文件中将my_endpoint
设置为default
。如有必要,可在任何更高级别覆盖它 - 食谱/环境/角色。