aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJingLu5 <lvjing5@huawei.com>2017-10-13 08:15:18 +0000
committerJingLu5 <lvjing5@huawei.com>2017-10-17 01:03:42 +0000
commita5d0491b47fd1bab27fa603353861ea8eaba8da5 (patch)
tree94f6d0e75d14a8f50c0b88be47e22f58329fd606
parent2a0153c8b7edb099a84aca0e42673be52b7612a6 (diff)
Fio: support input job file configuration
Change-Id: I4bb15a398819e54f7fb3e9eac17daa4059c03376 Signed-off-by: JingLu5 <lvjing5@huawei.com>
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc006.yaml8
-rw-r--r--yardstick/benchmark/scenarios/storage/fio.py17
2 files changed, 22 insertions, 3 deletions
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc006.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc006.yaml
index 81b42dc4d..fe244e81c 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc006.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc006.yaml
@@ -13,7 +13,8 @@ description: >
Yardstick TC006 config file;
Measure volume storage IOPS, throughput and latency using fio with job file.
-{% set directory = directory or "/FIO_Test" %}
+{% set job_file_config = job_file_config or '["[random-writers]", ioengine=libaio, rw=randwrite, size=128m, bs=32k, direct=0, size=64m, numjobs=4]' %}
+{% set directory = directory or '/FIO_Test' %}
{% set volume_size = volume_size or 200 %}
{% set provider = provider or none %}
{% set physical_network = physical_network or 'physnet1' %}
@@ -25,7 +26,10 @@ scenarios:
-
type: Fio
options:
- job_file: "job_file.ini"
+ # input the content of a fio job file directly
+ job_file_config: {{ job_file_config }}
+ # or input the job file name
+ #job_file: "job_file.ini"
directory: {{ directory }}
host: fio.yardstick-TC006
diff --git a/yardstick/benchmark/scenarios/storage/fio.py b/yardstick/benchmark/scenarios/storage/fio.py
index 98fe26973..125bc7ed4 100644
--- a/yardstick/benchmark/scenarios/storage/fio.py
+++ b/yardstick/benchmark/scenarios/storage/fio.py
@@ -32,6 +32,10 @@ class Fio(base.Scenario):
type: string
unit: na
default: None
+ job_file_config - content of job configuration file
+ type: list
+ unit: na
+ default: None
directory - mount directoey for test volume
type: string
unit: na
@@ -90,15 +94,26 @@ class Fio(base.Scenario):
self.client.wait(timeout=600)
self.job_file = self.options.get("job_file", None)
+ config_lines = self.options.get("job_file_config", None)
if self.job_file:
self.job_file_script = pkg_resources.resource_filename(
"yardstick.resources", 'files/' + self.job_file)
- # copy script to host
+ # copy job file to host
self.client._put_file_shell(self.job_file_script, '~/job_file.ini')
+ elif config_lines:
+ LOG.debug("Job file configuration received, Fio job file will be created.")
+ self.job_file = 'tmp_job_file.ini'
+ self.job_file_script = pkg_resources.resource_filename(
+ "yardstick.resources", 'files/' + self.job_file)
+ with open(self.job_file_script, 'w') as f:
+ f.write('\n'.join(str(line) for line in config_lines))
+ # copy job file to host
+ self.client._put_file_shell(self.job_file_script, '~/job_file.ini')
else:
+ LOG.debug("No job file configuration received, Fio will use parameters.")
self.target_script = pkg_resources.resource_filename(
"yardstick.benchmark.scenarios.storage", Fio.TARGET_SCRIPT)