fixing fio runner
diff --git a/wally/suits/itest.py b/wally/suits/itest.py
index 8636596..f328e13 100644
--- a/wally/suits/itest.py
+++ b/wally/suits/itest.py
@@ -12,8 +12,6 @@
 from ..storage import Storage
 from ..result_classes import RawTestResults
 
-import agent
-
 
 logger = logging.getLogger("wally")
 
@@ -70,7 +68,7 @@
         return os.path.join(self.config.remote_dir, path)
 
     @abc.abstractmethod
-    def run(self, storage: Storage) -> None:
+    def run(self) -> None:
         pass
 
     @abc.abstractmethod
@@ -98,9 +96,15 @@
         pass
 
     def get_not_done_stages(self, storage: Storage) -> Dict[int, IterationConfig]:
-        start_run_id = max(int(name) for _, name in storage.list('result')) + 1
+        done_stages = list(storage.list('result'))
+        if len(done_stages) == 0:
+            start_run_id = 0
+        else:
+            start_run_id = max(int(name) for _, name in done_stages) + 1
+
         not_in_storage = {}  # type: Dict[int, IterationConfig]
-        for run_id, iteration_config in enumerate(self.iterations_configs, start_run_id):
+
+        for run_id, iteration_config in enumerate(self.iterations_configs[start_run_id:], start_run_id):
             info_path = "result/{}/info".format(run_id)
             if info_path in storage:
                 info = cast(Dict[str, Any], storage[info_path]) # type: Dict[str, Any]
@@ -131,8 +135,8 @@
                 not_in_storage[run_id] = iteration_config
         return not_in_storage
 
-    def run(self, storage: Storage) -> None:
-        not_in_storage = self.get_not_done_stages(storage)
+    def run(self) -> None:
+        not_in_storage = self.get_not_done_stages(self.config.storage)
 
         if not not_in_storage:
             logger.info("All test iteration in storage already. Skip test")
@@ -171,9 +175,6 @@
                         if self.max_retry - 1 == idx:
                             raise StopTestError("Fio failed") from exc
                         logger.exception("During fio run")
-                    else:
-                        if all(results):
-                            break
 
                     logger.info("Sleeping %ss and retrying", self.retry_time)
                     time.sleep(self.retry_time)
@@ -181,7 +182,7 @@
                 start_times = []  # type: List[int]
                 stop_times = []  # type: List[int]
 
-                mstorage = storage.sub_storage("result", str(run_id), "measurement")
+                mstorage = self.config.storage.sub_storage("result", str(run_id), "measurement")
                 for (result, (t_start, t_stop)), node in zip(results, self.config.nodes):
                     for metrics_name, data in result.items():
                         mstorage[node.info.node_id(), metrics_name] = data  # type: ignore
@@ -214,7 +215,7 @@
                     'end_time': max_stop_time
                 }
 
-                storage["result", str(run_id), "info"] = test_config  # type: ignore
+                self.config.storage["result", str(run_id), "info"] = test_config  # type: ignore
 
     @abc.abstractmethod
     def config_node(self, node: IRPCNode) -> None: