summaryrefslogtreecommitdiffstats
path: root/docker/storperf-reporting
diff options
context:
space:
mode:
Diffstat (limited to 'docker/storperf-reporting')
-rw-r--r--docker/storperf-reporting/requirements.txt3
-rw-r--r--docker/storperf-reporting/src/app.py25
-rw-r--r--docker/storperf-reporting/src/templates/plot_tables.html37
3 files changed, 52 insertions, 13 deletions
diff --git a/docker/storperf-reporting/requirements.txt b/docker/storperf-reporting/requirements.txt
index 81903de..7016e72 100644
--- a/docker/storperf-reporting/requirements.txt
+++ b/docker/storperf-reporting/requirements.txt
@@ -1,2 +1,3 @@
Flask==0.12.2
-requests \ No newline at end of file
+requests
+validators \ No newline at end of file
diff --git a/docker/storperf-reporting/src/app.py b/docker/storperf-reporting/src/app.py
index 62d4d33..74d1339 100644
--- a/docker/storperf-reporting/src/app.py
+++ b/docker/storperf-reporting/src/app.py
@@ -10,17 +10,38 @@
from flask import Flask, redirect, url_for, request, render_template, session
from flask import send_from_directory, flash
import urllib
+import validators
import json
app = Flask(__name__)
app.secret_key = 'storperf_graphing_module'
+def get_data(data):
+ metrics = {}
+ report_data = {}
+ temp = data.keys()[0]
+ if type(data[temp]) is list:
+ details = data[temp][0].get('details')
+ metrics = details.get('metrics')
+ report_data = details.get('report_data')
+ else:
+ metrics = data[temp].get('metrics')
+ report_data = data[temp].get('report_data')
+ return metrics, report_data
+
+
@app.route('/reporting/success/')
def success():
try:
- data = urllib.urlopen(session["url"]).read()
+ URL = session["url"]
+ if validators.url(URL):
+ data = urllib.urlopen(URL).read()
+ else:
+ data = open("./static/testdata/" + URL).read()
data = json.loads(data)
- return render_template('plot_tables.html', data=data)
+ metrics, report_data = get_data(data)
+ return render_template('plot_tables.html',
+ metrics=metrics, report_data=report_data)
except Exception as e:
session['server_error'] = e.message + ' ' + repr(e.args)
return redirect(url_for('file_not_found'))
diff --git a/docker/storperf-reporting/src/templates/plot_tables.html b/docker/storperf-reporting/src/templates/plot_tables.html
index 04eaadc..d6eed8e 100644
--- a/docker/storperf-reporting/src/templates/plot_tables.html
+++ b/docker/storperf-reporting/src/templates/plot_tables.html
@@ -27,17 +27,13 @@
</center>
</div>
<script>
- data = {{ data | tojson | safe }};
page = [];
- results = data.results;
- if (results == undefined) {
- details = data.details;
- } else {
- details = results[0].details;
- }
- metrics = details.metrics;
- report_data = details.report_data;
+ metrics = {{ metrics | tojson | safe }};
+ report_data = {{ report_data | tojson | safe }};
+ console.log(metrics);
+ console.log(report_data);
for (var key in report_data) {
+ console.log(key);
for (var test in report_data[key]) {
var text = "";
var series = [];
@@ -73,6 +69,7 @@
}
}
}
+ console.log(page);
function content_display(num) {
var text = page[num - 1][0];
@@ -117,7 +114,27 @@
width: 2
}
};
- Plotly.newPlot(graphID, [plot, avg_plus, avg_minus]);
+ var layout = {
+ xaxis: {
+ title: 'ROUND',
+ titlefont: {
+ family: 'Arial, sans-serif',
+ size: 18,
+ color: 'lightgrey'
+ },
+ showticklabels: true,
+ },
+ yaxis: {
+ title: 'IOPS',
+ titlefont: {
+ family: 'Arial, sans-serif',
+ size: 18,
+ color: 'lightgrey'
+ },
+ showticklabels: true,
+ }
+};
+ Plotly.newPlot(graphID, [plot, avg_plus, avg_minus],layout);
}
content_display(1);
$('#page-selection').bootpag({