diff --git a/TODO b/TODO
index 0feaffa..c7d6826 100644
--- a/TODO
+++ b/TODO
@@ -1,4 +1,12 @@
+Репорты
 Юнит-тесты
 Автоинтеграция с опенстек
 Отчеты
-Унифицировать имена параметров на входе и на выходе
+Добавить к отчету экстраполированные скорости
+
+Стат-обработка:
+	расчет async
+	расчет количества измерений
+	расчет смешанных IOPS
+
+
diff --git a/chart/__init__.py b/chart/__init__.py
index 91f24c6..cd49ed9 100644
--- a/chart/__init__.py
+++ b/chart/__init__.py
@@ -1,9 +1,8 @@
-# Patch MARKER constant
-
 import sys
-from GChartWrapper import constants
-import GChartWrapper.GChart
 
+from GChartWrapper import constants
+
+# Patch MARKER constant
 constants.MARKERS += 'E'
-print sys.modules['GChartWrapper.GChart']
+
 sys.modules['GChartWrapper.GChart'].MARKERS += 'E'
diff --git a/chart/charts.py b/chart/charts.py
index 549b820..7c49abd 100644
--- a/chart/charts.py
+++ b/chart/charts.py
@@ -1,5 +1,5 @@
-import hashlib
 import os
+import hashlib
 import threading
 
 from GChartWrapper import VerticalBarGroup
@@ -13,10 +13,9 @@
 constants.MARKERS += 'E'  # append E marker to available markers
 
 
