I've released a new version of this module, it no longer requires the rest_client gem and uses the Puppet HTTP pool instead. It also supports getting facts for an array of hosts at once. As an example if you want the IPs of all hosts with Apache class you could do this:
$hosts = pdbfactquery(pdbresourcequery([ 'and', [ '=', [ 'node', 'active' ], true ], [ '=', 'type', 'Class' ], [ '=', 'title', 'Apache' ] ], 'certname'), 'ipaddress') It is also on the Puppet Forge now: http://forge.puppetlabs.com/dalen/puppetdbquery On 19 June 2012 16:48, Erik Dalén <erik.gustav.da...@gmail.com> wrote: > I've created a set of functions that exposes the PuppetDB query API > from inside puppet. Feel free to give them a spin and get back to me > with any bugs or feedback. > > https://github.com/dalen/puppet-puppetdbquery > > They require ruby-restclient, ruby-json and the puppetdb-terminus. > > To give you an example of a query you can do inside puppet code using > these functions and PuppetDB: > > # Return an array of active nodes with an uptime more than 30 days and > # having the class 'apache' > $hosts = pdbnodequery([ 'and', [ '=', [ 'node', 'active' ], true ], > ['>', [ 'fact', 'uptime_days' ], 30 ] ], > [ 'and', [ '=', 'type', 'Class' ], [ '=', 'title', 'Apache' ] ] )" > > This can be used for example to populate lists of nodes behind load > balancers and such dynamically instead of writing them down in your > puppet code. > > -- > Erik Dalén -- Erik Dalén -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.