diff options
Diffstat (limited to 'docker/storperf-master/storperf/workloads/_base_workload.py')
-rw-r--r-- | docker/storperf-master/storperf/workloads/_base_workload.py | 33 |
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)) |