-def save_image(chart, img_path):
-    t = threading.Thread(target=chart.save, kwargs={'fname': img_path})
-    t.daemon = True
-    t.start()
+def get_top_top_dir(path):
+    top_top_dir = os.path.dirname(os.path.dirname(path))
+    return path[len(top_top_dir) + 1:]
 
 
 def render_vertical_bar(title, legend, bars_data, bars_dev_top,
@@ -106,10 +105,11 @@
     bar.scale(*scale)
     img_name = hashlib.md5(str(bar)).hexdigest() + ".png"
     img_path = os.path.join(cfg_dict['charts_img_path'], img_name)
+
     if not os.path.exists(img_path):
-        save_image(bar, img_path)
-        return str(bar)
-    return img_path
+        bar.save(img_path)
+
+    return get_top_top_dir(img_path)
 
 
 def render_lines(title, legend, dataset, scale_x, width=700, height=400):
@@ -129,6 +129,6 @@
     img_name = hashlib.md5(str(line)).hexdigest() + ".png"
     img_path = os.path.join(cfg_dict['charts_img_path'], img_name)
     if not os.path.exists(img_path):
-        save_image(line, img_path)
-        return str(line)
-    return img_path
+        line.save(img_path)
+
+    return get_top_top_dir(img_path)
diff --git a/config.py b/config.py
index bb8fab3..cfe5438 100644
--- a/config.py
+++ b/config.py
@@ -7,7 +7,7 @@
 cfg_dict = {}
 
 
-def load_config(file_name):
+def load_config(file_name, explicit_folder=None):
     global cfg_dict
     first_load = len(cfg_dict) == 0
     cfg_dict.update(yaml.load(open(file_name).read()))
@@ -15,19 +15,25 @@
     if first_load:
         var_dir = cfg_dict.get('internal', {}).get('var_dir_root', '/tmp')
 
-    while True:
-        dr = os.path.join(var_dir, pet_generate(2, "_"))
-        if not os.path.exists(dr):
-            break
+    if explicit_folder is None:
+        while True:
+            dr = os.path.join(var_dir, pet_generate(2, "_"))
+            if not os.path.exists(dr):
+                break
+    else:
+        dr = explicit_folder
 
     cfg_dict['var_dir'] = dr
-    os.makedirs(cfg_dict['var_dir'])
+    if not os.path.exists(cfg_dict['var_dir']):
+        os.makedirs(cfg_dict['var_dir'])
 
     def in_var_dir(fname):
         return os.path.join(cfg_dict['var_dir'], fname)
 
-    cfg_dict['charts_img_path'] = in_var_dir('charts')
-    os.makedirs(cfg_dict['charts_img_path'])
+    charts_img_path = in_var_dir('charts')
+    cfg_dict['charts_img_path'] = charts_img_path
+    if not os.path.exists(charts_img_path):
+        os.makedirs(charts_img_path)
 
     cfg_dict['vm_ids_fname'] = in_var_dir('os_vm_ids')
     cfg_dict['html_report_file'] = in_var_dir('report.html')
diff --git a/config.yaml b/config.yaml
index b0e6cc1..b2d80ea 100644
--- a/config.yaml
+++ b/config.yaml
@@ -1,18 +1,30 @@
 clouds:
     fuel:
-        ext_ip: 172.16.53.3
+        # ext_ip: 172.16.53.3
         url: http://172.16.52.112:8000/
         creds: admin:admin@admin
         ssh_creds: root:test37
         openstack_env: test
 
-discover: fuel
+    openstack:
+        OS_TENANT_NAME: admin
+        OS_USERNAME: admin
+        OS_PASSWORD: admin
+        OS_AUTH_URL: http://172.16.53.3:5000/v2.0/
+
+    ceph: local
+
+discover: fuel, ceph
+
+explicit_nodes:
+    "ssh://root@172.16.52.112:3022:/home/koder/.ssh/id_rsa": testnode
+
 
 internal:
     var_dir_root: /tmp/perf_tests
 
 tests:
-    start_test_nodes:
+    - start_test_nodes:
         openstack:
             creds: clouds
             vm_params:
diff --git a/fuel_rest_api.py b/fuel_rest_api.py
index ee5cd9c..23f7289 100644
--- a/fuel_rest_api.py
+++ b/fuel_rest_api.py
@@ -1,6 +1,7 @@
 import re
 import json
 import time
+import logging
 import urllib2
 
 from functools import partial, wraps
@@ -12,12 +13,7 @@
 from keystoneclient import exceptions
 
 
-logger = None
-
-
-def set_logger(log):
-    global logger
-    logger = log
+logger = logging.getLogger("io-perf-tool.fuel_api")
 
 
 class Urllib2HTTP(object):
@@ -27,7 +23,7 @@
 
     allowed_methods = ('get', 'put', 'post', 'delete', 'patch', 'head')
 
-    def __init__(self, root_url, headers=None, echo=False):
+    def __init__(self, root_url, headers=None):
         """
         """
         if root_url.endswith('/'):
@@ -36,7 +32,6 @@
             self.root_url = root_url
 
         self.headers = headers if headers is not None else {}
-        self.echo = echo
 
     def host(self):
         return self.root_url.split('/')[2]
@@ -53,8 +48,7 @@
         else:
             data_json = json.dumps(params)
 
-        if self.echo and logger is not None:
-            logger.debug("HTTP: {} {}".format(method.upper(), url))
+        logger.debug("HTTP: {} {}".format(method.upper(), url))
 
         request = urllib2.Request(url,
                                   data=data_json,
@@ -65,8 +59,7 @@
         request.get_method = lambda: method.upper()
         response = urllib2.urlopen(request)
 
-        if self.echo and logger is not None:
-            logger.debug("HTTP Responce: {}".format(response.code))
+        logger.debug("HTTP Responce: {}".format(response.code))
 
         if response.code < 200 or response.code > 209:
             raise IndexError(url)
@@ -85,8 +78,8 @@
 
 
 class KeystoneAuth(Urllib2HTTP):
-    def __init__(self, root_url, creds, headers=None, echo=False):
-        super(KeystoneAuth, self).__init__(root_url, headers, echo)
+    def __init__(self, root_url, creds, headers=None):
+        super(KeystoneAuth, self).__init__(root_url, headers)
         admin_node_ip = urlparse.urlparse(root_url).hostname
         self.keystone_url = "http://{0}:5000/v2.0".format(admin_node_ip)
         self.keystone = keystoneclient(
@@ -99,10 +92,9 @@
             self.keystone.authenticate()
             self.headers['X-Auth-Token'] = self.keystone.auth_token
         except exceptions.AuthorizationFailure:
-            if logger is not None:
-                logger.warning(
-                    'Cant establish connection to keystone with url %s',
-                    self.keystone_url)
+            logger.warning(
+                'Cant establish connection to keystone with url %s',
+                self.keystone_url)
 
     def do(self, method, path, params=None):
         """Do request. If gets 401 refresh token"""
@@ -110,9 +102,8 @@
             return super(KeystoneAuth, self).do(method, path, params)
         except urllib2.HTTPError as e:
             if e.code == 401:
-                if logger is not None:
-                    logger.warning(
-                        'Authorization failure: {0}'.format(e.read()))
+                logger.warning(
+                    'Authorization failure: {0}'.format(e.read()))
                 self.refresh_token()
                 return super(KeystoneAuth, self).do(method, path, params)
             else:
@@ -377,8 +368,7 @@
         data['id'] = node.id
         data['pending_addition'] = True
 
-        if logger is not None:
-            logger.debug("Adding node %s to cluster..." % node.id)
+        logger.debug("Adding node %s to cluster..." % node.id)
 
         self.add_node_call([data])
         self.nodes.append(node)
@@ -461,9 +451,6 @@
     """Get cluster id by name"""
     for cluster in get_all_clusters(conn):
         if cluster.name == name:
-            if logger is not None:
-                logger.debug('cluster name is %s' % name)
-                logger.debug('cluster id is %s' % cluster.id)
             return cluster.id
 
     raise ValueError("Cluster {0} not found".format(name))
diff --git a/nodes/discover.py b/nodes/discover.py
index a59f365..6c02fe6 100644
--- a/nodes/discover.py
+++ b/nodes/discover.py
@@ -1,15 +1,15 @@
 import logging
+import urlparse
+
 import ceph
 import openstack
-
 from utils import parse_creds
 from scripts import connector
-import urlparse
 
 logger = logging.getLogger("io-perf-tool")
 
 
-def discover(discover, clusters_info):
+def discover(ctx, discover, clusters_info):
     nodes_to_run = []
     for cluster in discover:
         if cluster == "openstack":
@@ -36,15 +36,17 @@
                                                           cluster_info)
             nodes_to_run.extend(os_nodes)
 
-        elif cluster == "fuel" or cluster == "fuel+openstack":
+        elif cluster == "fuel":
             cluster_info = clusters_info['fuel']
             cluster_name = cluster_info['openstack_env']
             url = cluster_info['url']
             creds = cluster_info['creds']
             ssh_creds = cluster_info['ssh_creds']
+
             # if user:password format us used
             if not ssh_creds.startswith("ssh://"):
                 ip_port = urlparse.urlparse(url).netloc
+
                 if ':' in ip_port:
                     ip = ip_port.split(":")[0]
                 else:
@@ -52,24 +54,13 @@
 
                 ssh_creds = "ssh://{0}@{1}".format(ssh_creds, ip)
 
-            env = cluster_info['openstack_env']
-            nodes, _, openrc_dict = connector.discover_fuel_nodes(url, creds, cluster_name)
+            dfunc = connector.discover_fuel_nodes
+            nodes, clean_data, openrc_dict = dfunc(url, creds, cluster_name)
 
-            if 'openstack' not in clusters_info:
-                clusters_info['openstack'] = {}
-
-                for key in openrc_dict:
-                        if key == 'OS_AUTH_URL':
-                            url = urlparse.urlparse(openrc_dict[key])
-                            clusters_info['openstack'][key] = \
-                                url.scheme + '://' + \
-                                cluster_info['ext_ip'] \
-                                + ':' +\
-                                str(url.port) +\
-                                url.path
-                        else:
-                            clusters_info['openstack'][key] = \
-                                openrc_dict[key]
+            ctx.fuel_openstack_creds = {'name': openrc_dict['username'],
+                                        'passwd': openrc_dict['password'],
+                                        'tenant': openrc_dict['tenant_name'],
+                                        'auth_url': openrc_dict['os_auth_url']}
 
             nodes_to_run.extend(nodes)
 
diff --git a/nodes/fuel.py b/nodes/fuel.py
index 9b1312e..82e7542 100644
--- a/nodes/fuel.py
+++ b/nodes/fuel.py
@@ -1,34 +1,37 @@
-import logging
+# import logging
 
 
-from node import Node
-import fuel_rest_api
+# import fuel_rest_api
+# from node import Node
 
 
-logger = logging.getLogger("io-perf-tool")
+# logger = logging.getLogger("io-perf-tool")
 
 
-def discover_fuel_nodes(root_url, credentials, cluster_name):
-    """Discover Fuel nodes"""
-    assert credentials.count(':') >= 2
-    user, passwd_tenant = credentials.split(":", 1)
-    passwd, tenant = passwd_tenant.rsplit(":", 1)
-    creds = dict(
-        username=user,
-        password=passwd,
-        tenant_name=tenant,
-    )
+# def discover_fuel_nodes(root_url, credentials, cluster_name):
+#     """Discover Fuel nodes"""
+#     assert credentials.count(':') >= 2
+#     user, passwd_tenant = credentials.split(":", 1)
+#     passwd, tenant = passwd_tenant.rsplit(":", 1)
+#     creds = dict(
+#         username=user,
+#         password=passwd,
+#         tenant_name=tenant,
+#     )
 
-    connection = fuel_rest_api.KeystoneAuth(root_url, creds)
-    fi = fuel_rest_api.FuelInfo(connection)
+#     connection = fuel_rest_api.KeystoneAuth(root_url, creds)
+#     fi = fuel_rest_api.FuelInfo(connection)
 
-    clusters_id = fuel_rest_api.get_cluster_id(connection, cluster_name)
+#     logger.debug("wtf")
+#     clusters_id = fuel_rest_api.get_cluster_id(connection, cluster_name)
+#     logger.debug("wtf2")
 
-    nodes = []
+#     nodes = []
 
-    for node in fi.nodes:
-        if node.cluster == clusters_id:
-            nodes.append(node)
-    res = [Node(n.ip, n.get_roles()) for n in nodes]
-    logger.debug("Found %s fuel nodes for env %r" % (len(res), cluster_name))
-    return res
+#     for node in fi.nodes:
+#         if node.cluster == clusters_id:
+#             nodes.append(node)
+
+#     res = [Node(n.ip, n.get_roles()) for n in nodes]
+#     logger.debug("Found %s fuel nodes for env %r" % (len(res), cluster_name))
+#     return res
diff --git a/report.py b/report.py
index f609805..ec42035 100644
--- a/report.py
+++ b/report.py
@@ -4,10 +4,10 @@
 
 import formatters
 from chart import charts
-from io_results_loader import filter_data, load_files
-from meta_info import total_lab_info, collect_lab_data
 from utils import ssize_to_b
-from statistic import med_dev, approximate_curve
+from statistic import med_dev
+from io_results_loader import filter_data
+from meta_info import total_lab_info, collect_lab_data
 
 
 OPERATIONS = (('async', ('randwrite asynchronous', 'randread asynchronous',
@@ -157,18 +157,6 @@
     open(dest, 'w').write(html)
 
 
-# def render_html_results(ctx):
-#     charts = []
-#     for res in ctx.results:
-#         if res[0] == "io":
-#             charts.append(build_io_chart(res))
-
-#     bars = build_vertical_bar(ctx.results)
-#     lines = build_lines_chart(ctx.results)
-
-    # render_html(bars + lines, dest)
-
-
 def io_chart(title, concurence, latv, iops_or_bw, iops_or_bw_dev,
              legend):
     bar_data, bar_dev = iops_or_bw, iops_or_bw_dev
@@ -201,8 +189,8 @@
         charts_url = []
 
         name_filters = [
-            #('hdd_test_rws4k', ('concurence', 'lat', 'iops')),
-            #('hdd_test_rrs4k', ('concurence', 'lat', 'iops')),
+            # ('hdd_test_rws4k', ('concurence', 'lat', 'iops')),
+            # ('hdd_test_rrs4k', ('concurence', 'lat', 'iops')),
             ('hdd_test_rrd4k', ('concurence', 'lat', 'iops')),
             ('hdd_test_swd1m', ('concurence', 'lat', 'bw')),
         ]
@@ -210,9 +198,11 @@
         for name_filter, fields in name_filters:
             th_filter = filter_data(name_filter, fields)
 
-            data_iter = sorted(th_filter(io_test_suite_res.values()))
+            data = sorted(th_filter(io_test_suite_res.values()))
+            if len(data) == 0:
+                continue
 
-            concurence, latv, iops_or_bw_v = zip(*data_iter)
+            concurence, latv, iops_or_bw_v = zip(*data)
             iops_or_bw_v, iops_or_bw_dev_v = zip(*map(med_dev, iops_or_bw_v))
             latv, _ = zip(*map(med_dev, latv))
 
@@ -221,51 +211,17 @@
                            fields[2])
 
             charts_url.append(url)
-            # _, ax1 = plt.subplots()
-            #
-            # ax1.plot(concurence, iops_or_bw_v)
-            # ax1.errorbar(concurence, iops_or_bw_v, iops_or_bw_dev_v,
-            #              linestyle='None',
-            #              label="iops_or_bw_v",
-            #              marker="*")
-            #
-            # # ynew = approximate_line(ax, ay, ax, True)
-            #
-            # ax2 = ax1.twinx()
-            #
-            # ax2.errorbar(concurence,
-            #              [med_dev(lat)[0] / 1000 for lat in latv],
-            #              [med_dev(lat)[1] / 1000 for lat in latv],
-            #              linestyle='None',
-            #              label="iops_or_bw_v",
-            #              marker="*")
-            # ax2.plot(concurence, [med_dev(lat)[0] / 1000 for lat in latv])
-            # plt.show()
-            # exit(0)
 
-            # bw_only = []
-
-            # for conc, _, _, (bw, _) in data:
-            #     bw_only.append(bw)
-            #     bw_d_per_th.append((bw / conc, 0))
-
-            # lines = [(zip(*lat_d)[0], 'msec', 'rr', 'lat'), (bw_sum, None, None, 'bw_sum')]
-
-            # chart_url = charts.render_vertical_bar(
-            #                 chart_name, ["bw"], [bw_d_per_th], label_x="KBps",
-            #                 scale_x=ordered_data.keys(),
-            #                 lines=lines)
-
-            # charts_url.append(str(chart_url))
-
-        render_html(charts_url, path, lab_info)
+        if len(charts_url) != 0:
+            render_html(charts_url, path, lab_info)
 
 
 def main(args):
-    make_io_report(results=[('a','b')],
+    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={'username': 'admin', 'password': 'admin',
+                          "tenant_name": 'admin'})
     return 0
 
 
diff --git a/results/perf-1-compute-hdd/charts/6fa7da0da5f789f40c0adc40fb125521.png b/results/perf-1-compute-hdd/charts/6fa7da0da5f789f40c0adc40fb125521.png
new file mode 100644
index 0000000..208f28c
--- /dev/null
+++ b/results/perf-1-compute-hdd/charts/6fa7da0da5f789f40c0adc40fb125521.png
Binary files differ
diff --git a/results/perf-1-compute-hdd/charts/9cfbfff2077f35018f164fa9cb4cc9f7.png b/results/perf-1-compute-hdd/charts/9cfbfff2077f35018f164fa9cb4cc9f7.png
new file mode 100644
index 0000000..3cf19a8
--- /dev/null
+++ b/results/perf-1-compute-hdd/charts/9cfbfff2077f35018f164fa9cb4cc9f7.png
Binary files differ
diff --git a/results/perf-1-compute-hdd/log.txt b/results/perf-1-compute-hdd/log.txt
new file mode 100644
index 0000000..4eb4324
--- /dev/null
+++ b/results/perf-1-compute-hdd/log.txt
@@ -0,0 +1,109 @@
+12:30:22 - INFO   - io-perf-tool - All info would be stored into /tmp/perf_tests/rotund_elfriede
+12:30:22 - INFO   - io-perf-tool - Start discover_stage stage
+12:30:22 - INFO   - io-perf-tool - Start log_nodes_statistic stage
+12:30:22 - INFO   - io-perf-tool - Found 1 nodes total
+12:30:22 - [1;34mDEBUG[0m - io-perf-tool - Found 1 nodes with role testnode
+12:30:22 - INFO   - io-perf-tool - Start connect_stage stage
+12:30:22 - INFO   - io-perf-tool - Connecting to nodes
+12:30:22 - INFO   - io-perf-tool - All nodes connected successfully
+12:30:22 - INFO   - io-perf-tool - Start deploy_sensors_stage stage
+12:30:22 - INFO   - io-perf-tool - Start run_tests_stage stage
+12:30:22 - INFO   - io-perf-tool - Starting io tests
+12:30:22 - [1;34mDEBUG[0m - io-perf-tool - Starting io test on ssh://root@172.16.52.112:3022:/home/koder/.ssh/id_rsa node
+12:30:22 - [1;34mDEBUG[0m - io-perf-tool - Run preparation for ssh://root@172.16.52.112:3022:/home/koder/.ssh/id_rsa
+12:30:22 - [1;34mDEBUG[0m - io-perf-tool - SSH: Exec 'which fio'
+12:30:23 - [1;34mDEBUG[0m - io-perf-tool - SSH: Exec 'dd if=/dev/zero of=/opt/xxx.bin bs=1048576 count=10240'
+12:31:26 - [1;34mDEBUG[0m - io-perf-tool - Run test for ssh://root@172.16.52.112:3022:/home/koder/.ssh/id_rsa
+12:31:26 - [1;34mDEBUG[0m - io-perf-tool - Waiting on barrier
+12:31:26 - INFO   - io-perf-tool - Test will takes about 2:12:35
+12:31:27 - [1;34mDEBUG[0m - io-perf-tool - SSH: Exec 'env python2 /tmp/disk_test_agent.py --type fio --params NUM_ROUNDS=7 FILENAME=/opt/xxx.bin --json -'
+14:46:24 - INFO   - io-perf-tool - Start store_raw_results_stage stage
+14:46:24 - INFO   - io-perf-tool - Start console_report_stage stage
+14:46:24 - INFO   - io-perf-tool - Start report_stage stage
+14:46:24 - INFO   - io-perf-tool - Text report were stored in /tmp/perf_tests/rotund_elfriede/report.txt
+14:46:24 - INFO   - io-perf-tool - Start shut_down_vms_stage stage
+14:46:24 - INFO   - io-perf-tool - Start disconnect_stage stage
+14:46:24 - INFO   - io-perf-tool - All info stotored into /tmp/perf_tests/rotund_elfriede
+17:43:04 - INFO   - io-perf-tool - All info would be stored into /tmp/perf_tests/rotund_elfriede
+17:43:04 - INFO   - io-perf-tool - Start load_data_from_file stage
+17:43:04 - INFO   - io-perf-tool - Start console_report_stage stage
+17:43:04 - INFO   - io-perf-tool - Start report_stage stage
+17:43:37 - INFO   - io-perf-tool - All info would be stored into /tmp/perf_tests/rotund_elfriede
+17:43:37 - INFO   - io-perf-tool - Start load_data_from_file stage
+17:43:37 - INFO   - io-perf-tool - Start console_report_stage stage
+17:43:37 - INFO   - io-perf-tool - Start report_stage stage
+17:43:37 - INFO   - io-perf-tool - Html report were stored in /tmp/perf_tests/rotund_elfriede/report.html
+17:43:37 - INFO   - io-perf-tool - Text report were stored in /tmp/perf_tests/rotund_elfriede/report.txt
+17:43:37 - INFO   - io-perf-tool - All info stotored into /tmp/perf_tests/rotund_elfriede
+17:46:54 - INFO   - io-perf-tool - All info would be stored into /tmp/perf_tests/rotund_elfriede
+17:46:54 - INFO   - io-perf-tool - Start load_data_from_file stage
+17:46:54 - INFO   - io-perf-tool - Start report_stage stage
+17:46:54 - INFO   - io-perf-tool - Html report were stored in /tmp/perf_tests/rotund_elfriede/report.html
+17:46:54 - INFO   - io-perf-tool - Text report were stored in /tmp/perf_tests/rotund_elfriede/report.txt
+17:46:54 - INFO   - io-perf-tool - All info stotored into /tmp/perf_tests/rotund_elfriede
+17:47:54 - INFO   - io-perf-tool - All info would be stored into /tmp/perf_tests/rotund_elfriede
+17:47:54 - INFO   - io-perf-tool - Start load_data_from_file stage
+17:47:54 - INFO   - io-perf-tool - Start report_stage stage
+17:47:54 - INFO   - io-perf-tool - Html report were stored in /tmp/perf_tests/rotund_elfriede/report.html
+17:47:54 - INFO   - io-perf-tool - Text report were stored in /tmp/perf_tests/rotund_elfriede/report.txt
+17:47:54 - INFO   - io-perf-tool - All info stotored into /tmp/perf_tests/rotund_elfriede
+17:49:42 - INFO   - io-perf-tool - All info would be stored into /tmp/perf_tests/rotund_elfriede
+17:49:42 - INFO   - io-perf-tool - Start load_data_from_file stage
+17:49:42 - INFO   - io-perf-tool - Start report_stage stage
+17:49:42 - INFO   - io-perf-tool - Html report were stored in /tmp/perf_tests/rotund_elfriede/report.html
+17:49:42 - INFO   - io-perf-tool - Text report were stored in /tmp/perf_tests/rotund_elfriede/report.txt
+17:49:42 - INFO   - io-perf-tool - All info stotored into /tmp/perf_tests/rotund_elfriede
+17:50:59 - INFO   - io-perf-tool - All info would be stored into /tmp/perf_tests/rotund_elfriede
+17:50:59 - INFO   - io-perf-tool - Start load_data_from_file stage
+17:50:59 - INFO   - io-perf-tool - Start report_stage stage
+17:50:59 - INFO   - io-perf-tool - Html report were stored in /tmp/perf_tests/rotund_elfriede/report.html
+17:50:59 - INFO   - io-perf-tool - Text report were stored in /tmp/perf_tests/rotund_elfriede/report.txt
+17:50:59 - INFO   - io-perf-tool - All info stotored into /tmp/perf_tests/rotund_elfriede
+17:52:01 - INFO   - io-perf-tool - All info would be stored into /tmp/perf_tests/rotund_elfriede
+17:52:01 - INFO   - io-perf-tool - Start load_data_from_file stage
+17:52:01 - INFO   - io-perf-tool - Start report_stage stage
+17:52:01 - INFO   - io-perf-tool - Html report were stored in /tmp/perf_tests/rotund_elfriede/report.html
+17:52:01 - INFO   - io-perf-tool - Text report were stored in /tmp/perf_tests/rotund_elfriede/report.txt
+17:52:01 - INFO   - io-perf-tool - All info stotored into /tmp/perf_tests/rotund_elfriede
+17:52:37 - INFO   - io-perf-tool - All info would be stored into /tmp/perf_tests/rotund_elfriede
+17:52:37 - INFO   - io-perf-tool - Start load_data_from_file stage
+17:52:37 - INFO   - io-perf-tool - Start report_stage stage
+17:52:37 - INFO   - io-perf-tool - Html report were stored in /tmp/perf_tests/rotund_elfriede/report.html
+17:52:37 - INFO   - io-perf-tool - Text report were stored in /tmp/perf_tests/rotund_elfriede/report.txt
+17:52:37 - INFO   - io-perf-tool - All info stotored into /tmp/perf_tests/rotund_elfriede
+18:45:15 - INFO   - io-perf-tool - All info would be stored into /tmp/perf_tests/rotund_elfriede
+18:45:15 - INFO   - io-perf-tool - Start load_data_from_file stage
+18:45:15 - INFO   - io-perf-tool - Start report_stage stage
+18:45:15 - INFO   - io-perf-tool - Html report were stored in /tmp/perf_tests/rotund_elfriede/report.html
+18:45:15 - INFO   - io-perf-tool - Text report were stored in /tmp/perf_tests/rotund_elfriede/report.txt
+18:45:15 - INFO   - io-perf-tool - All info stotored into /tmp/perf_tests/rotund_elfriede
+18:45:19 - INFO   - io-perf-tool - All info would be stored into /tmp/perf_tests/rotund_elfriede
+18:45:19 - INFO   - io-perf-tool - Start load_data_from_file stage
+18:45:20 - INFO   - io-perf-tool - Start report_stage stage
+18:45:20 - INFO   - io-perf-tool - Html report were stored in /tmp/perf_tests/rotund_elfriede/report.html
+18:45:20 - INFO   - io-perf-tool - Text report were stored in /tmp/perf_tests/rotund_elfriede/report.txt
+18:45:20 - INFO   - io-perf-tool - All info stotored into /tmp/perf_tests/rotund_elfriede
+18:46:01 - INFO   - io-perf-tool - All info would be stored into /tmp/perf_tests/rotund_elfriede
+18:46:01 - INFO   - io-perf-tool - Start load_data_from_file stage
+18:46:01 - INFO   - io-perf-tool - Start report_stage stage
+18:46:02 - INFO   - io-perf-tool - Html report were stored in /tmp/perf_tests/rotund_elfriede/report.html
+18:46:02 - INFO   - io-perf-tool - Text report were stored in /tmp/perf_tests/rotund_elfriede/report.txt
+18:46:02 - INFO   - io-perf-tool - All info stotored into /tmp/perf_tests/rotund_elfriede
+18:48:51 - INFO   - io-perf-tool - All info would be stored into /tmp/perf_tests/rotund_elfriede
+18:48:51 - INFO   - io-perf-tool - Start load_data_from_file stage
+18:48:51 - INFO   - io-perf-tool - Start report_stage stage
+18:48:52 - INFO   - io-perf-tool - Html report were stored in /tmp/perf_tests/rotund_elfriede/report.html
+18:48:52 - INFO   - io-perf-tool - Text report were stored in /tmp/perf_tests/rotund_elfriede/report.txt
+18:48:52 - INFO   - io-perf-tool - All info stotored into /tmp/perf_tests/rotund_elfriede
+18:49:47 - INFO   - io-perf-tool - All info would be stored into /tmp/perf_tests/rotund_elfriede
+18:49:47 - INFO   - io-perf-tool - Start load_data_from_file stage
+18:49:47 - INFO   - io-perf-tool - Start report_stage stage
+18:49:47 - INFO   - io-perf-tool - Html report were stored in /tmp/perf_tests/rotund_elfriede/report.html
+18:49:47 - INFO   - io-perf-tool - Text report were stored in /tmp/perf_tests/rotund_elfriede/report.txt
+18:49:47 - INFO   - io-perf-tool - All info stotored into /tmp/perf_tests/rotund_elfriede
+18:50:09 - INFO   - io-perf-tool - All info would be stored into /tmp/perf_tests/rotund_elfriede
+18:50:09 - INFO   - io-perf-tool - Start load_data_from_file stage
+18:50:09 - INFO   - io-perf-tool - Start report_stage stage
+18:50:10 - INFO   - io-perf-tool - Html report were stored in /tmp/perf_tests/rotund_elfriede/report.html
+18:50:10 - INFO   - io-perf-tool - Text report were stored in /tmp/perf_tests/rotund_elfriede/report.txt
+18:50:10 - INFO   - io-perf-tool - All info stotored into /tmp/perf_tests/rotund_elfriede
diff --git a/results/perf-1-compute-hdd/raw_results.yaml b/results/perf-1-compute-hdd/raw_results.yaml
new file mode 100644
index 0000000..6a6b4f6
--- /dev/null
+++ b/results/perf-1-compute-hdd/raw_results.yaml
@@ -0,0 +1,452 @@
+-   -   io
+    -   res: 
+            hdd_test_swd1mth40: 
+                rw: write
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 40
+                timings: [30, 5]
+                jobname: hdd_test_swd1mth40
+                iops: [160, 174, 172, 171, 167, 172, 169]
+                bw: [163850, 178577, 176845, 175673, 171042, 176273, 173693]
+                lat: [249262.59, 226253.83, 228928.36, 232426.25, 235542.05, 228821.3, 229864.66]
+                clat: [249221.16, 226213.61, 228885.42, 232385.36, 235498.86, 228780.83, 229823.97]
+            hdd_test_srd1mth120: 
+                rw: read
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 120
+                timings: [30, 5]
+                jobname: hdd_test_srd1mth120
+                iops: [438, 473, 421, 469, 477, 451, 474]
+                bw: [448702, 485077, 431596, 481014, 488770, 462393, 485464]
+                lat: [272341.19, 252221.05, 283448.97, 254310.42, 250329.45, 264582.62, 252028.58]
+                clat: [272341.0, 252220.88, 283448.78, 254310.25, 250329.27, 264582.44, 252028.41]
+            hdd_test_rwd4kth1: 
+                rw: randwrite
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 1
+                timings: [30, 5]
+                jobname: hdd_test_rwd4kth1
+                iops: [404, 406, 405, 410, 404, 407, 408]
+                bw: [1616, 1624, 1623, 1640, 1617, 1630, 1632]
+                lat: [2470.42, 2457.72, 2459.19, 2433.45, 2469.15, 2449.21, 2446.34]
+                clat: [2470.1, 2457.38, 2458.88, 2433.11, 2468.82, 2448.89, 2446.02]
+            hdd_test_rrd4kth5: 
+                rw: randread
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 5
+                timings: [30, 5]
+                jobname: hdd_test_rrd4kth5
+                iops: [262, 287, 277, 292, 279, 290, 270]
+                bw: [1048, 1149, 1108, 1170, 1119, 1161, 1082]
+                lat: [19059.87, 17386.08, 18032.29, 17070.71, 17856.45, 17204.53, 18461.88]
+                clat: [19059.61, 17385.79, 18031.99, 17070.41, 17856.17, 17204.21, 18461.62]
+            hdd_test_rws4kth5: 
+                rw: randwrite
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: s
+                concurence: 5
+                timings: [30, 5]
+                jobname: hdd_test_rws4kth5
+                iops: [71, 74, 71, 73, 74, 73, 73]
+                bw: [285, 297, 287, 295, 296, 293, 295]
+                lat: [69964.5, 67239.55, 69604.95, 67606.77, 67311.6, 68136.38, 67596.02]
+                clat: [69964.09, 67239.18, 69604.56, 67606.38, 67311.23, 68136.01, 67595.64]
+            hdd_test_swd1mth1: 
+                rw: write
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 1
+                timings: [30, 5]
+                jobname: hdd_test_swd1mth1
+                iops: [177, 174, 173, 177, 175, 173, 173]
+                bw: [181320, 178232, 177891, 181685, 179892, 177816, 177999]
+                lat: [5644.35, 5742.4, 5753.36, 5633.08, 5689.31, 5755.67, 5749.82]
+                clat: [5629.54, 5727.65, 5738.58, 5618.43, 5674.7, 5740.86, 5735.11]
+            hdd_test_srd1mth80: 
+                rw: read
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 80
+                timings: [30, 5]
+                jobname: hdd_test_srd1mth80
+                iops: [488, 481, 474, 468, 489, 481, 489]
+                bw: [500256, 493161, 485776, 480072, 501654, 492882, 501021]
+                lat: [163227.78, 165575.86, 168155.67, 170139.34, 162830.11, 165750.03, 163235.84]
+                clat: [163227.61, 165575.69, 168155.52, 170139.17, 162829.92, 165749.88, 163235.67]
+            hdd_test_swd1mth120: 
+                rw: write
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 120
+                timings: [30, 5]
+                jobname: hdd_test_swd1mth120
+                iops: [201, 211, 205, 218, 200, 211, 216]
+                bw: [206004, 216334, 210607, 223384, 205479, 216865, 221524]
+                lat: [592248.31, 531388.81, 550845.62, 507271.84, 564501.19, 517807.72, 532421.38]
+                clat: [592203.56, 531346.5, 550801.75, 507227.88, 564458.19, 517765.69, 532375.44]
+            hdd_test_swd1mth5: 
+                rw: write
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 5
+                timings: [30, 5]
+                jobname: hdd_test_swd1mth5
+                iops: [151, 145, 152, 148, 151, 143, 152]
+                bw: [155361, 148761, 155975, 152010, 155283, 146807, 155969]
+                lat: [32873.79, 34407.42, 32816.2, 33670.63, 32944.83, 34865.57, 32814.71]
+                clat: [32857.0, 34389.8, 32799.38, 33653.61, 32928.36, 34848.3, 32798.34]
+            hdd_test_rws4kth15: 
+                rw: randwrite
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: s
+                concurence: 15
+                timings: [30, 5]
+                jobname: hdd_test_rws4kth15
+                iops: [80, 78, 83, 76, 82, 82, 78]
+                bw: [321, 312, 333, 307, 331, 329, 312]
+                lat: [186285.27, 190777.61, 179656.09, 194278.34, 180218.91, 181491.55, 191513.5]
+                clat: [186284.88, 190777.22, 179655.69, 194277.94, 180218.5, 181491.14, 191513.09]
+            hdd_test_rws4kth30: 
+                rw: randwrite
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: s
+                concurence: 30
+                timings: [30, 5]
+                jobname: hdd_test_rws4kth30
+                iops: [82, 77, 81, 82, 83, 76, 82]
+                bw: [328, 308, 326, 329, 333, 306, 329]
+                lat: [363845.31, 386380.12, 364771.66, 361253.5, 357521.56, 388269.97, 361152.19]
+                clat: [363844.91, 386379.72, 364771.25, 361253.06, 357521.12, 388269.56, 361151.78]
+            hdd_test_rws4kth10: 
+                rw: randwrite
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: s
+                concurence: 10
+                timings: [30, 5]
+                jobname: hdd_test_rws4kth10
+                iops: [82, 77, 83, 77, 82, 78, 83]
+                bw: [330, 311, 332, 309, 331, 313, 333]
+                lat: [120939.94, 128316.23, 120108.23, 128817.77, 120450.09, 127472.73, 119743.85]
+                clat: [120939.52, 128315.8, 120107.84, 128817.36, 120449.7, 127472.34, 119743.43]
+            hdd_test_srd1mth15: 
+                rw: read
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 15
+                timings: [30, 5]
+                jobname: hdd_test_srd1mth15
+                iops: [192, 176, 172, 181, 186, 186, 186]
+                bw: [197618, 180275, 177117, 185532, 190677, 190988, 190529]
+                lat: [77377.37, 85025.45, 86539.22, 82610.98, 80411.26, 80263.92, 80454.14]
+                clat: [77377.22, 85025.3, 86539.05, 82610.83, 80411.09, 80263.76, 80453.98]
+            hdd_test_srd1mth30: 
+                rw: read
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 30
+                timings: [30, 5]
+                jobname: hdd_test_srd1mth30
+                iops: [375, 421, 423, 325, 346, 405, 420]
+                bw: [384467, 431356, 433528, 333485, 355080, 414940, 431082]
+                lat: [79710.12, 71103.94, 70713.8, 92025.48, 86380.95, 73954.95, 71141.71]
+                clat: [79709.97, 71103.77, 70713.64, 92025.31, 86380.8, 73954.78, 71141.55]
+            hdd_test_srd1mth10: 
+                rw: read
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 10
+                timings: [30, 5]
+                jobname: hdd_test_srd1mth10
+                iops: [157, 174, 168, 166, 167, 175, 182]
+                bw: [161732, 178381, 172617, 170814, 171364, 179492, 186602]
+                lat: [63202.16, 57316.83, 59239.18, 59862.51, 59670.26, 56965.62, 54803.95]
+                clat: [63201.98, 57316.68, 59239.02, 59862.35, 59670.09, 56965.46, 54803.78]
+            hdd_test_rrd4kth30: 
+                rw: randread
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 30
+                timings: [30, 5]
+                jobname: hdd_test_rrd4kth30
+                iops: [469, 463, 462, 457, 460, 460, 457]
+                bw: [1879, 1855, 1850, 1828, 1843, 1842, 1828]
+                lat: [63604.93, 64526.77, 64710.67, 65465.62, 64910.79, 64978.81, 65426.57]
+                clat: [63604.78, 64526.62, 64710.52, 65465.47, 64910.63, 64978.67, 65426.43]
+            hdd_test_rrd4kth10: 
+                rw: randread
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 10
+                timings: [30, 5]
+                jobname: hdd_test_rrd4kth10
+                iops: [353, 353, 354, 358, 356, 349, 353]
+                bw: [1415, 1413, 1419, 1433, 1424, 1397, 1413]
+                lat: [28220.8, 28267.07, 28136.39, 27866.14, 28059.99, 28568.01, 28278.55]
+                clat: [28220.62, 28266.85, 28136.17, 27865.95, 28059.8, 28567.81, 28278.35]
+            hdd_test_rrd4kth15: 
+                rw: randread
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 15
+                timings: [30, 5]
+                jobname: hdd_test_rrd4kth15
+                iops: [395, 390, 394, 393, 399, 389, 392]
+                bw: [1582, 1560, 1576, 1574, 1599, 1559, 1570]
+                lat: [37844.47, 38370.14, 38009.38, 38071.2, 37473.45, 38400.98, 38149.96]
+                clat: [37844.32, 38369.99, 38009.23, 38071.05, 37473.29, 38400.84, 38149.82]
+            hdd_test_swd1mth20: 
+                rw: write
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 20
+                timings: [30, 5]
+                jobname: hdd_test_swd1mth20
+                iops: [151, 149, 154, 150, 155, 149, 150]
+                bw: [155326, 153496, 157881, 153975, 159391, 152655, 153698]
+                lat: [131614.89, 133148.73, 129457.04, 132566.56, 128049.26, 134008.36, 132869.22]
+                clat: [131585.36, 133118.5, 129427.01, 132534.31, 128020.7, 133976.36, 132838.5]
+            hdd_test_rws4kth120: 
+                rw: randwrite
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: s
+                concurence: 120
+                timings: [30, 5]
+                jobname: hdd_test_rws4kth120
+                iops: [79, 82, 81, 83, 77, 82, 77]
+                bw: [319, 328, 324, 332, 311, 329, 311]
+                lat: [1491354.75, 1415709.5, 1426159.62, 1390980.88, 1489516.88, 1403286.62, 1492233.62]
+                clat: [1491354.38, 1415709.12, 1426159.12, 1390980.5, 1489516.38, 1403286.12, 1492233.25]
+            hdd_test_rrd4kth120: 
+                rw: randread
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 120
+                timings: [30, 5]
+                jobname: hdd_test_rrd4kth120
+                iops: [478, 472, 484, 485, 484, 474, 488]
+                bw: [1913, 1889, 1938, 1941, 1936, 1898, 1952]
+                lat: [246951.8, 250621.23, 244948.47, 244863.33, 245347.81, 249996.78, 243654.67]
+                clat: [246951.64, 250621.08, 244948.31, 244863.19, 245347.66, 249996.62, 243654.53]
+            hdd_test_swd1mth15: 
+                rw: write
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 15
+                timings: [30, 5]
+                jobname: hdd_test_swd1mth15
+                iops: [149, 155, 149, 151, 153, 152, 148]
+                bw: [153004, 159443, 152738, 155260, 157541, 156277, 151712]
+                lat: [99993.16, 96187.08, 100372.34, 98703.3, 97320.62, 97898.12, 100343.73]
+                clat: [99967.08, 96163.2, 100345.82, 98680.35, 97293.82, 97873.88, 100317.48]
+            hdd_test_srd1mth1: 
+                rw: read
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 1
+                timings: [30, 5]
+                jobname: hdd_test_srd1mth1
+                iops: [180, 180, 181, 177, 180, 180, 180]
+                bw: [184751, 184931, 185614, 181816, 185235, 184429, 185272]
+                lat: [5539.57, 5534.02, 5513.71, 5628.99, 5524.93, 5549.08, 5523.87]
+                clat: [5539.29, 5533.76, 5513.46, 5628.72, 5524.68, 5548.82, 5523.62]
+            hdd_test_srd1mth5: 
+                rw: read
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 5
+                timings: [30, 5]
+                jobname: hdd_test_srd1mth5
+                iops: [137, 165, 154, 132, 141, 167, 159]
+                bw: [140534, 169331, 158458, 135958, 144873, 171172, 163514]
+                lat: [36426.63, 30212.38, 32287.75, 37629.91, 35317.55, 29885.17, 31288.82]
+                clat: [36426.43, 30212.16, 32287.56, 37629.69, 35317.33, 29884.99, 31288.62]
+            hdd_test_swd1mth80: 
+                rw: write
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 80
+                timings: [30, 5]
+                jobname: hdd_test_swd1mth80
+                iops: [203, 196, 202, 194, 188, 190, 194]
+                bw: [208326, 201104, 206881, 198828, 192591, 194757, 199225]
+                lat: [390070.41, 395894.09, 386283.0, 391240.69, 405315.09, 395800.53, 393988.16]
+                clat: [390023.34, 395848.88, 386237.84, 391197.75, 405272.56, 395758.59, 393945.19]
+            hdd_test_rrd4kth80: 
+                rw: randread
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 80
+                timings: [30, 5]
+                jobname: hdd_test_rrd4kth80
+                iops: [474, 478, 476, 469, 482, 477, 475]
+                bw: [1896, 1913, 1906, 1876, 1928, 1909, 1900]
+                lat: [166645.81, 165584.61, 166682.8, 169626.28, 164584.86, 166233.72, 167094.14]
+                clat: [166645.67, 165584.48, 166682.64, 169626.14, 164584.7, 166233.56, 167094.0]
+            hdd_test_rws4kth20: 
+                rw: randwrite
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: s
+                concurence: 20
+                timings: [30, 5]
+                jobname: hdd_test_rws4kth20
+                iops: [77, 82, 79, 82, 81, 82, 78]
+                bw: [311, 329, 319, 329, 326, 330, 312]
+                lat: [255892.94, 241595.78, 249261.97, 241525.91, 243757.88, 240959.8, 254951.75]
+                clat: [255892.52, 241595.38, 249261.56, 241525.5, 243757.47, 240959.38, 254951.34]
+            hdd_test_srd1mth20: 
+                rw: read
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 20
+                timings: [30, 5]
+                jobname: hdd_test_srd1mth20
+                iops: [286, 278, 252, 301, 266, 270, 253]
+                bw: [292956, 285286, 258565, 308458, 272386, 276708, 259966]
+                lat: [69842.21, 71653.4, 79006.03, 66292.67, 75043.28, 73879.11, 78661.34]
+                clat: [69842.04, 71653.23, 79005.87, 66292.51, 75043.12, 73878.95, 78661.18]
+            hdd_test_rrd4kth40: 
+                rw: randread
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 40
+                timings: [30, 5]
+                jobname: hdd_test_rrd4kth40
+                iops: [462, 463, 465, 457, 456, 460, 457]
+                bw: [1851, 1854, 1861, 1828, 1827, 1843, 1828]
+                lat: [85900.73, 86016.24, 85645.2, 87243.56, 87067.41, 86435.66, 87320.75]
+                clat: [85900.58, 86016.09, 85645.03, 87243.41, 87067.26, 86435.52, 87320.59]
+            hdd_test_rrd4kth20: 
+                rw: randread
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 20
+                timings: [30, 5]
+                jobname: hdd_test_rrd4kth20
+                iops: [419, 421, 429, 425, 423, 427, 424]
+                bw: [1679, 1685, 1716, 1702, 1692, 1709, 1697]
+                lat: [47528.56, 47403.04, 46551.27, 46879.47, 47227.83, 46707.35, 47008.94]
+                clat: [47528.41, 47402.89, 46551.11, 46879.32, 47227.68, 46707.2, 47008.79]
+            hdd_test_rws4kth80: 
+                rw: randwrite
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: s
+                concurence: 80
+                timings: [30, 5]
+                jobname: hdd_test_rws4kth80
+                iops: [75, 82, 78, 81, 82, 81, 76]
+                bw: [302, 329, 314, 327, 329, 325, 307]
+                lat: [1050249.5, 947348.38, 994411.31, 950421.94, 947885.5, 961421.5, 1013113.69]
+                clat: [1050249.12, 947347.94, 994410.88, 950421.5, 947885.0, 961421.06, 1013113.25]
+            hdd_test_rws4kth1: 
+                rw: randwrite
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: s
+                concurence: 1
+                timings: [30, 5]
+                jobname: hdd_test_rws4kth1
+                iops: [41, 41, 41, 41, 42, 41, 41]
+                bw: [166, 165, 167, 164, 168, 165, 167]
+                lat: [23983.87, 24110.1, 23813.04, 24365.01, 23743.05, 24174.92, 23816.97]
+                clat: [23983.49, 24109.79, 23812.69, 24364.66, 23742.73, 24174.54, 23816.61]
+            hdd_test_rws4kth40: 
+                rw: randwrite
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: s
+                concurence: 40
+                timings: [30, 5]
+                jobname: hdd_test_rws4kth40
+                iops: [78, 78, 83, 82, 77, 77, 83]
+                bw: [313, 312, 332, 331, 309, 311, 333]
+                lat: [506244.72, 507070.97, 476336.69, 476645.34, 512317.62, 507324.06, 473760.31]
+                clat: [506244.34, 507070.56, 476336.31, 476644.94, 512317.22, 507323.59, 473759.91]
+            hdd_test_rrd4kth1: 
+                rw: randread
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 1
+                timings: [30, 5]
+                jobname: hdd_test_rrd4kth1
+                iops: [143, 157, 149, 157, 152, 157, 155]
+                bw: [575, 629, 597, 631, 611, 628, 620]
+                lat: [6950.36, 6351.87, 6695.59, 6330.2, 6534.99, 6359.04, 6439.06]
+                clat: [6950.11, 6351.6, 6695.33, 6329.94, 6534.73, 6358.75, 6438.8]
+            hdd_test_swd1mth30: 
+                rw: write
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 30
+                timings: [30, 5]
+                jobname: hdd_test_swd1mth30
+                iops: [142, 155, 160, 167, 163, 157, 164]
+                bw: [145482, 158842, 164228, 171272, 167495, 161213, 168625]
+                lat: [210477.3, 191831.08, 185666.44, 178756.48, 181382.86, 187686.77, 181725.97]
+                clat: [210439.06, 191794.2, 185629.3, 178718.39, 181345.3, 187648.77, 181689.28]
+            hdd_test_swd1mth10: 
+                rw: write
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 10
+                timings: [30, 5]
+                jobname: hdd_test_swd1mth10
+                iops: [149, 154, 147, 150, 153, 148, 151]
+                bw: [152757, 158453, 150542, 153884, 156809, 152038, 155536]
+                lat: [66851.63, 64582.15, 67974.72, 66451.34, 65271.57, 67256.13, 65793.96]
+                clat: [66831.3, 64562.43, 67954.29, 66430.45, 65252.41, 67235.51, 65774.64]
+            hdd_test_srd1mth40: 
+                rw: read
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 40
+                timings: [30, 5]
+                jobname: hdd_test_srd1mth40
+                iops: [458, 467, 424, 440, 457, 477, 447]
+                bw: [469523, 478406, 435021, 451389, 468090, 488883, 458133]
+                lat: [87134.27, 85494.91, 94015.34, 90609.92, 87388.05, 83693.32, 89268.15]
+                clat: [87134.11, 85494.76, 94015.19, 90609.77, 87387.9, 83693.16, 89267.99]
+        __meta__: 
+            raw_cfg: 
+                '[defaults]\nwait_for_previous\ngroup_reporting\ntime_based\nbuffered=0\niodepth=1\n\nfilename={FILENAME}\nNUM_ROUNDS=7\n\nramp_time=5\nsize=10Gb\nruntime=30\n\n# ---------------------------------------------------------------------\n# check different thread count, sync mode. (latency, iops) = func(th_count)\n# ---------------------------------------------------------------------\n[hdd_test_{TEST_SUMM} * {NUM_ROUNDS}]\nblocksize=4k\nrw=randwrite\nsync=1\nnumjobs={% 1, 5, 10, 15, 20, 30, 40, 80, 120 %}\n\n# ---------------------------------------------------------------------\n# check different thread count, direct read mode. (latency, iops) = func(th_count)\n# also check iops for randread\n# ---------------------------------------------------------------------\n[hdd_test_{TEST_SUMM} * {NUM_ROUNDS}]\nblocksize=4k\nrw=randread\ndirect=1\nnumjobs={% 1, 5, 10, 15, 20, 30, 40, 80, 120 %}\n\n# ---------------------------------------------------------------------\n# check different thread count, direct read/write mode. (bw, iops) = func(th_count)\n# also check BW for seq read/write.\n# ---------------------------------------------------------------------\n[hdd_test_{TEST_SUMM} * {NUM_ROUNDS}]\nblocksize=1m\nrw={% read, write %}\ndirect=1\nnumjobs={% 1, 5, 10, 15, 20, 30, 40, 80, 120 %}\n\n# ---------------------------------------------------------------------\n# check IOPS randwrite.\n# ---------------------------------------------------------------------\n[hdd_test_{TEST_SUMM} * {NUM_ROUNDS}]\nblocksize=4k\nrw=randwrite\ndirect=1\n'
+            params: 
+                NUM_ROUNDS: 7
+                FILENAME: /opt/xxx.bin
\ No newline at end of file
diff --git a/results/perf-1-compute-hdd/report.html b/results/perf-1-compute-hdd/report.html
new file mode 100644
index 0000000..ef326eb
--- /dev/null
+++ b/results/perf-1-compute-hdd/report.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+  <title>Report</title>
+</head>
+
+<body>
+<div><ol><li><img src='charts/6fa7da0da5f789f40c0adc40fb125521.png'></li>
+<li><img src='charts/9cfbfff2077f35018f164fa9cb4cc9f7.png'></li></ol></div>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/results/perf-1-compute-hdd/report.txt b/results/perf-1-compute-hdd/report.txt
new file mode 100644
index 0000000..9d4992f
--- /dev/null
+++ b/results/perf-1-compute-hdd/report.txt
@@ -0,0 +1,45 @@
++-------------+------+---------+-----------+--------+
+| Description | IOPS | BW KBps | Dev * 3 % | LAT ms |
++=============+======+=========+===========+========+
+| rrd4kth1    |  152 |     613 |         9 |      6 |
+| rrd4kth5    |  279 |    1119 |        11 |     17 |
+| rrd4kth10   |  353 |    1416 |         2 |     28 |
+| rrd4kth15   |  393 |    1574 |         2 |     38 |
+| rrd4kth20   |  424 |    1697 |         2 |     47 |
+| rrd4kth30   |  461 |    1846 |         2 |     64 |
+| rrd4kth40   |  460 |    1841 |         2 |     86 |
+| rrd4kth80   |  475 |    1904 |         2 |    166 |
+| rrd4kth120  |  480 |    1923 |         3 |    246 |
+| ---         |  --- |     --- |       --- |    --- |
+| rwd4kth1    |  406 |    1626 |         1 |      2 |
+| ---         |  --- |     --- |       --- |    --- |
+| rws4kth1    |   41 |     166 |         2 |     24 |
+| rws4kth5    |   72 |     292 |         4 |     68 |
+| rws4kth10   |   80 |     322 |         9 |    123 |
+| rws4kth15   |   79 |     320 |         9 |    186 |
+| rws4kth20   |   80 |     322 |         7 |    246 |
+| rws4kth30   |   80 |     322 |         9 |    369 |
+| rws4kth40   |   79 |     320 |         9 |    494 |
+| rws4kth80   |   79 |     319 |         9 |    980 |
+| rws4kth120  |   80 |     322 |         7 |   1444 |
+| ---         |  --- |     --- |       --- |    --- |
+| srd1mth1    |  179 |  184578 |         1 |      5 |
+| srd1mth5    |  150 |  154834 |        25 |     33 |
+| srd1mth10   |  169 |  174428 |        12 |     58 |
+| srd1mth15   |  182 |  187533 |        10 |     81 |
+| srd1mth20   |  272 |  279189 |        17 |     73 |
+| srd1mth30   |  387 |  397705 |        28 |     77 |
+| srd1mth40   |  452 |  464206 |        10 |     88 |
+| srd1mth80   |  481 |  493546 |         4 |    165 |
+| srd1mth120  |  457 |  469002 |        13 |    261 |
+| ---         |  --- |     --- |       --- |    --- |
+| swd1mth1    |  174 |  179262 |         2 |      5 |
+| swd1mth5    |  148 |  152880 |         6 |     33 |
+| swd1mth10   |  150 |  154288 |         5 |     66 |
+| swd1mth15   |  151 |  155139 |         5 |     98 |
+| swd1mth20   |  151 |  155203 |         4 |    131 |
+| swd1mth30   |  158 |  162451 |        14 |    188 |
+| swd1mth40   |  169 |  173707 |         7 |    233 |
+| swd1mth80   |  195 |  200244 |         8 |    394 |
+| swd1mth120  |  208 |  214313 |         9 |    542 |
++-------------+------+---------+-----------+--------+
diff --git a/results/usb_hdd/log.txt b/results/usb_hdd/log.txt
new file mode 100644
index 0000000..40af172
--- /dev/null
+++ b/results/usb_hdd/log.txt
@@ -0,0 +1,26 @@
+03:17:05 - INFO   - io-perf-tool - All info would be stored into /tmp/perf_tests/ungored_babara
+03:17:05 - INFO   - io-perf-tool - Start discover_stage stage
+03:17:05 - INFO   - io-perf-tool - Start log_nodes_statistic stage
+03:17:05 - INFO   - io-perf-tool - Found 1 nodes total
+03:17:05 - [1;34mDEBUG[0m - io-perf-tool - Found 1 nodes with role testnode
+03:17:05 - INFO   - io-perf-tool - Start connect_stage stage
+03:17:05 - INFO   - io-perf-tool - Connecting to nodes
+03:17:05 - INFO   - io-perf-tool - All nodes connected successfully
+03:17:05 - INFO   - io-perf-tool - Start deploy_sensors_stage stage
+03:17:05 - INFO   - io-perf-tool - Start run_tests_stage stage
+03:17:05 - INFO   - io-perf-tool - Starting io tests
+03:17:05 - [1;34mDEBUG[0m - io-perf-tool - Starting io test on ssh://koder:koder771@@127.0.0.1 node
+03:17:05 - [1;34mDEBUG[0m - io-perf-tool - Run preparation for ssh://koder:koder771@@127.0.0.1
+03:17:06 - [1;34mDEBUG[0m - io-perf-tool - SSH: Exec 'which fio'
+03:17:06 - [1;34mDEBUG[0m - io-perf-tool - SSH: Exec 'dd if=/dev/zero of=/media/koder/a5230078-4c27-4c3b-99aa-26148e78b2e7/xxx.bin bs=1048576 count=10240'
+03:18:59 - [1;34mDEBUG[0m - io-perf-tool - Run test for ssh://koder:koder771@@127.0.0.1
+03:18:59 - [1;34mDEBUG[0m - io-perf-tool - Waiting on barrier
+03:18:59 - INFO   - io-perf-tool - Test will takes about 2:12:35
+03:18:59 - [1;34mDEBUG[0m - io-perf-tool - SSH: Exec 'env python2 /tmp/disk_test_agent.py --type fio --params NUM_ROUNDS=7 FILENAME=/media/koder/a5230078-4c27-4c3b-99aa-26148e78b2e7/xxx.bin --json -'
+05:34:57 - INFO   - io-perf-tool - Start store_raw_results_stage stage
+05:34:57 - INFO   - io-perf-tool - Start console_report_stage stage
+05:34:57 - INFO   - io-perf-tool - Start report_stage stage
+05:34:57 - INFO   - io-perf-tool - Text report were stored in /tmp/perf_tests/ungored_babara/report.txt
+05:34:57 - INFO   - io-perf-tool - Start shut_down_vms_stage stage
+05:34:57 - INFO   - io-perf-tool - Start disconnect_stage stage
+05:34:57 - INFO   - io-perf-tool - All info stotored into /tmp/perf_tests/ungored_babara
diff --git a/results/usb_hdd/raw_results.yaml b/results/usb_hdd/raw_results.yaml
new file mode 100644
index 0000000..6d45a36
--- /dev/null
+++ b/results/usb_hdd/raw_results.yaml
@@ -0,0 +1,452 @@
+-   -   io
+    -   res: 
+            hdd_test_swd1mth40: 
+                rw: write
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 40
+                timings: [30, 5]
+                jobname: hdd_test_swd1mth40
+                iops: [105, 145, 127, 124, 105, 122, 109]
+                bw: [107893, 148789, 130439, 127263, 107984, 124948, 112555]
+                lat: [375066.53, 273705.81, 312135.53, 319384.53, 376148.97, 325759.97, 361182.31]
+                clat: [375007.91, 273649.44, 312076.34, 319325.84, 376091.69, 325702.38, 361123.75]
+            hdd_test_srd1mth120: 
+                rw: read
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 120
+                timings: [30, 5]
+                jobname: hdd_test_srd1mth120
+                iops: [158, 159, 166, 173, 167, 167, 169]
+                bw: [162507, 163010, 170981, 177790, 171275, 171870, 173625]
+                lat: [744070.25, 742432.19, 706168.94, 681298.69, 708267.62, 704216.81, 698211.88]
+                clat: [744070.0, 742431.94, 706168.69, 681298.44, 708267.38, 704216.56, 698211.62]
+            hdd_test_rwd4kth1: 
+                rw: randwrite
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 1
+                timings: [30, 5]
+                jobname: hdd_test_rwd4kth1
+                iops: [112, 123, 149, 161, 157, 164, 165]
+                bw: [450, 492, 596, 645, 631, 657, 661]
+                lat: [8877.02, 8121.73, 6698.91, 6195.59, 6331.68, 6076.8, 6044.41]
+                clat: [8876.59, 8121.3, 6698.45, 6195.07, 6331.21, 6076.32, 6043.92]
+            hdd_test_rrd4kth5: 
+                rw: randread
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 5
+                timings: [30, 5]
+                jobname: hdd_test_rrd4kth5
+                iops: [85, 86, 86, 87, 86, 86, 86]
+                bw: [340, 345, 347, 348, 344, 347, 346]
+                lat: [58704.49, 57792.17, 57554.85, 57388.99, 57998.39, 57433.83, 57678.13]
+                clat: [58704.05, 57791.74, 57554.36, 57388.57, 57997.91, 57433.34, 57677.67]
+            hdd_test_rws4kth5: 
+                rw: randwrite
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: s
+                concurence: 5
+                timings: [30, 5]
+                jobname: hdd_test_rws4kth5
+                iops: [34, 34, 34, 34, 34, 34, 34]
+                bw: [137, 138, 137, 139, 137, 137, 139]
+                lat: [145517.03, 144205.89, 145408.03, 143756.66, 144969.97, 145307.56, 142772.22]
+                clat: [145516.48, 144205.38, 145407.48, 143756.16, 144969.41, 145307.02, 142771.7]
+            hdd_test_swd1mth1: 
+                rw: write
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 1
+                timings: [30, 5]
+                jobname: hdd_test_swd1mth1
+                iops: [95, 94, 94, 94, 94, 94, 94]
+                bw: [97366, 96860, 96779, 97127, 96625, 96940, 96932]
+                lat: [10511.75, 10566.27, 10575.46, 10537.2, 10592.11, 10557.77, 10558.46]
+                clat: [10468.69, 10521.81, 10531.77, 10493.78, 10547.31, 10513.95, 10514.26]
+            hdd_test_srd1mth80: 
+                rw: read
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 80
+                timings: [30, 5]
+                jobname: hdd_test_srd1mth80
+                iops: [148, 153, 158, 156, 153, 160, 158]
+                bw: [151692, 156724, 162496, 160126, 157015, 164230, 162224]
+                lat: [534233.0, 517392.75, 499338.84, 507032.94, 516170.78, 493990.31, 499771.66]
+                clat: [534232.75, 517392.5, 499338.59, 507032.66, 516170.53, 493990.06, 499771.41]
+            hdd_test_swd1mth120: 
+                rw: write
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 120
+                timings: [30, 5]
+                jobname: hdd_test_swd1mth120
+                iops: [116, 142, 144, 124, 121, 132, 124]
+                bw: [118930, 145829, 147548, 127265, 124088, 135927, 127405]
+                lat: [1025413.25, 827922.44, 814388.75, 940374.5, 971605.06, 882674.88, 949472.88]
+                clat: [1025355.81, 827862.56, 814328.62, 940316.12, 971544.88, 882618.44, 949414.25]
+            hdd_test_swd1mth5: 
+                rw: write
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 5
+                timings: [30, 5]
+                jobname: hdd_test_swd1mth5
+                iops: [151, 147, 150, 133, 137, 136, 133]
+                bw: [154844, 151361, 153796, 136197, 140825, 139394, 136646]
+                lat: [33048.85, 33796.82, 33257.17, 37566.2, 36330.36, 36702.46, 37434.75]
+                clat: [32990.97, 33735.27, 33198.08, 37505.76, 36270.16, 36642.41, 37376.55]
+            hdd_test_rws4kth15: 
+                rw: randwrite
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: s
+                concurence: 15
+                timings: [30, 5]
+                jobname: hdd_test_rws4kth15
+                iops: [35, 35, 36, 35, 36, 35, 35]
+                bw: [141, 142, 144, 143, 144, 142, 140]
+                lat: [419827.44, 418355.41, 412684.53, 414331.69, 412641.34, 418578.97, 422547.66]
+                clat: [419826.88, 418354.88, 412683.97, 414331.19, 412640.78, 418578.44, 422547.12]
+            hdd_test_rws4kth30: 
+                rw: randwrite
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: s
+                concurence: 30
+                timings: [30, 5]
+                jobname: hdd_test_rws4kth30
+                iops: [34, 34, 34, 33, 34, 35, 36]
+                bw: [139, 138, 139, 135, 139, 141, 145]
+                lat: [851475.19, 854181.0, 847631.75, 869914.25, 848062.88, 832771.06, 813126.06]
+                clat: [851474.69, 854180.5, 847631.19, 869913.69, 848062.25, 832770.5, 813125.56]
+            hdd_test_rws4kth10: 
+                rw: randwrite
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: s
+                concurence: 10
+                timings: [30, 5]
+                jobname: hdd_test_rws4kth10
+                iops: [34, 35, 35, 35, 35, 35, 34]
+                bw: [137, 142, 141, 142, 141, 140, 139]
+                lat: [289637.41, 278670.94, 281827.5, 280160.75, 281804.59, 283823.5, 284971.53]
+                clat: [289636.84, 278670.34, 281826.97, 280160.22, 281804.06, 283822.91, 284971.0]
+            hdd_test_srd1mth15: 
+                rw: read
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 15
+                timings: [30, 5]
+                jobname: hdd_test_srd1mth15
+                iops: [170, 170, 170, 170, 169, 170, 170]
+                bw: [174429, 174411, 174905, 174742, 173865, 174197, 174156]
+                lat: [88054.62, 88052.15, 87804.64, 87892.23, 88331.83, 88159.85, 88181.89]
+                clat: [88054.4, 88051.94, 87804.43, 87892.02, 88331.61, 88159.66, 88181.67]
+            hdd_test_srd1mth30: 
+                rw: read
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 30
+                timings: [30, 5]
+                jobname: hdd_test_srd1mth30
+                iops: [136, 116, 106, 124, 122, 121, 128]
+                bw: [139511, 118903, 109102, 127276, 125137, 124635, 131880]
+                lat: [219711.06, 257222.5, 280296.47, 240494.25, 244719.33, 245545.17, 232045.8]
+                clat: [219710.8, 257222.22, 280296.16, 240493.98, 244719.06, 245544.89, 232045.55]
+            hdd_test_srd1mth10: 
+                rw: read
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 10
+                timings: [30, 5]
+                jobname: hdd_test_srd1mth10
+                iops: [159, 161, 161, 159, 161, 161, 161]
+                bw: [163714, 165408, 165051, 163758, 165034, 165886, 165315]
+                lat: [62544.5, 61899.84, 62031.3, 62523.12, 62040.04, 61720.03, 61932.24]
+                clat: [62544.27, 61899.61, 62031.08, 62522.9, 62039.81, 61719.81, 61932.02]
+            hdd_test_rrd4kth30: 
+                rw: randread
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 30
+                timings: [30, 5]
+                jobname: hdd_test_rrd4kth30
+                iops: [108, 109, 109, 109, 109, 108, 109]
+                bw: [435, 437, 437, 438, 437, 434, 438]
+                lat: [273883.81, 272697.97, 273037.22, 272646.16, 273106.78, 274951.75, 272044.94]
+                clat: [273883.41, 272697.59, 273036.84, 272645.78, 273106.41, 274951.34, 272044.53]
+            hdd_test_rrd4kth10: 
+                rw: randread
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 10
+                timings: [30, 5]
+                jobname: hdd_test_rrd4kth10
+                iops: [98, 98, 100, 100, 99, 98, 99]
+                bw: [394, 392, 402, 400, 397, 395, 396]
+                lat: [101016.6, 101717.11, 99280.92, 99826.44, 100580.12, 100984.79, 100799.66]
+                clat: [101016.17, 101716.7, 99280.52, 99825.99, 100579.7, 100984.38, 100799.27]
+            hdd_test_rrd4kth15: 
+                rw: randread
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 15
+                timings: [30, 5]
+                jobname: hdd_test_rrd4kth15
+                iops: [105, 105, 105, 104, 104, 105, 105]
+                bw: [421, 422, 420, 417, 419, 422, 422]
+                lat: [141965.73, 141790.3, 142330.92, 143405.28, 142748.47, 141609.78, 141561.55]
+                clat: [141965.33, 141789.88, 142330.5, 143404.88, 142748.08, 141609.38, 141561.14]
+            hdd_test_swd1mth20: 
+                rw: write
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 20
+                timings: [30, 5]
+                jobname: hdd_test_swd1mth20
+                iops: [135, 140, 130, 134, 125, 132, 139]
+                bw: [139168, 143839, 133801, 137426, 128849, 135635, 142659]
+                lat: [147055.97, 141970.05, 152486.52, 148646.81, 158481.55, 150673.88, 143078.95]
+                clat: [146995.77, 141910.28, 152425.36, 148589.34, 158421.92, 150612.77, 143020.75]
+            hdd_test_rws4kth120: 
+                rw: randwrite
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: s
+                concurence: 120
+                timings: [30, 5]
+                jobname: hdd_test_rws4kth120
+                iops: [35, 35, 35, 35, 36, 35, 35]
+                bw: [142, 142, 142, 143, 145, 143, 143]
+                lat: [3353833.0, 3149759.0, 3151540.25, 3134665.5, 3074830.25, 3130676.75, 3121878.75]
+                clat: [3353832.25, 3149758.5, 3151539.5, 3134664.75, 3074829.75, 3130676.25, 3121878.25]
+            hdd_test_rrd4kth120: 
+                rw: randread
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 120
+                timings: [30, 5]
+                jobname: hdd_test_rrd4kth120
+                iops: [119, 120, 120, 121, 120, 121, 120]
+                bw: [476, 482, 482, 484, 483, 485, 483]
+                lat: [968035.0, 972234.5, 974273.5, 969773.44, 970889.38, 967950.88, 972564.88]
+                clat: [968034.56, 972234.12, 974273.12, 969773.06, 970889.0, 967950.5, 972564.5]
+            hdd_test_swd1mth15: 
+                rw: write
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 15
+                timings: [30, 5]
+                jobname: hdd_test_swd1mth15
+                iops: [133, 140, 137, 158, 125, 136, 143]
+                bw: [137031, 143704, 140820, 162059, 128416, 139475, 146815]
+                lat: [111952.41, 106685.93, 108824.16, 94581.61, 119328.67, 109901.46, 104422.56]
+                clat: [111892.44, 106627.74, 108764.02, 94523.07, 119272.63, 109842.91, 104362.23]
+            hdd_test_srd1mth1: 
+                rw: read
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 1
+                timings: [30, 5]
+                jobname: hdd_test_srd1mth1
+                iops: [97, 97, 97, 97, 97, 97, 97]
+                bw: [99727, 99864, 100014, 99711, 100068, 99956, 99806]
+                lat: [10263.29, 10249.58, 10234.19, 10265.01, 10228.67, 10240.41, 10255.61]
+                clat: [10262.85, 10249.16, 10233.77, 10264.57, 10228.25, 10239.98, 10255.2]
+            hdd_test_srd1mth5: 
+                rw: read
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 5
+                timings: [30, 5]
+                jobname: hdd_test_srd1mth5
+                iops: [130, 130, 129, 130, 129, 130, 129]
+                bw: [133144, 133328, 132694, 133400, 132936, 133179, 132752]
+                lat: [38450.97, 38397.21, 38579.73, 38354.87, 38508.18, 38438.96, 38563.57]
+                clat: [38450.69, 38396.93, 38579.48, 38354.59, 38507.92, 38438.68, 38563.31]
+            hdd_test_swd1mth80: 
+                rw: write
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 80
+                timings: [30, 5]
+                jobname: hdd_test_swd1mth80
+                iops: [129, 123, 145, 153, 107, 127, 125]
+                bw: [132816, 126383, 148689, 157365, 110078, 130476, 128364]
+                lat: [614422.0, 636398.06, 546438.19, 515600.72, 734548.0, 619536.5, 627088.88]
+                clat: [614365.5, 636338.31, 546380.5, 515541.19, 734489.25, 619476.38, 627031.44]
+            hdd_test_rrd4kth80: 
+                rw: randread
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 80
+                timings: [30, 5]
+                jobname: hdd_test_rrd4kth80
+                iops: [116, 116, 118, 118, 116, 116, 116]
+                bw: [466, 465, 473, 475, 466, 467, 467]
+                lat: [669399.56, 679100.31, 666550.19, 662553.31, 676849.56, 675408.56, 676391.44]
+                clat: [669399.12, 679099.88, 666549.75, 662552.94, 676849.19, 675408.12, 676391.06]
+            hdd_test_rws4kth20: 
+                rw: randwrite
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: s
+                concurence: 20
+                timings: [30, 5]
+                jobname: hdd_test_rws4kth20
+                iops: [35, 35, 36, 34, 35, 34, 34]
+                bw: [143, 141, 145, 138, 140, 138, 138]
+                lat: [553134.62, 558376.38, 545084.12, 571753.0, 563008.81, 569984.75, 571231.25]
+                clat: [553134.06, 558375.81, 545083.56, 571752.5, 563008.31, 569984.19, 571230.69]
+            hdd_test_srd1mth20: 
+                rw: read
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 20
+                timings: [30, 5]
+                jobname: hdd_test_srd1mth20
+                iops: [145, 122, 137, 121, 171, 172, 146]
+                bw: [148882, 125791, 140862, 124373, 176011, 176921, 150427]
+                lat: [136756.89, 162314.12, 144940.86, 164203.52, 116297.33, 115730.1, 135656.83]
+                clat: [136756.64, 162313.89, 144940.61, 164203.25, 116297.12, 115729.89, 135656.58]
+            hdd_test_rrd4kth40: 
+                rw: randread
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 40
+                timings: [30, 5]
+                jobname: hdd_test_rrd4kth40
+                iops: [111, 112, 111, 110, 112, 111, 111]
+                bw: [446, 449, 446, 441, 449, 446, 444]
+                lat: [355492.03, 353707.62, 355797.09, 360247.22, 353819.62, 356157.81, 357968.97]
+                clat: [355491.66, 353707.22, 355796.69, 360246.81, 353819.22, 356157.41, 357968.56]
+            hdd_test_rrd4kth20: 
+                rw: randread
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 20
+                timings: [30, 5]
+                jobname: hdd_test_rrd4kth20
+                iops: [109, 107, 106, 107, 107, 108, 108]
+                bw: [437, 430, 424, 431, 431, 432, 434]
+                lat: [181916.44, 185327.86, 187631.55, 184738.78, 184936.75, 184551.91, 183614.64]
+                clat: [181916.05, 185327.45, 187631.17, 184738.38, 184936.34, 184551.48, 183614.27]
+            hdd_test_rws4kth80: 
+                rw: randwrite
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: s
+                concurence: 80
+                timings: [30, 5]
+                jobname: hdd_test_rws4kth80
+                iops: [35, 35, 35, 35, 35, 35, 35]
+                bw: [143, 143, 143, 143, 143, 143, 143]
+                lat: [2210007.0, 2118441.25, 2125228.0, 2128654.5, 2121707.25, 2125617.25, 2125574.25]
+                clat: [2210006.5, 2118440.75, 2125227.5, 2128654.0, 2121706.5, 2125616.5, 2125573.5]
+            hdd_test_rws4kth1: 
+                rw: randwrite
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: s
+                concurence: 1
+                timings: [30, 5]
+                jobname: hdd_test_rws4kth1
+                iops: [20, 20, 20, 20, 20, 20, 20]
+                bw: [83, 83, 82, 82, 82, 83, 83]
+                lat: [47929.32, 47856.71, 48242.46, 48323.69, 48311.01, 47969.01, 47746.06]
+                clat: [47928.57, 47855.95, 48241.66, 48322.78, 48309.9, 47968.21, 47745.31]
+            hdd_test_rws4kth40: 
+                rw: randwrite
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: s
+                concurence: 40
+                timings: [30, 5]
+                jobname: hdd_test_rws4kth40
+                iops: [34, 37, 37, 37, 35, 35, 35]
+                bw: [139, 148, 151, 150, 142, 142, 142]
+                lat: [1117152.0, 1052526.38, 1034599.5, 1037669.94, 1097834.0, 1099318.38, 1101577.12]
+                clat: [1117151.5, 1052525.88, 1034599.0, 1037669.38, 1097833.38, 1099317.75, 1101576.5]
+            hdd_test_rrd4kth1: 
+                rw: randread
+                blocksize: 4k
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 1
+                timings: [30, 5]
+                jobname: hdd_test_rrd4kth1
+                iops: [69, 84, 84, 84, 84, 84, 84]
+                bw: [276, 337, 339, 339, 339, 337, 337]
+                lat: [14458.61, 11846.5, 11764.3, 11756.94, 11786.95, 11835.68, 11844.28]
+                clat: [14458.04, 11845.98, 11763.74, 11756.4, 11786.38, 11835.14, 11843.73]
+            hdd_test_swd1mth30: 
+                rw: write
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 30
+                timings: [30, 5]
+                jobname: hdd_test_swd1mth30
+                iops: [140, 137, 144, 117, 120, 150, 137]
+                bw: [143862, 141065, 148231, 119956, 123841, 154147, 140681]
+                lat: [213424.62, 216748.52, 206302.14, 254895.95, 246975.12, 198406.42, 217475.83]
+                clat: [213365.42, 216691.48, 206246.2, 254836.0, 246916.7, 198348.56, 217415.95]
+            hdd_test_swd1mth10: 
+                rw: write
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 10
+                timings: [30, 5]
+                jobname: hdd_test_swd1mth10
+                iops: [150, 145, 139, 155, 144, 142, 124]
+                bw: [154040, 149094, 142555, 159163, 148217, 145492, 127506]
+                lat: [66453.27, 68589.56, 71715.65, 64245.41, 69003.03, 70286.77, 80188.92]
+                clat: [66393.21, 68528.28, 71655.97, 64184.57, 68945.55, 70230.63, 80130.2]
+            hdd_test_srd1mth40: 
+                rw: read
+                blocksize: 1m
+                slat: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+                sync_mode: d
+                concurence: 40
+                timings: [30, 5]
+                jobname: hdd_test_srd1mth40
+                iops: [138, 162, 157, 152, 165, 147, 153]
+                bw: [141870, 166350, 161057, 156377, 169421, 151106, 156917]
+                lat: [287373.0, 245129.75, 253322.08, 260845.11, 240698.88, 269809.94, 260059.66]
+                clat: [287372.75, 245129.53, 253321.83, 260844.88, 240698.64, 269809.69, 260059.42]
+        __meta__: 
+            raw_cfg: 
+                '[defaults]\nwait_for_previous\ngroup_reporting\ntime_based\nbuffered=0\niodepth=1\n\nfilename={FILENAME}\nNUM_ROUNDS=7\n\nramp_time=5\nsize=10Gb\nruntime=30\n\n# ---------------------------------------------------------------------\n# check different thread count, sync mode. (latency, iops) = func(th_count)\n# ---------------------------------------------------------------------\n[hdd_test_{TEST_SUMM} * {NUM_ROUNDS}]\nblocksize=4k\nrw=randwrite\nsync=1\nnumjobs={% 1, 5, 10, 15, 20, 30, 40, 80, 120 %}\n\n# ---------------------------------------------------------------------\n# check different thread count, direct read mode. (latency, iops) = func(th_count)\n# also check iops for randread\n# ---------------------------------------------------------------------\n[hdd_test_{TEST_SUMM} * {NUM_ROUNDS}]\nblocksize=4k\nrw=randread\ndirect=1\nnumjobs={% 1, 5, 10, 15, 20, 30, 40, 80, 120 %}\n\n# ---------------------------------------------------------------------\n# check different thread count, direct read/write mode. (bw, iops) = func(th_count)\n# also check BW for seq read/write.\n# ---------------------------------------------------------------------\n[hdd_test_{TEST_SUMM} * {NUM_ROUNDS}]\nblocksize=1m\nrw={% read, write %}\ndirect=1\nnumjobs={% 1, 5, 10, 15, 20, 30, 40, 80, 120 %}\n\n# ---------------------------------------------------------------------\n# check IOPS randwrite.\n# ---------------------------------------------------------------------\n[hdd_test_{TEST_SUMM} * {NUM_ROUNDS}]\nblocksize=4k\nrw=randwrite\ndirect=1\n'
+            params: 
+                NUM_ROUNDS: 7
+                FILENAME: /media/koder/a5230078-4c27-4c3b-99aa-26148e78b2e7/xxx.bin
\ No newline at end of file
diff --git a/results/usb_hdd/report.txt b/results/usb_hdd/report.txt
new file mode 100644
index 0000000..b9d96f2
--- /dev/null
+++ b/results/usb_hdd/report.txt
@@ -0,0 +1,45 @@
++-------------+------+---------+-----------+--------+
+| Description | IOPS | BW KBps | Dev * 3 % | LAT ms |
++=============+======+=========+===========+========+
+| rrd4kth1    |   81 |     329 |        19 |     12 |
+| rrd4kth5    |   86 |     345 |         2 |     57 |
+| rrd4kth10   |   98 |     396 |         2 |    100 |
+| rrd4kth15   |  104 |     420 |         1 |    142 |
+| rrd4kth20   |  107 |     431 |         2 |    184 |
+| rrd4kth30   |  108 |     436 |         1 |    273 |
+| rrd4kth40   |  111 |     445 |         1 |    356 |
+| rrd4kth80   |  116 |     468 |         2 |    672 |
+| rrd4kth120  |  120 |     482 |         1 |    970 |
+| ---         |  --- |     --- |       --- |    --- |
+| rwd4kth1    |  147 |     590 |        40 |      6 |
+| ---         |  --- |     --- |       --- |    --- |
+| rws4kth1    |   20 |      82 |         2 |     48 |
+| rws4kth5    |   34 |     137 |         2 |    144 |
+| rws4kth10   |   34 |     140 |         3 |    282 |
+| rws4kth15   |   35 |     142 |         2 |    416 |
+| rws4kth20   |   34 |     140 |         5 |    561 |
+| rws4kth30   |   34 |     139 |         6 |    845 |
+| rws4kth40   |   35 |     144 |         9 |   1077 |
+| rws4kth80   |   35 |     143 |         0 |   2136 |
+| rws4kth120  |   35 |     142 |         2 |   3159 |
+| ---         |  --- |     --- |       --- |    --- |
+| srd1mth1    |   97 |   99878 |         0 |     10 |
+| srd1mth5    |  129 |  133061 |         0 |     38 |
+| srd1mth10   |  160 |  164880 |         1 |     62 |
+| srd1mth15   |  169 |  174386 |         0 |     88 |
+| srd1mth20   |  144 |  149038 |        39 |    139 |
+| srd1mth30   |  121 |  125206 |        21 |    245 |
+| srd1mth40   |  153 |  157585 |        16 |    259 |
+| srd1mth80   |  155 |  159215 |         7 |    509 |
+| srd1mth120  |  165 |  170151 |         9 |    712 |
+| ---         |  --- |     --- |       --- |    --- |
+| swd1mth1    |   94 |   96947 |         0 |     10 |
+| swd1mth5    |  141 |  144723 |        15 |     35 |
+| swd1mth10   |  142 |  146581 |        19 |     70 |
+| swd1mth15   |  138 |  142617 |        20 |    107 |
+| swd1mth20   |  133 |  137339 |        10 |    148 |
+| swd1mth30   |  135 |  138826 |        25 |    222 |
+| swd1mth40   |  119 |  122838 |        33 |    334 |
+| swd1mth80   |  129 |  133453 |        32 |    613 |
+| swd1mth120  |  129 |  132427 |        23 |    915 |
++-------------+------+---------+-----------+--------+
diff --git a/run_test.py b/run_test.py
index 4e3f6ef..b424b76 100755
--- a/run_test.py
+++ b/run_test.py
@@ -54,8 +54,11 @@
     def format(self, record):
         levelname = record.levelname
 
+        prn_name = ' ' * (6 - len(levelname)) + levelname
         if levelname in self.colors:
-            record.levelname = self.colors[levelname](levelname)
+            record.levelname = self.colors[levelname](prn_name)
+        else:
+            record.levelname = prn_name
 
         return logging.Formatter.format(self, record)
 
@@ -65,7 +68,7 @@
     sh = logging.StreamHandler()
     sh.setLevel(level)
 
-    log_format = '%(asctime)s - %(levelname)-6s - %(name)s - %(message)s'
+    log_format = '%(asctime)s - %(levelname)s - %(name)s - %(message)s'
     colored_formatter = ColoredFormatter(log_format,
                                          "%H:%M:%S")
 
@@ -80,6 +83,10 @@
         fh.setLevel(logging.DEBUG)
         logger.addHandler(fh)
 
+    logger_api = logging.getLogger("io-perf-tool.fuel_api")
+    logger_api.addHandler(sh)
+    logger_api.setLevel(logging.WARNING)
+
 
 def format_result(res, formatter):
     data = "\n{0}\n".format("=" * 80)
@@ -140,7 +147,7 @@
         res_q.put(exc)
 
 
-def run_tests(config, nodes):
+def run_tests(test_block, nodes):
     tool_type_mapper = {
         "io": IOPerfTest,
         "pgbench": PgBenchTest,
@@ -151,64 +158,43 @@
 
     res_q = Queue.Queue()
 
-    for test_block in config:
-        for name, params in test_block.items():
-            logger.info("Starting {0} tests".format(name))
+    for name, params in test_block.items():
+        logger.info("Starting {0} tests".format(name))
 
-            threads = []
-            barrier = utils.Barrier(len(test_nodes))
-            for node in test_nodes:
-                msg = "Starting {0} test on {1} node"
-                logger.debug(msg.format(name, node.conn_url))
-                test = tool_type_mapper[name](params, res_q.put)
-                th = threading.Thread(None, test_thread, None,
-                                      (test, node, barrier, res_q))
-                threads.append(th)
-                th.daemon = True
-                th.start()
+        threads = []
+        barrier = utils.Barrier(len(test_nodes))
+        for node in test_nodes:
+            msg = "Starting {0} test on {1} node"
+            logger.debug(msg.format(name, node.conn_url))
+            test = tool_type_mapper[name](params, res_q.put)
+            th = threading.Thread(None, test_thread, None,
+                                  (test, node, barrier, res_q))
+            threads.append(th)
+            th.daemon = True
+            th.start()
 
-            def gather_results(res_q, results):
-                while not res_q.empty():
-                    val = res_q.get()
+        def gather_results(res_q, results):
+            while not res_q.empty():
+                val = res_q.get()
 
-                    if isinstance(val, Exception):
-                        msg = "Exception during test execution: {0}"
-                        raise ValueError(msg.format(val.message))
+                if isinstance(val, Exception):
+                    msg = "Exception during test execution: {0}"
+                    raise ValueError(msg.format(val.message))
 
-                    results.append(val)
+                results.append(val)
 
-            results = []
+        results = []
 
-            while True:
-                for th in threads:
-                    th.join(1)
-                    gather_results(res_q, results)
+        while True:
+            for th in threads:
+                th.join(1)
+                gather_results(res_q, results)
 
-                if all(not th.is_alive() for th in threads):
-                    break
+            if all(not th.is_alive() for th in threads):
+                break
 
-            gather_results(res_q, results)
-            yield name, test.merge_results(results)
-
-
-def parse_args(argv):
-    parser = argparse.ArgumentParser(
-        description="Run disk io performance test")
-
-    parser.add_argument("-l", dest='extra_logs',
-                        action='store_true', default=False,
-                        help="print some extra log info")
-
-    parser.add_argument("-b", '--build_description',
-                        type=str, default="Build info")
-    parser.add_argument("-i", '--build_id', type=str, default="id")
-    parser.add_argument("-t", '--build_type', type=str, default="GA")
-    parser.add_argument("-u", '--username', type=str, default="admin")
-    parser.add_argument("-p", '--post-process-only', default=None)
-    parser.add_argument("-o", '--output-dest', nargs="*")
-    parser.add_argument("config_file", nargs="?", default="config.yaml")
-
-    return parser.parse_args(argv[1:])
+        gather_results(res_q, results)
+        yield name, test.merge_results(results)
 
 
 def log_nodes_statistic(_, ctx):
@@ -223,10 +209,6 @@
         logger.debug("Found {0} nodes with role {1}".format(count, role))
 
 
-def log_sensors_config(cfg):
-    pass
-
-
 def connect_stage(cfg, ctx):
     ctx.clear_calls_stack.append(disconnect_stage)
     connect_all(ctx.nodes)
@@ -235,7 +217,7 @@
 def discover_stage(cfg, ctx):
     if cfg.get('discover') is not None:
         discover_objs = [i.strip() for i in cfg['discover'].strip().split(",")]
-        ctx.nodes.extend(discover.discover(discover_objs, cfg['clouds']))
+        ctx.nodes.extend(discover.discover(ctx, discover_objs, cfg['clouds']))
 
     for url, roles in cfg.get('explicit_nodes', {}).items():
         ctx.nodes.append(Node(url, roles.split(",")))
@@ -258,8 +240,6 @@
             if role in node.roles:
                 sens_cfg.append((node.connection, collect_cfg))
 
-    log_sensors_config(sens_cfg)
-
     ctx.sensor_cm = start_monitoring(cfg["receiver_uri"], None,
                                      connected_config=sens_cfg)
 
@@ -278,53 +258,84 @@
     ctx.sensor_data = ctx.sensors_control_queue.get()
 
 
-def run_all_test(cfg, ctx):
-    ctx.results = []
+def get_os_credentials(cfg, ctx, creds_type):
+    creds = None
 
-    if 'start_test_nodes' in cfg['tests']:
-        params = cfg['tests']['start_test_nodes']['openstack']
-        os_nodes_ids = []
-
-        os_creds = params['creds']
-
-        if os_creds == 'fuel':
-            raise NotImplementedError()
-
-        elif os_creds == 'clouds':
+    if creds_type == 'clouds':
+        if 'openstack' in cfg['clouds']:
             os_cfg = cfg['clouds']['openstack']
+
             tenant = os_cfg['OS_TENANT_NAME'].strip()
             user = os_cfg['OS_USERNAME'].strip()
             passwd = os_cfg['OS_PASSWORD'].strip()
             auth_url = os_cfg['OS_AUTH_URL'].strip()
 
-        elif os_creds == 'ENV':
-            tenant = None
-            user = None
-            passwd = None
-            auth_url = None
+        elif 'fuel' in cfg['clouds'] and \
+             'openstack_env' in cfg['clouds']['fuel']:
+            creds = ctx.fuel_openstack_creds
 
-        else:
-            raise ValueError("Only 'ENV' creds are supported")
+    elif creds_type == 'ENV':
+        user, passwd, tenant, auth_url = start_vms.ostack_get_creds()
+    elif os.path.isfile(creds_type):
+        user, passwd, tenant, auth_url = start_vms.ostack_get_creds()
+    else:
+        msg = "Creds {0!r} isn't supported".format(creds_type)
+        raise ValueError(msg)
 
-        start_vms.nova_connect(user, passwd, tenant, auth_url)
+    if creds is None:
+        creds = {'name': user,
+                 'passwd': passwd,
+                 'tenant': tenant,
+                 'auth_url': auth_url}
 
-        logger.info("Preparing openstack")
-        start_vms.prepare_os(user, passwd, tenant, auth_url)
+    return creds
 
-        new_nodes = []
-        for new_node, node_id in start_vms.launch_vms(params):
-            new_node.roles.append('testnode')
-            ctx.nodes.append(new_node)
-            os_nodes_ids.append(node_id)
-            new_nodes.append(new_node)
 
-        store_nodes_in_log(cfg, os_nodes_ids)
-        ctx.openstack_nodes_ids = os_nodes_ids
+def run_tests_stage(cfg, ctx):
+    ctx.results = []
 
-        connect_all(new_nodes)
+    if 'tests' not in cfg:
+        return
 
-    if 'tests' in cfg:
-        ctx.results.extend(run_tests(cfg['tests'], ctx.nodes))
+    for group in cfg['tests']:
+
+        assert len(group.items()) == 1
+        key, config = group.items()[0]
+
+        if 'start_test_nodes' == key:
+            params = config['vm_params']
+            os_nodes_ids = []
+
+            os_creds_type = config['creds']
+            os_creds = get_os_credentials(cfg, ctx, os_creds_type)
+
+            start_vms.nova_connect(**os_creds)
+
+            # logger.info("Preparing openstack")
+            # start_vms.prepare_os(**os_creds)
+
+            new_nodes = []
+            try:
+                for new_node, node_id in start_vms.launch_vms(params):
+                    new_node.roles.append('testnode')
+                    ctx.nodes.append(new_node)
+                    os_nodes_ids.append(node_id)
+                    new_nodes.append(new_node)
+
+                store_nodes_in_log(cfg, os_nodes_ids)
+                ctx.openstack_nodes_ids = os_nodes_ids
+
+                connect_all(new_nodes)
+
+                for test_group in config.get('tests', []):
+                    ctx.results.extend(run_tests(test_group, ctx.nodes))
+
+            finally:
+                # shut_down_vms_stage(cfg, ctx)
+                pass
+
+        elif 'tests' in key:
+            ctx.results.extend(run_tests(config, ctx.nodes))
 
 
 def shut_down_vms_stage(cfg, ctx):
@@ -353,13 +364,6 @@
         shut_down_vms_stage(cfg, ctx)
 
 
-def run_tests_stage(cfg, ctx):
-    # clear nodes that possible were created on previous test running
-    # clear_enviroment(cfg, ctx) << fix OS connection
-    ctx.clear_calls_stack.append(shut_down_vms_stage)
-    run_all_test(cfg, ctx)
-
-
 def disconnect_stage(cfg, ctx):
     ssh_utils.close_all_sessions()
 
@@ -433,11 +437,30 @@
 def load_data_from(var_dir):
     def load_data_from_file(cfg, ctx):
         raw_results = os.path.join(var_dir, 'raw_results.yaml')
-        print "load data from", raw_results
         ctx.results = yaml.load(open(raw_results).read())
     return load_data_from_file
 
 
+def parse_args(argv):
+    parser = argparse.ArgumentParser(
+        description="Run disk io performance test")
+
+    parser.add_argument("-l", dest='extra_logs',
+                        action='store_true', default=False,
+                        help="print some extra log info")
+
+    parser.add_argument("-b", '--build_description',
+                        type=str, default="Build info")
+    parser.add_argument("-i", '--build_id', type=str, default="id")
+    parser.add_argument("-t", '--build_type', type=str, default="GA")
+    parser.add_argument("-u", '--username', type=str, default="admin")
+    parser.add_argument("-p", '--post-process-only', default=None)
+    parser.add_argument("-o", '--output-dest', nargs="*")
+    parser.add_argument("config_file", nargs="?", default="config.yaml")
+
+    return parser.parse_args(argv[1:])
+
+
 def main(argv):
     opts = parse_args(argv)
 
@@ -459,7 +482,7 @@
             report_stage
         ]
 
-    load_config(opts.config_file)
+    load_config(opts.config_file, opts.post_process_only)
 
     level = logging.DEBUG if opts.extra_logs else logging.WARNING
     setup_logger(logger, level, cfg_dict['log_file'])
@@ -489,7 +512,7 @@
         if exc is not None:
             raise exc, cls, tb
 
-    logger.info("All info stotored into {0}".format(cfg_dict['var_dir']))
+    logger.info("All info stored into {0}".format(cfg_dict['var_dir']))
     return 0
 
 
diff --git a/scripts/connector.py b/scripts/connector.py
index 3cf40cc..6f0f744 100644
--- a/scripts/connector.py
+++ b/scripts/connector.py
@@ -1,71 +1,33 @@
-import argparse
-import logging
-import sys
-import tempfile
 import os
+import sys
+import logging
+import argparse
+import tempfile
 import paramiko
 
-from urlparse import urlparse
+import fuel_rest_api
 from nodes.node import Node
-from ssh_utils import ssh_connect, ssh_copy_file, connect
 from utils import parse_creds
-from fuel_rest_api import KeystoneAuth
+from urlparse import urlparse
+
 
 tmp_file = tempfile.NamedTemporaryFile().name
 openrc_path = tempfile.NamedTemporaryFile().name
 logger = logging.getLogger("io-perf-tool")
 
 
-def get_cluster_id(cluster_name, conn):
-    clusters = conn.do("get", path="/api/clusters")
-    for cluster in clusters:
-        if cluster['name'] == cluster_name:
-            return cluster['id']
-
-
-def get_openrc_data(file_name):
-    openrc_dict = {}
-
-    with open(file_name) as f:
-        for line in f.readlines():
-            if len(line.split(" ")) > 1:
-                line = line.split(' ')[1]
-                key, value = line.split('=')
-
-                if key in ['OS_AUTH_URL', 'OS_PASSWORD',
-                              'OS_TENANT_NAME', 'OS_USERNAME']:
-                    openrc_dict[key] = value[1: len(value) - 2]
-
-    return openrc_dict
-
-
-def get_openrc(nodes):
-    controller = None
-
-    for node in nodes:
-        if 'controller' in node.roles:
-            controller = node
-            break
-
-    url = controller.conn_url[6:]
-    ssh = connect(url)
-    sftp = ssh.open_sftp()
-    sftp.get('/root/openrc', openrc_path)
-    sftp.close()
-
-    return get_openrc_data(openrc_path)
-
-
 def discover_fuel_nodes(fuel_url, creds, cluster_name):
     username, tenant_name, password = parse_creds(creds)
     creds = {"username": username,
              "tenant_name": tenant_name,
              "password": password}
 
-    fuel = KeystoneAuth(fuel_url, creds, headers=None, echo=None,)
-    cluster_id = get_cluster_id(cluster_name, fuel)
-    nodes = fuel.do("get", path="/api/nodes?cluster_id=" + str(cluster_id))
-    ips = [node["ip"] for node in nodes]
+    conn = fuel_rest_api.KeystoneAuth(fuel_url, creds, headers=None)
+    cluster_id = fuel_rest_api.get_cluster_id(conn, cluster_name)
+    cluster = fuel_rest_api.reflect_cluster(conn, cluster_id)
+
+    nodes = list(cluster.get_nodes())
+    ips = [node.get_ip('admin') for node in nodes]
     roles = [node["roles"] for node in nodes]
 
     host = urlparse(fuel_url).hostname
@@ -73,8 +35,9 @@
     nodes, to_clean = run_agent(ips, roles, host, tmp_file)
     nodes = [Node(node[0], node[1]) for node in nodes]
 
-    openrc_dict = get_openrc(nodes)
+    openrc_dict = cluster.get_openrc()
 
+    logger.debug("Found %s fuel nodes for env %r" % (len(nodes), cluster_name))
     return nodes, to_clean, openrc_dict
 
 
@@ -144,9 +107,8 @@
                       + ":" + fuel_id_rsa_path, role))
 
     ssh.close()
-    logger.info('Files has been transferred successfully to Fuel node, ' \
+    logger.info('Files has been transferred successfully to Fuel node, ' +
                 'agent has been launched')
-    logger.info("Nodes : " + str(nodes))
 
     return nodes, nodes_to_clean
 
@@ -170,7 +132,8 @@
     args = parse_command_line(argv)
 
     nodes, to_clean, _ = discover_fuel_nodes(args.fuel_url,
-                                          args.creds, args.cluster_name)
+                                             args.creds,
+                                             args.cluster_name)
     discover_fuel_nodes_clean(args.fuel_url, {"username": "root",
                                               "password": "test37",
                                               "port": 22}, to_clean)
diff --git a/start_vms.py b/start_vms.py
index f7d097c..93162a3 100644
--- a/start_vms.py
+++ b/start_vms.py
@@ -145,9 +145,9 @@
     return [ip for ip in ip_list if ip.instance_id is None][:amount]
 
 
-def launch_vms(config):
+def launch_vms(params):
     logger.debug("Starting new nodes on openstack")
-    params = config['vm_params'].copy()
+    params = params.copy()
     count = params.pop('count')
 
     if isinstance(count, basestring):
@@ -156,9 +156,9 @@
         srv_count = len([srv for srv in lst if srv.status == 'enabled'])
         count = srv_count * int(count[1:])
 
+    srv_params = "img: {img_name}, flavor: {flavor_name}".format(**params)
     msg_templ = "Will start {0} servers with next params: {1}"
-    logger.debug(msg_templ.format(count, ""))
-    # vm_creds = config['vm_params']['creds'] ?????
+    logger.info(msg_templ.format(count, srv_params))
     vm_creds = params.pop('creds')
 
     for ip, os_node in create_vms_mt(NOVA_CONNECTION, count, **params):
@@ -296,25 +296,3 @@
                         cinder.volumes.delete(vol)
 
     logger.debug("Clearing done (yet some volumes may still deleting)")
-
-
-# def prepare_host(key_file, ip, fio_path, dst_fio_path, user='cirros'):
-#     print "Wait till ssh ready...."
-#     wait_ssh_ready(ip, user, key_file)
-
-#     print "Preparing host >"
-#     print "    Coping fio"
-#     copy_fio(key_file, ip, fio_path, user, dst_fio_path)
-
-#     key_opts = '-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
-#     args = (key_file, user, ip, key_opts)
-#     cmd_format = "ssh {3} -i {0} {1}@{2} '{{0}}'".format(*args).format
-
-#     def exec_on_host(cmd):
-#         print "    " + cmd
-#         subprocess.check_call(cmd_format(cmd), shell=True)
-
-#     exec_on_host("sudo /usr/sbin/mkfs.ext4 /dev/vdb")
-#     exec_on_host("sudo /bin/mkdir /media/ceph")
-#     exec_on_host("sudo /bin/mount /dev/vdb /media/ceph")
-#     exec_on_host("sudo /bin/chmod a+rwx /media/ceph")
diff --git a/tests/itest.py b/tests/itest.py
index 1dbbe13..ad76b9e 100644
--- a/tests/itest.py
+++ b/tests/itest.py
@@ -122,7 +122,7 @@
         self.files_to_copy = {local_fname: self.io_py_remote}
         copy_paths(conn, self.files_to_copy)
 
-        cmd_templ = "dd if=/dev/zero of={0} bs={1} count={2}"
+        cmd_templ = "sudo dd if=/dev/zero of={0} bs={1} count={2}"
         files = {}
 
         for secname, params in self.configs:
@@ -139,7 +139,7 @@
             run_over_ssh(conn, cmd, timeout=msz)
 
     def run(self, conn, barrier):
-        cmd_templ = "env python2 {0} --type {1} {2} --json -"
+        cmd_templ = "sudo env python2 {0} --type {1} {2} --json -"
 
         params = " ".join("{0}={1}".format(k, v)
                           for k, v in self.config_params.items())
@@ -159,7 +159,7 @@
 
             out_err = run_over_ssh(conn, cmd,
                                    stdin_data=self.raw_cfg,
-                                   timeout=int(exec_time * 1.1))
+                                   timeout=int(exec_time * 1.1 + 300))
         finally:
             barrier.exit()
 
