diff options
Diffstat (limited to 'docker/storperf-master/storperf/test_executor.py')
-rw-r--r-- | docker/storperf-master/storperf/test_executor.py | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/docker/storperf-master/storperf/test_executor.py b/docker/storperf-master/storperf/test_executor.py index f7b577e..cb7e478 100644 --- a/docker/storperf-master/storperf/test_executor.py +++ b/docker/storperf-master/storperf/test_executor.py @@ -217,18 +217,19 @@ class TestExecutor(object): def execute(self, metadata): self.job_db.create_job_id() + self._setup_metadata(metadata) try: self.test_params() except Exception as e: self.terminate() raise e - self._setup_metadata(metadata) - self.job_db.record_workload_params(metadata) + stripped_metadata = metadata.copy() + stripped_metadata.pop('ssh_key', None) + self.job_db.record_workload_params(stripped_metadata) self._workload_thread = Thread(target=self.execute_workloads, args=(), name="Workload thread") self._workload_thread.start() - # seems to be hanging here return self.job_db.job_id def terminate(self): @@ -315,8 +316,9 @@ class TestExecutor(object): continue workload = current_workload['workload'] - self._thread_gate = ThreadGate(len(self.slaves), - workload.options['status-interval']) + self._thread_gate = ThreadGate( + len(self.slaves) * min(1, self.volume_count), + float(workload.options['status-interval'])) self.current_workload = current_workload['name'] @@ -360,20 +362,25 @@ class TestExecutor(object): workloads = [] if self._custom_workloads: - for workload_name in self._custom_workloads.iterkeys(): - if not workload_name.isalnum(): + for workload_name in self._custom_workloads.keys(): + real_name = workload_name + if real_name.startswith('_'): + real_name = real_name.replace('_', '') + self.logger.info("--- real_name: %s" % real_name) + + if not real_name.isalnum(): raise InvalidWorkloadName( "Workload name must be alphanumeric only: %s" % - workload_name) + real_name) workload = _custom_workload() - workload.options['name'] = workload_name + workload.options['name'] = real_name workload.name = workload_name if (self.filename is not None): workload.filename = self.filename workload.id = self.job_db.job_id workload_params = self._custom_workloads[workload_name] - for param, value in workload_params.iteritems(): + for param, value in workload_params.items(): if param == "readwrite": param = "rw" if param in workload.fixed_options: |