images in table and particular builds added
diff --git a/web_app/__init__.py b/web_app/__init__.py
index 820be22..fb03f3e 100644
--- a/web_app/__init__.py
+++ b/web_app/__init__.py
@@ -3,7 +3,7 @@
from flask_bootstrap import Bootstrap
from config import TEST_PATH
from report import build_vertical_bar, build_lines_chart
-from storage_api import create_storage
+from storage_api import create_storage, Measurement
from logging import getLogger, INFO
import json
@@ -24,6 +24,22 @@
return result
+def collect_builds():
+ builds = []
+ build_set = set()
+ tests = collect_tests()
+
+ for t in tests:
+ test = load_test(t)
+
+ for build in test:
+ if build["type"] not in build_set:
+ build_set.add(build["type"])
+ builds.append(build)
+
+ return builds
+
+
def load_test(test_name):
test_name += '.json'
@@ -41,22 +57,41 @@
@app.route("/", methods=['GET', 'POST'])
def index():
data = []
- for test in collect_tests():
+
+ for build in collect_builds():
d = {}
- d["name"] = test
- d["url"] = url_for("render_test", test_name=test)
+ d["name"] = build['type']
+ d["url"] = url_for("render_test", test_name=build['type'])
data.append(d)
return render_template("index.html", tests=data)
+def create_measurement(build):
+ m = Measurement()
+ m.build = build.pop("build_id")
+ m.build_type = build.pop("type")
+ m.md5 = build.pop("iso_md5")
+ m.results = {k: v for k, v in build.items()}
+
+ return m
+
+
@app.route("/tests/<test_name>", methods=['GET'])
def render_test(test_name):
- tests = load_test(test_name)
+ tests = [] #load_test(test_name)
header_keys = ['build_id', 'iso_md5', 'type']
table = [[]]
- storage = create_storage('file://' + TEST_PATH + '/' + test_name + '.json')
- results = storage.recent_builds()
+ builds_to_compare = ['GA', 'master', test_name]
+ builds = collect_builds()
+ results = {}
+
+ for build in builds:
+ if build['type'] in builds_to_compare:
+ type = build['type']
+ m = create_measurement(build)
+ results[type] = m
+
bars = build_vertical_bar(results)
lines = build_lines_chart(results)
urls = bars + lines
@@ -124,19 +159,21 @@
@app.route("/tests/table/<test_name>/")
def render_table(test_name):
- tests = load_test(test_name)
+ builds = collect_builds()
+ builds = filter(lambda x: x["type"] in ['GA', 'master', test_name], builds)
header_keys = ['build_id', 'iso_md5', 'type']
table = [[]]
meta = {"__meta__": "http://172.16.52.112:8000/api/nodes"}
- data = collect_lab_data(tests, meta)
- if len(tests) > 0:
- sorted_keys = sorted(tests[0].keys())
+ data = collect_lab_data(builds, meta)
+
+ if len(builds) > 0:
+ sorted_keys = sorted(builds[0].keys())
for key in sorted_keys:
if key not in header_keys:
header_keys.append(key)
- for test in tests:
+ for test in builds:
row = []
for header in header_keys:
diff --git a/web_app/templates/lab_main.html b/web_app/templates/lab_main.html
new file mode 100644
index 0000000..57c7a13
--- /dev/null
+++ b/web_app/templates/lab_main.html
@@ -0,0 +1,20 @@
+<div>
+ <table align="center">
+ <tr>
+ <td>Openstack Release :</td>
+ <td>Juno on Ubuntu 12.04.4</td>
+ </tr>
+ <tr>
+ <td>Relese Fuel:</td>
+ <td>6.1</td>
+ </tr>
+ <tr>
+ <td>Operation system</td>
+ <td>Ubuntu</td>
+ </tr>
+ <tr>
+ <td>Ceph version</td>
+ <td> 1.0</td>
+ </tr>
+ </table>
+</div>
\ No newline at end of file
diff --git a/web_app/templates/test.html b/web_app/templates/test.html
index f938c43..c54f9dc 100644
--- a/web_app/templates/test.html
+++ b/web_app/templates/test.html
@@ -9,15 +9,27 @@
<body>
{% block body %}
<h1 align="center">Perf-1 Env</h1>
+ {% include 'lab_main.html'%}
+ <br>
<div class="table-responsive">
- <table class="table" width="600">
<div id="images">
- {% for url in urls %}
- <div>
- <img src="{{ url }}">
- </div>
- {% endfor %}
+ <table cellspacing="20">
+ {% for url in urls %}
+ {% if loop.index is divisibleby 2 %}
+ <tr>
+ <td>
+ <img src="{{ url }}">
+ </td>
+ {% else %}
+ <td>
+ <img src="{{ url }}">
+ </td>
+ </tr>
+ {% endif %}
+ {% endfor %}
+ </table>
</div>
+ <table class="table" width="600">
{% for header in headers %}
<th>
<h2>{{ header }}</h2>