aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJing Lu <lvjing5@huawei.com>2017-10-18 05:59:24 +0000
committerGerrit Code Review <gerrit@opnfv.org>2017-10-18 05:59:24 +0000
commitff9f105af636389a7c66dcabf22fb73abed0a833 (patch)
tree03642e943c4168759549085196e74929dc47b3b9
parent32559970a63812dde84efe12d124427f4ef197c3 (diff)
parenta5d0491b47fd1bab27fa603353861ea8eaba8da5 (diff)
Merge "Fio: support input job file configuration"
-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)