fix for latest report in overview

* report/latest/<node_name> 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/<node_name>
This commit is contained in:
Julius Härtl
2013-11-20 11:30:08 +01:00
parent dcf8abefe9
commit 08bad89041
2 changed files with 15 additions and 5 deletions

View File

@@ -203,11 +203,15 @@ def report_latest(node_name):
as long as PuppetDB can't filter reports for latest-report? field. This as long as PuppetDB can't filter reports for latest-report? field. This
feature has been requested: http://projects.puppetlabs.com/issues/21554 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) node = get_or_abort(puppetdb.node, node_name)
reports = ten_reports(node.reports()) reports = get_or_abort(puppetdb._query, 'reports',
report = list(yield_or_stop(reports))[0] 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)) return redirect(url_for('report', node=node_name, report_id=report))
else:
abort(500)
@app.route('/report/<node>/<report_id>') @app.route('/report/<node>/<report_id>')

View File

@@ -78,7 +78,13 @@
{% endif %} {% endif %}
</td> </td>
<td><a href="{{url_for('node', node_name=node.name)}}">{{ node.name }}</a></td> <td><a href="{{url_for('node', node_name=node.name)}}">{{ node.name }}</a></td>
<td><a class="btn btn-small btn-primary" href="{{url_for('report_latest', node_name=node.name)}}">Latest Report</a></td> <td>
{% if node.unreported_time != None or node.status != 'unreported' %}
<a class="btn btn-small btn-primary" href="{{url_for('report_latest', node_name=node.name)}}">Latest Report</a>
{% else %}
<a class="btn btn-small"> No Report </a>
{% endif %}
</td>
</tr> </tr>
{% endif %} {% endif %}
{% endfor %} {% endfor %}