diff --git a/configs-examples/default.yaml b/configs-examples/default.yaml
index c1ee515..cc78e31 100644
--- a/configs-examples/default.yaml
+++ b/configs-examples/default.yaml
@@ -8,14 +8,16 @@
 #openstack:
 #    skip_preparation: false
 #    openrc: /home/koder/workspace/scale_openrc
+#    insecure: true
+#    openrc: ENV
 #    openrc:
-#        user: USER
-#        passwd: PASSWD
-#        tenant: KEY_FILE
-#        auth_url: URL
-#        SOME_OTHER_OPTS: OPTIONAL
+#        OS_USERNAME: USER
+#        OS_PASSWORD: PASSWD
+#        OS_TENANT_NAME: KEY_FILE
+#        OS_AUTH_URL: URL
+#        OS_INSECURE: OPTIONAL
 #    vms:
-#        - "USERNAME[:PASSWD]@VM_NAME_PREFIX[::KEY_FILE]"
+#        - "USERNAME@VM_NAME_PREFIX"
 #
 #ceph:
 #    cluster: ceph   << Optional
@@ -63,7 +65,7 @@
         security_group: wally_ssh_to_everyone
 
 
-ceph: nodeep-scrub, noscrub
+ceph_opts: nodeep-scrub, noscrub
 #-----------------------------------------    STEPS   ------------------------------------------------------------------
 # discover: a,b,c,... - comma separated list of clusters to discover. May be ommited
 #    List may contains - ceph, openstack, fuel
@@ -121,7 +123,7 @@
             - io:
                 load: hdd
                 params:
-                    FILENAME: /dev/vdb
+                    FILENAME: /opt/test.bin
                     FILESIZE: AUTO
 
     openstack_ceph: OS_1_to_1 + ceph_vdb
diff --git a/configs-examples/local_block_device.yml b/configs-examples/local_block_device.yml
new file mode 100644
index 0000000..e9faa54
--- /dev/null
+++ b/configs-examples/local_block_device.yml
@@ -0,0 +1,13 @@
+include: default.yaml
+run_sensors: false
+results_storage: {STORAGE_FOLDER}
+
+nodes:
+    localhost: testnode
+
+tests:
+  - fio:
+      load: hdd
+      params:
+          FILENAME: {STORAGE_DEV_OR_FILE_NAME}
+          FILESIZE: {STORAGE_OR_FILE_SIZE}
diff --git a/requirements_extra.txt b/requirements_extra.txt
index e69de29..e01095f 100644
--- a/requirements_extra.txt
+++ b/requirements_extra.txt
@@ -0,0 +1,5 @@
+python3-env
+gcc
+python3-dev
+libssl-dev
+python3-tk
diff --git a/v2_plans.md b/v2_plans.md
index 32d61e7..3a49f6d 100644
--- a/v2_plans.md
+++ b/v2_plans.md
@@ -1,5 +1,22 @@
 TODO today:
 -----------
+* QDIOTimeHeatmap поломано получаение девайса по роли (aka ceph-storage)
+* ceph-osd ноды должны верифицироваться как storage также (в фильтрации девайсов)
+* дефолтный ключ в конфиг для всех новых нод
+* Проверять что файл ключа для нод существует. Есл иего нет валли ведет себя некорректно
+* Сторадж - все json - назвать js, все yaml - yml, всем без расширения дать расширения
+* Download boostrap & font css files and store them in report folder. Better to keep all in git repo
+* Add cluster config and tasks configs with compiled loads to report
+* add fiorbd default_qd and ceph profiles
+* Ceph profile - define QD from OSD count
+* Add cleanup cli, which get test output folder and clean everything
+* Add os cleanup cli, which removes all vm, flavours, images, keys from it
+* Add cli option to remove test file after test completed.
+* Make a python module, set all deps, clib/fio compilation, add UT for installation
+* openstack VM reuse - allow to use full sshuri with name prefix instead of vm name
+* fiorbd???? should be quite easy
+* allow to provide key for reused OS vms
+* openstack vm reuse - маркать виртуалки (wally_test_XXX) и находить их по этому имени и автоматически переиспользовать
 * Согласовать имя секции для 'fio' - в default.yaml используется 'io', в конфигах - 'fio'
 * Добавить UT
 * Сделать полноценные тесты постобработки с генерацией псевдослучаныйх данных с определенным распределением
