puppetdb api的python包装器

puppetdb_api的Python项目详细描述


puppetdb api是围绕puppetdb restapi的python api。

查询

nodesfactsresources可以通过将nodesfactsresources与布尔运算符orandnot匹配来查询。

所有查询都可以作为一个raw查询来完成,以获得puppetdb返回的原始json。

节点

>>> p=PuppetDB('https://puppetdb.example.com')>>> p.nodes(Or(Fact('role','example','='),Resource('Class','Klass_name','=')))[u'node1.example.com', u'node2.example.com']
>>> p.nodes_raw(Node('node1.example.com','='))[{u'deactivated': None, u'facts_timestamp': u'2014-08-25T19:45:00.707Z', u'name': u'node1.example.com', u'report_timestamp': u'2014-08-25T19:46:09.616Z', u'catalog_timestamp': u'2014-08-25T19:45:14.896Z'}]

事实

通过将多个事实名称传递给facts参数,可以获得多个事实的值。

>>> p=PuppetDB('https://puppetdb.example.com')>>> p.facts(query=And(Fact('role','example','='),Not(Resource('Class','Klass_name','='))),facts=['role','hostname']){u'hostname': [u'hostname1'], u'role': [u'example']}
>>> p.facts_raw(Node('node1.example.com','~'))[{u'certname': u'node1.example.com', u'name': u'clientversion', u'value': u'3.8.7'}, {u'certname': u'node1.example.com', u'name': u'uptime_hours', u'value': u'656'}]

资源

通过将多个资源名称传递给resources参数,可以获得多个资源的值。

>>> p=PuppetDB('https://puppetdb.example.com')>>> p.resources(query=And(Fact('role','example','='),Not(Resource('Class','Klass_name','='))),resources=['Some_resource']){u'Some_resource': [u'Resource_title']}
>>> p.resources_raw(query=Node('node1.example.com','~'),resources=['Some_resource'])[{u'certname': u'node1.example.com', u'resource': u'8df598f3923a05e543e884d247d74cac08087a45', u'parameters': {}, u'title': u'resource_title', u'tags': [u'tag1', u'tag2'], u'exported': False, u'file': u'/etc/puppet/environments/example/example.pp', u'line': 25, u'type': u'Some_resource'}]

安装

$ pip install puppetdb_api

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为jboss/KeyClope设置ssl/https   java理解Spring引导中的@ModelAttribute和@RequestMapping   安卓 Firebase空对象引用“long java.lang.long.longValue()”   java绑定不匹配:类型A不是TestService类型<T>   java如何分割彩色线?   java Android应用程序只能在一台设备上冻结,而且有时也会冻结。(带输出)   java安卓使用Jackson库:如何加载索引范围从到的对象   收集与多个AWS服务交互的Java应用程序的性能指标   更多关于Java中的Random:获得几乎真正的随机化   java如何检查时间戳是否为10分钟?   Spring调度器/执行器的java AOP特性   java线程。睡眠使我的应用程序崩溃   Java Stream GroupingBy collect在自定义对象中   java有一个队列订阅多个队列,ProgramMaticali   查看/写入数据库SQLite时发生java致命异常?   java setRepeating()函数工作不正常(AlarmManger Android)   java查询hibernate中向manager报告的总人数   java为什么Firebase实时数据库未更新?