Skip to content
Golang PuppetDB API client
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
.travis.yml
LICENSE
README.md
puppetdb.go
puppetdb_test.go

README.md

go-puppetdb

An API client interface for PuppetDB

Please note that there since I wrote this, there is now a PuppetDB client implementation by Ken Barber from Puppet that you can also choose to use: https://github.com/kbarber/puppetdb-client-go

Background

Package contains interface to PuppetDB v3 API. Interface is still work in progress and does not cover the entire API.

Installation

Run go get github.com/akira/go-puppetdb.

Usage

import (
  "github.com/akira/go-puppetdb"
)

Create a Client with PuppetDB Hostname:

// second parameter enables verbose output
client := puppetdb.NewClient("localhost", 8080, true)

resp, err := client.Nodes()
...
resp, err := client.NodeFacts("node123")
...

It's also possible to use tls

client := puppetdb.NewClientSSL("puppet", 8081,"key.pem", "cert.pem", "ca.pem", true)

resp, err := client.Nodes()
...
resp, err := client.NodeFacts("node123")
...

Queries can be represented as an array of strings and turned into JSON:

query, err := puppetdb.QueryToJSON([]string{"=", "report", "aef00"})
resp, res_err := client.Events(query, nil)

Contributors

Malte Krupa (temal-)

Will Roberts (willroberts)

Daniel Selans (dselans)

You can’t perform that action at this time.