diff --git a/puppetboard/app.py b/puppetboard/app.py index 81e3b3a..edf2736 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","{0}"]'.format(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(404) @app.route('/report//') diff --git a/puppetboard/static/css/puppetboard.css b/puppetboard/static/css/puppetboard.css index 99188e9..46d002f 100644 --- a/puppetboard/static/css/puppetboard.css +++ b/puppetboard/static/css/puppetboard.css @@ -99,3 +99,6 @@ div[id^='message-event'] { background-color: rgb(231, 76, 60); background-color: rgb(129, 145, 146); } +.btn-lastreport { + width:100px; +} diff --git a/puppetboard/templates/index.html b/puppetboard/templates/index.html index 2810c20..c051aa8 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 %}