From eb893ffef5e45cce9447105fe321da87c41c7682 Mon Sep 17 00:00:00 2001 From: Corey Hammerton Date: Sat, 21 May 2016 16:00:32 -0400 Subject: [PATCH] puppetboard/app.py: Protecting against ZeroDivisionErrors on calculations (#244) This (re-)fixes https://github.com/voxpupuli/puppetboard/issues/220 Corner cases where new installations or empty environments will return zero resources and zero nodes, this will result in a ZeroDivisionError. Now if this happens setting the average-resources-per-node to zero. --- puppetboard/app.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/puppetboard/app.py b/puppetboard/app.py index 542d4f0..ecea8ac 100644 --- a/puppetboard/app.py +++ b/puppetboard/app.py @@ -174,8 +174,11 @@ def index(env): env)) metrics['num_nodes'] = num_nodes[0]['count'] metrics['num_resources'] = num_resources[0]['count'] - metrics['avg_resources_node'] = "{0:10.0f}".format( - (num_resources[0]['count'] / num_nodes[0]['count'])) + try: + metrics['avg_resources_node'] = "{0:10.0f}".format( + (num_resources[0]['count'] / num_nodes[0]['count'])) + except ZeroDivisionError: + metrics['avg_resources_node'] = 0 nodes = get_or_abort(puppetdb.nodes, query=query,