diff --git a/wally/main.py b/wally/main.py
index 497bdac..36a2690 100644
--- a/wally/main.py
+++ b/wally/main.py
@@ -159,9 +159,9 @@
     ipython_parser = subparsers.add_parser('ipython', help=ipython_help)
     ipython_parser.add_argument("storage_dir", help="Storage path")
     # ---------------------------------------------------------------------
-    jupyter_help = 'run ipython in prepared environment'
-    jupyter_parser = subparsers.add_parser('jupyter', help=jupyter_help)
-    jupyter_parser.add_argument("storage_dir", help="Storage path")
+    # jupyter_help = 'run jupyter in prepared environment'
+    # jupyter_parser = subparsers.add_parser('jupyter', help=jupyter_help)
+    # jupyter_parser.add_argument("storage_dir", help="Storage path")
 
     # ---------------------------------------------------------------------
     test_parser = subparsers.add_parser('test', help='run tests')
diff --git a/wally/openstack.py b/wally/openstack.py
index 16b9db6..575edc7 100644
--- a/wally/openstack.py
+++ b/wally/openstack.py
@@ -49,22 +49,25 @@
     if 'openstack' in cfg.clouds:
         os_cfg = cfg.clouds['openstack']
         if 'OPENRC' in os_cfg:
-            logger.info("Using OS credentials from " + os_cfg['OPENRC'])
-            creds_tuple = get_creds_openrc(os_cfg['OPENRC'])
-            os_creds = OSCreds(*creds_tuple)
-        elif 'ENV' in os_cfg:
-            logger.info("Using OS credentials from shell environment")
-            os_creds = get_openstack_credentials()
-        elif 'OS_TENANT_NAME' in os_cfg:
-            logger.info("Using predefined credentials")
-            os_creds = OSCreds(os_cfg['OS_USERNAME'].strip(),
-                               os_cfg['OS_PASSWORD'].strip(),
-                               os_cfg['OS_TENANT_NAME'].strip(),
-                               os_cfg['OS_AUTH_URL'].strip(),
-                               os_cfg.get('OS_INSECURE', False))
+            sett = os_cfg['OPENRC']
+            if isinstance(sett, str):
+                if 'ENV' == sett:
+                    logger.info("Using OS credentials from shell environment")
+                    os_creds = get_openstack_credentials()
+                else:
+                    logger.info("Using OS credentials from " + os_cfg['OPENRC'])
+                    creds_tuple = get_creds_openrc(sett)
+                    os_creds = OSCreds(*creds_tuple)
+            else:
+                logger.info("Using predefined credentials")
+                os_creds = OSCreds(sett['OS_USERNAME'].strip(),
+                                   sett['OS_PASSWORD'].strip(),
+                                   sett['OS_TENANT_NAME'].strip(),
+                                   sett['OS_AUTH_URL'].strip(),
+                                   sett.get('OS_INSECURE', False))
 
-        elif 'OS_INSECURE' in os_cfg:
-            force_insecure = os_cfg.get('OS_INSECURE', False)
+        if 'insecure' in os_cfg:
+            force_insecure = os_cfg.get('insecure', False)
 
     if os_creds is None and 'fuel' in cfg.clouds and 'openstack_env' in cfg.clouds['fuel'] and \
             ctx.fuel_openstack_creds is not None:
diff --git a/wally/plot.py b/wally/plot.py
index f809d19..b1ee60f 100644
--- a/wally/plot.py
+++ b/wally/plot.py
@@ -121,6 +121,7 @@
 
     # limit and label x spine
     pp.ax.set_xlim(extra_x_space, len(iosums) + extra_x_space)
