diff --git a/puppetboard/app.py b/puppetboard/app.py index 141fe5f..ed1a52f 100644 --- a/puppetboard/app.py +++ b/puppetboard/app.py @@ -9,7 +9,6 @@ try: except ImportError: from urllib.parse import unquote from datetime import datetime, timedelta -from multiprocessing.dummy import Pool as ThreadPool from flask import ( Flask, render_template, abort, url_for, @@ -92,17 +91,19 @@ def index(): # TODO: Would be great if we could parallelize this somehow, doing these # requests in sequence is rather pointless. prefix = 'com.puppetlabs.puppetdb.query.population' - pool = ThreadPool() - endpoints = [ - "{0}{1}".format(prefix, ':type=default,name=num-nodes'), - "{0}{1}".format(prefix, ':type=default,name=num-resources'), - "{0}{1}".format(prefix, ':type=default,name=avg-resources-per-node'), - ] - fetched_metrics = pool.map(puppetdb.metric, endpoints) + num_nodes = get_or_abort( + puppetdb.metric, + "{0}{1}".format(prefix, ':type=default,name=num-nodes')) + num_resources = get_or_abort( + puppetdb.metric, + "{0}{1}".format(prefix, ':type=default,name=num-resources')) + avg_resources_node = get_or_abort( + puppetdb.metric, + "{0}{1}".format(prefix, ':type=default,name=avg-resources-per-node')) metrics = { - 'num_nodes': fetched_metrics[0]['Value'], - 'num_resources': fetched_metrics[1]['Value'], - 'avg_resources_node': "{0:10.0f}".format(fetched_metrics[2]['Value']), + 'num_nodes': num_nodes['Value'], + 'num_resources': num_resources['Value'], + 'avg_resources_node': "{0:10.0f}".format(avg_resources_node['Value']), } nodes = puppetdb.nodes(