From 08bad8904189c01f3a90cfa0e6222b35316b17a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Wed, 20 Nov 2013 11:30:08 +0100 Subject: [PATCH] fix for latest report in overview * report/latest/ uses limit parameter in _query to get just one report * disable "Latest Report" button if there is no report * HTTP Status 500 if there is no report on report/latest/ --- puppetboard/app.py | 12 ++++++++---- puppetboard/templates/index.html | 8 +++++++- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/puppetboard/app.py b/puppetboard/app.py index 81e3b3a..e642a5b 100644 --- a/puppetboard/app.py +++ b/puppetboard/app.py @@ -203,11 +203,15 @@ def report_latest(node_name): as long as PuppetDB can't filter reports for latest-report? field. This feature has been requested: http://projects.puppetlabs.com/issues/21554 """ - # TODO: use limit parameter in _query to get just one report node = get_or_abort(puppetdb.node, node_name) - reports = ten_reports(node.reports()) - report = list(yield_or_stop(reports))[0] - return redirect(url_for('report', node=node_name, report_id=report)) + reports = get_or_abort(puppetdb._query, 'reports', + query='["=","certname","' + node_name + '"]', + limit=1) + if len(reports) > 0: + report = reports[0]['hash'] + return redirect(url_for('report', node=node_name, report_id=report)) + else: + abort(500) @app.route('/report//') diff --git a/puppetboard/templates/index.html b/puppetboard/templates/index.html index 2810c20..096c837 100644 --- a/puppetboard/templates/index.html +++ b/puppetboard/templates/index.html @@ -78,7 +78,13 @@ {% endif %} {{ node.name }} - Latest Report + + {% if node.unreported_time != None or node.status != 'unreported' %} + Latest Report + {% else %} + No Report + {% endif %} + {% endif %} {% endfor %}