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 %}