diff options
author | mbeierl <mark.beierl@dell.com> | 2018-05-04 14:04:51 -0400 |
---|---|---|
committer | mbeierl <mark.beierl@dell.com> | 2018-05-10 10:53:55 -0400 |
commit | 1942e374fba718d1d4b6bc5388803c75e71aa197 (patch) | |
tree | 045c15e23ef5def85f765df863f9b342cebc713a /docker/storperf-master/storperf/test_executor.py | |
parent | 64c8b3b561ccac6159241cd0485a3259887c6bb0 (diff) |
Adds Volume Count and Dynamic Reload
Adds a volume_count parameter that allows the user to
change the number of volumes. Test execution still
uses each volume specified and appends it to the host
ip address in the graphite metrics.
Changes the cache policy of the stack from SNAPS-OO
so that changes made to the stack are refelcted in
StorPerf.
Fixes the documentation path and updates the docs
for the above changes.
Change-Id: I5b9160b469e80d4f7d6906ac270bb3b75411fb5a
JIRA: STORPERF-242
Signed-off-by: mbeierl <mark.beierl@dell.com>
Diffstat (limited to 'docker/storperf-master/storperf/test_executor.py')
-rw-r--r-- | docker/storperf-master/storperf/test_executor.py | 42 |
1 files changed, 28 insertions, 14 deletions
diff --git a/docker/storperf-master/storperf/test_executor.py b/docker/storperf-master/storperf/test_executor.py index 9ed6386..2ed6a9e 100644 --- a/docker/storperf-master/storperf/test_executor.py +++ b/docker/storperf-master/storperf/test_executor.py @@ -53,6 +53,7 @@ class TestExecutor(object): self.job_db = JobDB() self._slaves = [] self._terminated = False + self._volume_count = 1 self._workload_executors = [] self._workload_thread = None self._thread_gate = None @@ -88,6 +89,15 @@ class TestExecutor(object): self._slaves = slaves @property + def volume_count(self): + return self._volume_count + + @volume_count.setter + def volume_count(self, volume_count): + self.logger.debug("Set volume count to: " + str(volume_count)) + self._volume_count = volume_count + + @property def queue_depths(self): return ','.join(self._queue_depths) @@ -282,17 +292,24 @@ class TestExecutor(object): slave_threads = [] for slave in self.slaves: - slave_workload = copy.copy(current_workload['workload']) - slave_workload.remote_host = slave - - self._workload_executors.append(slave_workload) - - t = Thread(target=self.execute_on_node, - args=(slave_workload,), - name="%s worker" % slave) - t.daemon = False - t.start() - slave_threads.append(t) + volume_number = 0 + while volume_number < self.volume_count: + slave_workload = copy.copy(current_workload['workload']) + slave_workload.remote_host = slave + last_char_of_filename = chr(ord( + slave_workload.filename[-1:]) + volume_number) + slave_workload.filename = "%s%s" % \ + (slave_workload.filename[:-1], last_char_of_filename) + self.logger.debug("Device to profile: %s" % + slave_workload.filename) + self._workload_executors.append(slave_workload) + t = Thread(target=self.execute_on_node, + args=(slave_workload,), + name="%s worker" % slave) + t.daemon = False + t.start() + slave_threads.append(t) + volume_number += 1 for slave_thread in slave_threads: self.logger.debug("Waiting on %s" % slave_thread) @@ -335,9 +352,6 @@ class TestExecutor(object): workload.filename = self.filename workload.id = self.job_db.job_id - if (self.filename is not None): - workload.filename = self.filename - if (workload_name.startswith("_")): iodepths = [8, ] blocksizes = [16384, ] |