+    pp.ax.set_ylim(bottom=0)
     pp.ax.set_xticks(xpos)
     pp.ax.set_xticklabels(["{0}*{1}={2}".format(iosum.qd, iosum.nodes_count, iosum.qd * iosum.nodes_count)
                           for iosum in iosums],
diff --git a/wally/report.py b/wally/report.py
index f42c7c9..46c5599 100644
--- a/wally/report.py
+++ b/wally/report.py
@@ -812,26 +812,6 @@
 # IO time and QD
 class QDIOTimeHeatmap(JobReporter):
     def get_divs(self, suite: SuiteConfig, job: JobConfig) -> Iterator[Tuple[str, str, HTMLBlock]]:
-
-        # journal_devs = None
-        # storage_devs = None
-        # test_nodes_devs = ['rbd0']
-        #
-        # for node in self.rstorage.load_nodes():
-        #     if node.roles.intersection(STORAGE_ROLES):
-        #         cjd = set(node.params['ceph_journal_devs'])
-        #         if journal_devs is None:
-        #             journal_devs = cjd
-        #         else:
-        #             assert journal_devs == cjd, "{!r} != {!r}".format(journal_devs, cjd)
-        #
-        #         csd = set(node.params['ceph_storage_devs'])
-        #         if storage_devs is None:
-        #             storage_devs = csd
-        #         else:
-        #             assert storage_devs == csd, "{!r} != {!r}".format(storage_devs, csd)
-        #
-
         trange = (job.reliable_info_range[0] // 1000, job.reliable_info_range[1] // 1000)
         test_nc = len(list(find_nodes_by_roles(self.rstorage.storage, ['testnode'])))
 
@@ -844,8 +824,6 @@
             yield Menu1st.engineering_per_job, job.summary, HTMLBlock(html.H3(html.center(caption)))
 
             # QD heatmap
-            # nodes = find_nodes_by_roles(self.rstorage.storage, roles)
-
             ioq2d = find_sensors_to_2d(self.rstorage, trange, dev_role=dev_role, sensor='block-io', metric='io_queue')
 
             ds = DataSource(suite.storage_id, job.storage_id, AGG_TAG, 'block-io', dev_role,
@@ -1020,7 +998,9 @@
         nodes = ctx.rstorage.load_nodes()
         update_storage_selector(ctx.rstorage, ctx.devs_locator, nodes)
 
-        job_reporters_cls = [StatInfo, LoadToolResults, Resources, ClusterLoad, CPULoadPlot, QDIOTimeHeatmap]
+        # role2ds = roles_for_sensors(ctx.rstorage)
+
+        job_reporters_cls = [StatInfo, LoadToolResults, Resources, ClusterLoad, CPULoadPlot]  #, QDIOTimeHeatmap]
         # job_reporters_cls = [QDIOTimeHeatmap]
         job_reporters = [rcls(ctx.rstorage, DefStyleProfile, DefColorProfile)
                          for rcls in job_reporters_cls] # type: ignore
diff --git a/wally/resources.py b/wally/resources.py
index a08993d..4074efb 100644
--- a/wally/resources.py
+++ b/wally/resources.py
@@ -122,7 +122,7 @@
 
     cores_per_node = {}
     for node in rstorage.load_nodes():
-        cores_per_node[node.node_id] = sum(cores for _, cores in node.hw_info.cpus)
+        cores_per_node[node.node_id] = 48 # sum(cores for _, cores in node.hw_info.cpus)
 
     for name in cpu_metrics:
         cpu_ts[name] = sum_sensors(rstorage, time_range, node_id=nodes, sensor='system-cpu', metric=name)
diff --git a/wally/suits/io/test.cfg b/wally/suits/io/test.cfg
index 2977d1a..0280fd4 100644
--- a/wally/suits/io/test.cfg
+++ b/wally/suits/io/test.cfg
@@ -1,5 +1,8 @@
 [test1]
-ioengine=libaio
+#ioengine=libaio
+ioengine=rbd
+rbdname=foo
+pool=rbd
 buffered=0
 group_reporting=1
 iodepth=16
@@ -9,11 +12,9 @@
 time_based=1
 wait_for_previous=1
 randrepeat=0
-filename=/dev/rbd1
 size=4G
-ramp_time=10
-runtime=300
-numjobs=16
+ramp_time=0
+runtime=10
 direct=1
 blocksize=60k
-rw=randwrite
+rw=randread
