我正试图为一个icinga2实例编写一个包装器。配置文件中的对象如下所示
object object_type "object_name" {
some_property = "some_value"
}
例子
^{pr2}$我想做的是:
icinga = icinga("/etc/icinga2/conf.d/hosts.conf")
print icinga.hosts_list()
icinga.hosts_add("server3","192.168.0.3")
icinga.hosts_remove("server1")
所以我试着用pynag,比如
nc = Config('/etc/icinga2/conf.d/hosts.conf')
nc.parse()
print nc.get_host('server1')
但我得到了
File "./icinga.py", line 51, in <module>
print nc.get_host('server1')
File "/Library/Python/2.7/site-packages/pynag/Parsers/__init__.py", line 1259, in get_host
return self.get_object('host', object_name, user_key=user_key)
File "/Library/Python/2.7/site-packages/pynag/Parsers/__init__.py", line 1238, in get_object
for item in self.data['all_%s' % object_type]:
KeyError: 'all_host'
有没有一种简单的方法来处理这种格式?在
我用这样的狙击手:
我用主机conf文件创建dict,如下所示:
然后,我有一个容易解析的dict。在
使用pyparsing,不难理解这样的结构化文本格式。在
以下是解析器的外观:
以下是如何应用解析器和访问解析数据:
^{pr2}$有了这个输出:
相关问题 更多 >
编程相关推荐