From bfa4d1042e92229ec5a5f2a10ccd489806b46ace Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Pinson?= Date: Mon, 16 Nov 2015 08:58:34 +0100 Subject: [PATCH] Allow configuration of default environment --- puppetboard/app.py | 36 ++++++++++++++++----------------- puppetboard/default_settings.py | 1 + 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/puppetboard/app.py b/puppetboard/app.py index 0213fbd..3c8d69c 100644 --- a/puppetboard/app.py +++ b/puppetboard/app.py @@ -122,7 +122,7 @@ def server_error(e): return render_template('500.html', envs=envs), 500 -@app.route('/', defaults={'env': 'production'}) +@app.route('/', defaults={'env': app.config['DEFAULT_ENVIRONMENT']}) @app.route('//') def index(env): """This view generates the index page and displays a set of metrics and @@ -192,7 +192,7 @@ def index(env): ) -@app.route('/nodes', defaults={'env': 'production'}) +@app.route('/nodes', defaults={'env': app.config['DEFAULT_ENVIRONMENT']}) @app.route('//nodes') def nodes(env): """Fetch all (active) nodes from PuppetDB and stream a table displaying @@ -230,7 +230,7 @@ def nodes(env): current_env=env))) -@app.route('/inventory', defaults={'env': 'production'}) +@app.route('/inventory', defaults={'env': app.config['DEFAULT_ENVIRONMENT']}) @app.route('//inventory') def inventory(env): """Fetch all (active) nodes from PuppetDB and stream a table displaying @@ -302,7 +302,7 @@ def inventory(env): current_env=env))) -@app.route('/node/', defaults={'env': 'production'}) +@app.route('/node/', defaults={'env': app.config['DEFAULT_ENVIRONMENT']}) @app.route('//node/') def node(env, node_name): """Display a dashboard for a node showing as much data as we have on that @@ -347,7 +347,7 @@ def node(env, node_name): current_env=env) -@app.route('/reports/', defaults={'env': 'production', 'page': 1}) +@app.route('/reports/', defaults={'env': app.config['DEFAULT_ENVIRONMENT'], 'page': 1}) @app.route('//reports/', defaults={'page': 1}) @app.route('//reports/page/') def reports(env, page): @@ -403,7 +403,7 @@ def reports(env, page): current_env=env))) -@app.route('/reports//', defaults={'env': 'production', 'page': 1}) +@app.route('/reports//', defaults={'env': app.config['DEFAULT_ENVIRONMENT'], 'page': 1}) @app.route('//reports/', defaults={'page': 1}) @app.route('//reports//page/') def reports_node(env, node_name, page): @@ -461,7 +461,7 @@ def reports_node(env, node_name, page): current_env=env) -@app.route('/report/latest/', defaults={'env': 'production'}) +@app.route('/report/latest/', defaults={'env': app.config['DEFAULT_ENVIRONMENT']}) @app.route('//report/latest/') def report_latest(env, node_name): """Redirect to the latest report of a given node. @@ -489,7 +489,7 @@ def report_latest(env, node_name): url_for('report', env=env, node_name=node_name, report_id=report.hash_)) -@app.route('/report//', defaults={'env': 'production'}) +@app.route('/report//', defaults={'env': app.config['DEFAULT_ENVIRONMENT']}) @app.route('//report//') def report(env, node_name, report_id): """Displays a single report including all the events associated with that @@ -529,7 +529,7 @@ def report(env, node_name, report_id): current_env=env) -@app.route('/facts', defaults={'env': 'production'}) +@app.route('/facts', defaults={'env': app.config['DEFAULT_ENVIRONMENT']}) @app.route('//facts') def facts(env): """Displays an alphabetical list of all facts currently known to @@ -556,7 +556,7 @@ def facts(env): current_env=env) -@app.route('/fact/', defaults={'env': 'production'}) +@app.route('/fact/', defaults={'env': app.config['DEFAULT_ENVIRONMENT']}) @app.route('//fact/') def fact(env, fact): """Fetches the specific fact from PuppetDB and displays its value per @@ -586,7 +586,7 @@ def fact(env, fact): current_env=env))) -@app.route('/fact//', defaults={'env': 'production'}) +@app.route('/fact//', defaults={'env': app.config['DEFAULT_ENVIRONMENT']}) @app.route('//fact//') def fact_value(env, fact, value): """On asking for fact/value get all nodes with that fact. @@ -614,7 +614,7 @@ def fact_value(env, fact, value): current_env=env) -@app.route('/query', methods=('GET', 'POST'), defaults={'env': 'production'}) +@app.route('/query', methods=('GET', 'POST'), defaults={'env': app.config['DEFAULT_ENVIRONMENT']}) @app.route('//query', methods=('GET', 'POST')) def query(env): """Allows to execute raw, user created querries against PuppetDB. This is @@ -654,7 +654,7 @@ def query(env): abort(403) -@app.route('/metrics', defaults={'env': 'production'}) +@app.route('/metrics', defaults={'env': app.config['DEFAULT_ENVIRONMENT']}) @app.route('//metrics') def metrics(env): """Lists all available metrics that PuppetDB is aware of. @@ -674,7 +674,7 @@ def metrics(env): current_env=env) -@app.route('/metric/', defaults={'env': 'production'}) +@app.route('/metric/', defaults={'env': app.config['DEFAULT_ENVIRONMENT']}) @app.route('//metric/') def metric(env, metric): """Lists all information about the metric of the given name. @@ -694,7 +694,7 @@ def metric(env, metric): envs=envs, current_env=env) -@app.route('/catalogs', defaults={'env': 'production'}) +@app.route('/catalogs', defaults={'env': app.config['DEFAULT_ENVIRONMENT']}) @app.route('//catalogs') def catalogs(env): """Lists all nodes with a compiled catalog. @@ -745,7 +745,7 @@ def catalogs(env): log.warn('Access to catalog interface disabled by administrator') abort(403) -@app.route('/catalog/', defaults={'env': 'production'}) +@app.route('/catalog/', defaults={'env': app.config['DEFAULT_ENVIRONMENT']}) @app.route('//catalog/') def catalog_node(env, node_name): """Fetches from PuppetDB the compiled catalog of a given node. @@ -766,7 +766,7 @@ def catalog_node(env, node_name): log.warn('Access to catalog interface disabled by administrator') abort(403) -@app.route('/catalog/submit', methods=['POST'], defaults={'env': 'production'}) +@app.route('/catalog/submit', methods=['POST'], defaults={'env': app.config['DEFAULT_ENVIRONMENT']}) @app.route('//catalog/submit', methods=['POST']) def catalog_submit(env): """Receives the submitted form data from the catalogs page and directs @@ -797,7 +797,7 @@ def catalog_submit(env): log.warn('Access to catalog interface disabled by administrator') abort(403) -@app.route('/catalogs/compare/...', defaults={'env': 'production'}) +@app.route('/catalogs/compare/...', defaults={'env': app.config['DEFAULT_ENVIRONMENT']}) @app.route('//catalogs/compare/...') def catalog_compare(env, compare, against): """Compares the catalog of one node, parameter compare, with that of diff --git a/puppetboard/default_settings.py b/puppetboard/default_settings.py index 65c9ec6..b2e1bdd 100644 --- a/puppetboard/default_settings.py +++ b/puppetboard/default_settings.py @@ -6,6 +6,7 @@ PUPPETDB_SSL_VERIFY = True PUPPETDB_KEY = None PUPPETDB_CERT = None PUPPETDB_TIMEOUT = 20 +DEFAULT_ENVIRONMENT = 'production' SECRET_KEY = os.urandom(24) DEV_LISTEN_HOST = '127.0.0.1' DEV_LISTEN_PORT = 5000