gpt4 book ai didi

ruby - 检查 Chef 中是否存在嵌套属性的正确方法是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 06:45:32 27 4
gpt4 key购买 nike

有多种方法可以检查 Chef 中是否存在嵌套属性,我不确定哪种方法是正确的/最好的,如果有的话会导致空属性存储在节点上:

node[:parent] and node[:parent][:child]

node.attribute?(:parent) and node[:parent].attribute?(:child))

node[:parent].nil? and node[:parent][:child].nil?

如果能够同时检查父项和子项会更好,但我不知道这是否可能。我使用的是 Chef 10,而不是 Chef 11,但欢迎回答解释这两个问题。

最佳答案

节点属性对象是HashMap。您可以使用 ruby​​ native API 来查找嵌套属性。

Chef 节点对象提供了许多辅助方法,例如:

node.attribute?()
node[:foo].attribute?(:bar)
node[:foo].member?(:bar)

Chef 11 中还有一个新方法node.debug_value() 可以帮助您调试节点属性,这也很有帮助:

node.debug_value(:foo, :bar)

详情可以引用文章Chef 11 In-Depth: Attributes Changes

关于ruby - 检查 Chef 中是否存在嵌套属性的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18986096/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com