Book Image

Extending Puppet

By : Alessandro Franceschi
Book Image

Extending Puppet

By: Alessandro Franceschi

Overview of this book

Table of Contents (21 chapters)
Extending Puppet
Credits
Foreword
About the Author
Acknowledgments
About the Reviewers
www.PacktPub.com
Preface
Index

The PuppetDB API


PuppetDB uses a Command/Query Responsibility Separation (CQRS) pattern:

  • Read: These activities are done for queries on the available REST-like endpoints

  • Write: These commands update catalog, facts, and reports and deactivate nodes

APIs are versioned (v1, v2, v3, and so on), and the most recent ones add functionalities and try to keep backward compatibility.

Querying PuppetDB (Read)

The URL for queries is structured as follows:

http[s]://<server>:<port>/<version>/<endpoint>?query=<query>

The available endpoints for queries are metrics, fact-names, facts, nodes, resources, reports, events, event-counts, aggregate-event-counts, and server-time.

Query strings are URL-encoded JSON arrays in prefix notation, which makes them look a bit unusual. The general format is as follows:

[ "<operator>" , "<field>" , "<value>" ]

The comparison operators are =, >=, >, < , <=, and ~ (regexp matching). Some examples are as follows:

["=", ...