Page MenuHomePhabricator

Flask/PuppetDB PoC

Authored By
faidon
Dec 19 2018, 6:24 PM
Size
520 B
Referenced Files
None
Subscribers
None

Flask/PuppetDB PoC

#!/usr/bin/env python3
from flask import Flask, abort, jsonify
import pypuppetdb
import pypuppetdb.QueryBuilder as pqb
app = Flask(__name__)
# facts that are non-sensitive and safe to process
WHITELIST = [
"serial_number",
]
@app.route('/v1/fact/<fact_name>')
def fact(fact_name):
if fact_name not in WHITELIST:
abort(403)
db = pypuppetdb.connect()
fact_list = db.facts(query=pqb.EqualsOperator("name", fact_name))
result = {f.node: f.value for f in fact_list}
return jsonify(result)

File Metadata

Mime Type
text/plain; charset=utf-8
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
6860834
Default Alt Text
Flask/PuppetDB PoC (520 B)

Event Timeline