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语法错误,<预期   java Log4j在未设置ThreadId时如何使用正确的文件名   java通过将模型类的实例传递给comparable和将包装器传递给comparable之间有什么区别?   javafx Java MVC InvalizationListener   对于SD卡导出,文件的java I get父目录不可写   swing如何在Java的JTextArea中追加数据?   java在servlet中保存和检索用户socket   java资源包是否引用其他字符串?   java Hibernate OnetoMany映射(按日期范围)?   java如何基于生产者线程状态停止消费者线程   java bean类[org.springframework.batch.item.file.FlatFileItemReader]的属性“parameterValues”无效   java在不同索引的两个字符串中查找匹配字符   java为什么使用Guice提供程序而不是普通注入   Java包含jar文件命令行   java我不希望我的函数返回null。最好的解决方案是什么?   java在JNI的内存和速度方面会受益吗?   java Cors错误一旦在Heroku中部署Angular和SpringBoot应用程序   java如何解决[子类]中的私有访问   java类<List>或类<List<?>>   java如何测量宽度和高度,然后在添加视图之前更改参数?