fix muptiply tests in one run, update report generation
diff --git a/report_templates/base.html b/report_templates/base.html
new file mode 100644
index 0000000..c517ac9
--- /dev/null
+++ b/report_templates/base.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>Performance Report</title>
+        <link rel="stylesheet"
+              href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
+    </head>
+    <body>
+        <div class="page-header text-center">
+            <h2>Performance Report</h2>
+        </div>
+
+        <!--
+        0) Menu
+        1) Lab very short performance: max IOPS, max BW, EC2 VM count
+        2) Engineering report
+        3) boxplots
+        4) BW/lat/IOPS = f(time) report
+        5) Bottlneck/consumption reports
+        6) Excessive lab info
+        7) Report description
+        -->
+
+        <div class="container-fluid text-center">
+            <div class="row" style="margin-bottom: 40px">
+                <div class="col-md-12">
+                    <center>
+                    {% block content %}{% endblock %}
+                    </center>
+                </div>
+            </div>
+        </div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/report_templates/report_all.html b/report_templates/report_all.html
new file mode 100644
index 0000000..85d3bf6
--- /dev/null
+++ b/report_templates/report_all.html
@@ -0,0 +1,46 @@
+{% extends "base.html" %}
+{% block content %}
+
+{% if ceph_summary is not None or OS_summary is not None %}
+    <h4>Summary</h4>
+    <table style="width: auto;" class="table table-bordered table-striped">
+    {% if ceph_summary is not None %}
+        <tr>
+            <td>OSD count</td><td>{{ceph_summary.osd_count}}</td>
+            <td>Total Ceph disks count</td><td>{{ceph_summary.OSD_hdd_count}}</td>
+        </tr>
+    {% endif OS_summary is not None %}
+        <td>Compute count</td><td>{{OS_summary.compute_count}}</td>
+    {% endif %}
+    </table>
+{% endif %}
+
+{% if perf_summary is not None %}
+    <table><tr><td>
+        <H4>Random direct performance,<br>4KiB blocks</H4>
+        {% make_table(2, 'style="width: auto;" class="table table-bordered table-striped"',
+                      "Operation", "IOPS",
+                      Read, {{perf_summary.direct_iops_r_max[0]}} ~ {{perf_summary.direct_iops_r_max[1]}}%,
+                      Write, {{perf_summary.direct_iops_w_max[0]}} ~ {{perf_summary.direct_iops_w_max[1]}}%) %}
+    </td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>
+        <H4>Random direct performance,<br>16MiB blocks</H4>
+        {% make_table(2, 'style="width: auto;" class="table table-bordered table-striped"',
+                      "Operation", "BW MiBps",
+                      Read, {{perf_summary.bw_read_max[0]}} ~ {{perf_summary.bw_read_max[1]}}%,
+                      Write, {{perf_summary.bw_write_max[0]}} ~ {{perf_summary.bw_write_max[1]}}%) %}
+    </td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>
+        <H4>Maximal sync random write IOPS<br> for given latency, 4KiB</H4>
+        {% make_table(2, 'style="width: auto;" class="table table-bordered table-striped">',
+                      "Latency ms", "IOPS",
+                      10,  {{perf_summary.rws4k_10ms}},
+                      30,  {{perf_summary.rws4k_30ms}},
+                      100, {{perf_summary.rws4k_100ms}}) %}
+    </td></tr></table>
+<br>
+
+{% make_table_nh(2, "",
+                {{perf_summary.rand_read_iops}}, {{perf_summary.rand_write_iops}},
+                {{perf_summary.rand_read_bw}}, {{perf_summary.rand_write_bw}}) %}
+{% endif %}
+
+{% endblock %}
diff --git a/report_templates/report_hdd.html b/report_templates/report_hdd.html
index ea04eb5..72f7c0b 100644
--- a/report_templates/report_hdd.html
+++ b/report_templates/report_hdd.html
@@ -71,12 +71,8 @@
         </div>
     </div>
     <div class="row">
-        <div class="col-md-6">
-            <img src="charts/rand_read_4k.{img_ext}"/>
-        </div>
-        <div class="col-md-6">
-            <img src="charts/rand_write_4k.{img_ext}"/>
-        </div>
+        <div class="col-md-6">{rand_read_4k}</div>
+        <div class="col-md-6">{rand_write_4k}</div>
     </div>
     <!--div class="row">
         <table style="width: auto;" class="table table-bordered table-striped">
diff --git a/report_templates/report_iops_vs_lat.html b/report_templates/report_iops_vs_lat.html
new file mode 100644
index 0000000..fcb7ec2
--- /dev/null
+++ b/report_templates/report_iops_vs_lat.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>Report</title>
+    <link rel="stylesheet"
+          href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
+</head>
+
+<body>
+<div class="page-header text-center">
+  <h2>IOPS vs Block size</h2>
+</div>
+<div class="container-fluid text-center">
+
+    <div class="row" style="margin-bottom: 40px">
+        <div class="col-md-12">
+            <center>
+            <H3>Latency vs IOPS vs requested IOPS, {oper_descr}</H3> <br>
+            <table><tr>
+                <td>{iops_vs_lat}</td>
+                <td>{iops_vs_requested}</td>
+            </tr>
+            </center>
+        </div>
+    </div>
+</div>
+</body>
+
+</html>