PuppetDb Python脚本是否获取事实(如果存在)?
我在用电话。如果事实存在,我想打印它的值PuppetDb Python脚本是否获取事实(如果存在)?,python,puppet,Python,Puppet,我在用电话。如果事实存在,我想打印它的值 for group in groups: node = puppetdb.node(group[0]) if hasattr(node.facts, 'custom_fact'): print node.fact('custom_fact') 我对python比较陌生,但我读到上面的方法应该允许我检查对象是否有属性 不确定我是否误解了说明,或者PuppetDb对象的行为是否不同 如何仅在存在的情况下打印custom\u fact 编辑
for group in groups:
node = puppetdb.node(group[0])
if hasattr(node.facts, 'custom_fact'):
print node.fact('custom_fact')
我对python比较陌生,但我读到上面的方法应该允许我检查对象是否有属性
不确定我是否误解了说明,或者PuppetDb对象的行为是否不同
如何仅在存在的情况下打印custom\u fact
编辑:当我使用
print node.facts
时,它表示node.facts
是一个绑定方法。
所以我也在尝试这个(使用osfamily
fact,因为它应该总是返回一些东西):
打印事实
返回
打印节点。事实(“自定义事实”)
永远不会运行
还尝试
dir(facts)
查找不返回任何内容的属性,这让我相信这不是一个正常的对象。我发现使用try/except
效果更好:
for group in groups:
print group[0]
node = puppetdb.node(group[0])
try:
print node.fact('custom_fact').value
except:
pass
for group in groups:
print group[0]
node = puppetdb.node(group[0])
try:
print node.fact('custom_fact').value
except:
pass