storage code removed from web app file
diff --git a/web_app/__init__.py b/web_app/__init__.py
index ad2fe42..01c3dba 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 Measurement
+from storage_api import builds_list, collect_builds, create_measurement
from logging import getLogger, INFO
import json
@@ -22,99 +22,6 @@
app.jinja_env.globals['get_resource_as_string'] = get_resource_as_string
-def load_test(test_name):
- test_name += '.json'
-
- with open(TEST_PATH + "/" + test_name, 'rt') as f:
- raw = f.read()
-
- if raw != "":
- test = json.loads(raw)
- else:
- test = []
- import time
- creation_time = os.path.getmtime(TEST_PATH + "/" + test_name)
-
- for t in test:
- t['date'] = time.ctime(creation_time)
-
- return test
-
-
-def collect_tests():
- result = []
-
- for file in os.listdir(TEST_PATH):
- if file.endswith(".json"):
- result.append(file.split('.')[0])
-
- return result
-
-
-def mean(l):
- n = len(l)
-
- return sum(l) / n
-
-
-def stdev(l):
- m = mean(l)
- return math.sqrt(sum(map(lambda x: (x - m) ** 2, l)))
-
-
-def prepare_build_data(build):
- for item in build.items():
- if type(item[1]) is list:
- m = mean(item[1])
- s = stdev(item[1])
- build[item[0]] = [m, s]
-
-
-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)
-
- for build in builds:
- prepare_build_data(build)
-
- return builds
-
-
-def builds_list():
- data = []
-
- for build in collect_builds():
- d = {}
- d["type"] = build['type']
- d["url"] = url_for("render_test", test_name=build['name'])
- d["date"] = build['date']
- d["name"] = build['name']
- data.append(d)
-
- return 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.date = build.pop("date")
- m.date = build.pop("name")
- m.results = {k: v for k, v in build.items()}
-
- return m
-
-
def total_lab_info(data):
d = {}
d['nodes_count'] = len(data['nodes'])