a lot of changes
diff --git a/wally/suits/io/fio_task_parser.py b/wally/suits/io/fio_task_parser.py
index 52c4bb3..aca0254 100644
--- a/wally/suits/io/fio_task_parser.py
+++ b/wally/suits/io/fio_task_parser.py
@@ -7,7 +7,7 @@
from collections import OrderedDict, namedtuple
-from wally.utils import sec_to_str
+from wally.utils import sec_to_str, ssize2b
SECTION = 0
@@ -50,20 +50,6 @@
return res
-def to_bytes(sz):
- sz = sz.lower()
- try:
- return int(sz)
- except ValueError:
- if sz[-1] == 'm':
- return (1024 ** 2) * int(sz[:-1])
- if sz[-1] == 'k':
- return 1024 * int(sz[:-1])
- if sz[-1] == 'g':
- return (1024 ** 3) * int(sz[:-1])
- raise
-
-
class ParseError(ValueError):
def __init__(self, msg, fname, lineno, line_cont=""):
ValueError.__init__(self, msg)
@@ -265,11 +251,30 @@
elif val.name in processed_vals:
val = processed_vals[val.name]
processed_vals[name] = val
+
sec = sec.copy()
sec.vals = processed_vals
return sec
+MAGIC_OFFSET = 0.1885
+
+
+def abbv_name_to_full(name):
+ assert len(name) == 3
+
+ smode = {
+ 'a': 'async',
+ 's': 'sync',
+ 'd': 'direct',
+ 'x': 'sync direct'
+ }
+ off_mode = {'s': 'sequential', 'r': 'random'}
+ oper = {'r': 'read', 'w': 'write'}
+ return smode[name[2]] + " " + \
+ off_mode[name[0]] + " " + oper[name[1]]
+
+
def finall_process(sec, counter=[0]):
sec = sec.copy()
@@ -279,6 +284,16 @@
sec.vals['unified_rw_reporting'] = '1'
+ sz = ssize2b(sec.vals['size'])
+ offset = sz * ((MAGIC_OFFSET * counter[0]) % 1.0)
+ offset = int(offset) // 1024 ** 2
+ new_vars = {'UNIQ_OFFSET': str(offset) + "m"}
+
+ for name, val in sec.vals.items():
+ if isinstance(val, Var):
+ if val.name in new_vars:
+ sec.vals[name] = new_vars[val.name]
+
params = sec.vals.copy()
params['UNIQ'] = 'UN{0}'.format(counter[0])
params['COUNTER'] = str(counter[0])