summaryrefslogtreecommitdiffstats
path: root/docker/storperf-master/storperf/workloads/_base_workload.py
diff options
context:
space:
mode:
Diffstat (limited to 'docker/storperf-master/storperf/workloads/_base_workload.py')
-rw-r--r--docker/storperf-master/storperf/workloads/_base_workload.py33
1 files changed, 23 insertions, 10 deletions
diff --git a/docker/storperf-master/storperf/workloads/_base_workload.py b/docker/storperf-master/storperf/workloads/_base_workload.py
index d5282d7..5aa596e 100644
--- a/docker/storperf-master/storperf/workloads/_base_workload.py
+++ b/docker/storperf-master/storperf/workloads/_base_workload.py
@@ -30,8 +30,9 @@ class _base_workload(object):
self.invoker = None
self.remote_host = None
self.id = None
+ self.name = self.__class__.__name__
- def execute(self):
+ def execute(self, parse_only=False):
if self.invoker is None:
raise ValueError("No invoker has been set")
@@ -43,19 +44,29 @@ class _base_workload(object):
self.options['size'] = "100%"
self.logger.debug(
"Profiling a device, using 100% of " + self.filename)
+ self.options['filename'] = self.filename
else:
- self.options['size'] = self.default_filesize
+ if 'size' not in self.options:
+ self.options['size'] = self.default_filesize
self.logger.debug("Profiling a filesystem, using " +
- self.default_filesize + " file")
-
- self.options['filename'] = self.filename
+ self.options['size'] + " file")
+ if not self.filename.endswith('/'):
+ self.filename = self.filename + "/"
+ self.options['directory'] = self.filename
+ self.options['filename_format'] = "'storperf.$jobnum.$filenum'"
self.setup()
- for key, value in self.options.iteritems():
- args.append('--' + key + "=" + value)
+ for key, value in self.options.items():
+ if value is not None:
+ args.append('--' + key + "=" + str(value))
+ else:
+ args.append('--' + key)
+
+ if parse_only:
+ args.append('--parse-only')
- self.invoker.execute(args)
+ return self.invoker.execute(args)
def terminate(self):
if self.invoker is not None:
@@ -74,9 +85,11 @@ class _base_workload(object):
@property
def fullname(self):
+ host_file = self.remote_host + "." + self.filename
+ host_file = host_file.replace(".", "-").replace("/", "-")
return ("%s.%s.queue-depth.%s.block-size.%s.%s"
% (str(self.id),
- self.__class__.__name__,
+ self.name,
str(self.options['iodepth']),
str(self.options['bs']),
- str(self.remote_host).replace(".", "-")))
+ host_file))