report page table of images added
diff --git a/chart/charts.py b/chart/charts.py
index 1263a64..d1c7142 100644
--- a/chart/charts.py
+++ b/chart/charts.py
@@ -19,7 +19,7 @@
def render_vertical_bar(title, legend, bars_data, bars_dev_top,
- bars_dev_bottom,
+ bars_dev_bottom, file_name,
width=700, height=400,
scale_x=None, scale_y=None, label_x=None,
label_y=None, lines=()):
@@ -110,7 +110,7 @@
bar.legend(*legend)
bar.scale(*scale)
- img_name = hashlib.md5(str(bar)).hexdigest() + ".png"
+ img_name = file_name + ".png"
img_path = os.path.join(cfg_dict['charts_img_path'], img_name)
if not os.path.exists(img_path):
diff --git a/report.py b/report.py
index c451010..aa1c356 100644
--- a/report.py
+++ b/report.py
@@ -4,7 +4,7 @@
import formatters
from chart import charts
-from utils import ssize_to_b
+from utils import ssize_to_b, parse_creds
from statistic import med_dev
from io_results_loader import filter_data
from meta_info import total_lab_info, collect_lab_data
@@ -134,31 +134,36 @@
return charts_url
-def render_html(charts_urls, dest, lab_description):
+def render_html(charts_urls, dest, lab_description, info):
templ = open("report.html", 'r').read()
body = "<a href='#lab_desc'>Lab description</a>" \
- "<div><ol>{0}</ol></div>" \
+ "<ol>{0}</ol>" \
+ "<div>{1}</div>" \
'<a name="lab_desc"></a>' \
- "<div><ul>{1}</ul></div>"
- li = "<li><img src='%s'></li>"
- ol = []
+ "<div><ul>{2}</ul></div>"
+ table = "<table><tr><td>{0}</td><td>{1}</td></tr>" \
+ "<tr><td>{2}</td><td>{3}</td></tr></table>"
ul = []
+ ol = []
+ li = '<li>{0} : {1}</li>'
+
+ for elem in info:
+ ol.append(li.format(elem.keys(), elem.values()))
for key in lab_description:
value = lab_description[key]
ul.append("<li>{0} : {1}</li>".
format(key, value))
- for chart in charts_urls:
- ol.append(li % chart)
-
- html = templ % {'body': body.format('\n'.join(ol),
- '\n'.join(ul))}
+ charts_urls = ['<img src="{0}">'.format(url) for url in charts_urls]
+ html = templ % {'body': body.format('\n'.join(ol), table.format(*charts_urls),
+ '\n'.join(ul))
+ }
open(dest, 'w').write(html)
def io_chart(title, concurence, latv, iops_or_bw, iops_or_bw_dev,
- legend):
+ legend, fname):
bar_data, bar_dev = iops_or_bw, iops_or_bw_dev
legend = [legend]
@@ -174,7 +179,7 @@
latv = [lat / 1000 for lat in latv]
ch = charts.render_vertical_bar(title, legend, [bar_data], [bar_dev_top],
- [bar_dev_bottom],
+ [bar_dev_bottom], file_name=fname,
scale_x=concurence,
lines=[
(latv, "msec", "rr", "lat"),
@@ -186,6 +191,9 @@
def make_io_report(results, path, lab_url=None, creds=None):
if lab_url is not None:
+ username, password, tenant_name = parse_creds(creds)
+ creds = {'username': username, 'password': password,
+ "tenant_name": tenant_name}
data = collect_lab_data(lab_url, creds)
lab_info = total_lab_info(data)
else:
@@ -198,16 +206,16 @@
io_test_suite_res = test_suite_data['res']
charts_url = []
+ info = []
name_filters = [
- # ('hdd_test_rws4k', ('concurence', 'lat', 'iops')),
- # ('hdd_test_rrs4k', ('concurence', 'lat', 'iops')),
- ('hdd_test_rrd4k', ('concurence', 'lat', 'iops')),
- ('hdd_test_swd1m', ('concurence', 'lat', 'bw')),
- ('hdd_test_srd1m', ('concurence', 'lat', 'bw')),
+ ('hdd_test_rrd4k', ('concurence', 'lat', 'iops'), 'rand_read_4k'),
+ ('hdd_test_swd1m', ('concurence', 'lat', 'bw'), 'seq_write_1m'),
+ ('hdd_test_srd1m', ('concurence', 'lat', 'bw'), 'seq_read_1m'),
+ ('hdd_test_rws4k', ('concurence', 'lat', 'bw'), 'rand_write_1m')
]
- for name_filter, fields in name_filters:
+ for name_filter, fields, fname in name_filters:
th_filter = filter_data(name_filter, fields)
data = sorted(th_filter(io_test_suite_res.values()))
@@ -220,20 +228,19 @@
url = io_chart(name_filter, concurence, latv, iops_or_bw_v,
iops_or_bw_dev_v,
- fields[2])
-
+ fields[2], fname)
+ info.append(dict(zip(fields, (concurence, latv, iops_or_bw_v))))
charts_url.append(url)
if len(charts_url) != 0:
- render_html(charts_url, path, lab_info)
+ render_html(charts_url, path, lab_info, info)
def main(args):
make_io_report(results=[('a', 'b')],
path=os.path.dirname(args[0]),
lab_url='http://172.16.52.112:8000',
- creds={'username': 'admin', 'password': 'admin',
- "tenant_name": 'admin'})
+ creds='admin:admin@admin')
return 0
diff --git a/results/perf-1-compute-hdd/charts/6fa7da0da5f789f40c0adc40fb125521.png b/results/perf-1-compute-hdd/charts/rand_read_4k.png
similarity index 100%
rename from results/perf-1-compute-hdd/charts/6fa7da0da5f789f40c0adc40fb125521.png
rename to results/perf-1-compute-hdd/charts/rand_read_4k.png
Binary files differ
diff --git a/results/perf-1-compute-hdd/charts/9cfbfff2077f35018f164fa9cb4cc9f7.png b/results/perf-1-compute-hdd/charts/seq_write_1m.png
similarity index 100%
rename from results/perf-1-compute-hdd/charts/9cfbfff2077f35018f164fa9cb4cc9f7.png
rename to results/perf-1-compute-hdd/charts/seq_write_1m.png
Binary files differ
diff --git a/run_test.py b/run_test.py
index 8086308..6465760 100755
--- a/run_test.py
+++ b/run_test.py
@@ -306,10 +306,10 @@
key, config = group.items()[0]
if 'start_test_nodes' == key:
- params = config['vm_params']
+ params = config['openstack']['vm_params']
os_nodes_ids = []
- os_creds_type = config['creds']
+ os_creds_type = config['openstack']['creds']
os_creds = get_os_credentials(cfg, ctx, os_creds_type)
start_vms.nova_connect(**os_creds)
@@ -430,7 +430,9 @@
def report_stage(cfg, ctx):
html_rep_fname = cfg['html_report_file']
- report.make_io_report(ctx.results, html_rep_fname)
+ fuel_url = cfg['clouds']['fuel']['url']
+ creds = cfg['clouds']['fuel']['creds']
+ report.make_io_report(ctx.results, html_rep_fname, fuel_url, creds=creds)
logger.info("Html report were stored in " + html_rep_fname)
@@ -491,7 +493,7 @@
stages = [
discover_stage,
log_nodes_statistic,
- connect_stage,
+ # connect_stage,
deploy_sensors_stage,
run_tests_stage,
store_raw_results_stage,