summaryrefslogtreecommitdiff
path: root/elastic/generate-config.py
diff options
context:
space:
mode:
Diffstat (limited to 'elastic/generate-config.py')
-rwxr-xr-xelastic/generate-config.py101
1 files changed, 61 insertions, 40 deletions
diff --git a/elastic/generate-config.py b/elastic/generate-config.py
index 0aa998f..2d4c7bc 100755
--- a/elastic/generate-config.py
+++ b/elastic/generate-config.py
@@ -13,23 +13,39 @@ import sys
URL='https://moose.leap.se:9200'
-# configure a logger
-logger = logging.getLogger(__name__)
-ch = logging.StreamHandler()
-ch.setFormatter(logging.Formatter('%(asctime)s %(message)s'))
-logger.addHandler(ch)
-logger.setLevel(logging.INFO)
-
-
-# Generate visualizations
-def generate_visualizations():
- dir = './visualization/'
- with open(os.path.join(dir, 'template.mustache'), 'r') as f:
+def _get_logger():
+ logger = logging.getLogger(__name__)
+ ch = logging.StreamHandler()
+ ch.setFormatter(logging.Formatter('%(asctime)s %(message)s'))
+ logger.addHandler(ch)
+ logger.setLevel(logging.INFO)
+ return logger
+
+
+def _delete_jsons(directory):
+ for f in os.listdir(directory):
+ if f.endswith('.json'):
+ os.unlink(os.path.join(directory, f))
+
+
+def generate_visualizations(tests):
+ with open(os.path.join('templates', 'visualization.mustache'), 'r') as f:
template = f.read()
+ with open(os.path.join('templates', 'visualization-visState.mustache')) as f:
+ template_visState = f.read()
+ with open(os.path.join('templates', 'visualization-searchSourceJSON.mustache')) as f:
+ template_searchSourceJSON = f.read()
+
+ out_dir = './visualization'
+ _delete_jsons(out_dir)
+
+ # remove all json files in output directory
+ for f in os.listdir(out_dir):
+ if f.endswith('.json'):
+ os.unlink(os.path.join(out_dir, f))
- # test_names = tests.
for test_name in tests:
- out_file = os.path.join(dir, test_name + '.json')
+ out_file = os.path.join(out_dir, test_name + '.json')
logger.info('Generating ' + out_file)
context = {
@@ -39,25 +55,30 @@ def generate_visualizations():
"AND machine_info.host='weasel' "
"AND name='" + test_name + "'"
}
- rendered = pystache.render(template, context)
- # verify we generated valid JSON visualizations
- content = json.loads(rendered)
- visState = content['visState']
- searchSourceJSON = content['kibanaSavedObjectMeta']['searchSourceJSON']
+ visState = pystache.render(template_visState, context)
assert json.loads(visState)
+ context['visState'] = json.dumps(visState)
+
+ searchSourceJSON = pystache.render(template_searchSourceJSON, context)
assert json.loads(searchSourceJSON)
+ context['searchSourceJSON'] = json.dumps(searchSourceJSON)
+
+ rendered = pystache.render(template, context)
+ assert json.loads(rendered)
with open(out_file, 'w') as out:
out.write(rendered)
-# Generate Dashboard
-def generate_dashboards():
- dir = './dashboard/'
- with open(os.path.join(dir, 'template.mustache'), 'r') as f:
+
+def generate_dashboards(tests):
+ with open(os.path.join('templates', 'dashboard.mustache'), 'r') as f:
template = f.read()
- out_file = os.path.join(dir, 'soledad-benchmarks.json')
+ out_dir = './dashboard'
+ _delete_jsons(out_dir)
+
+ out_file = os.path.join(out_dir, 'soledad-benchmarks.json')
logger.info('Generating ' + out_file)
panels = []
@@ -74,27 +95,27 @@ def generate_dashboards():
'type': 'visualization',
})
- panels_json = {'panels_json': json.dumps(panels)}
- rendered = pystache.render(template, panels_json)
+ context = {'panels_json': json.dumps(panels)}
+ rendered = pystache.render(template, context)
+ assert json.loads(rendered), rendered
with open(out_file, 'w') as f:
f.write(rendered)
-# Main
-
-# Get all test names
-with open('./query/test_names.json') as f:
- response = requests.get(URL + '/_search', data=f)
- buckets = response.json()['aggregations']['test_names']['buckets']
-
-tests = []
-for d in buckets:
- name = d['key']
- tests.append(name)
-tests = sorted(tests)
+def _get_test_names():
+ with open('./query/test_names.json') as f:
+ response = requests.get(URL + '/_search', data=f)
+ buckets = response.json()['aggregations']['test_names']['buckets']
+ tests = []
+ for d in buckets:
+ name = d['key']
+ tests.append(name)
+ return sorted(tests)
if __name__ == '__main__':
- generate_dashboards()
- generate_visualizations()
+ logger = _get_logger()
+ tests = _get_test_names()
+ generate_dashboards(tests)
+ generate_visualizations(tests)