Skip to content

Commit

Permalink
workload_fixture__thread_safe
Browse files Browse the repository at this point in the history
Signed-off-by: Daniel Osypenko <dosypenk@redhat.com>
  • Loading branch information
DanielOsypenko committed Sep 26, 2023
1 parent 071756e commit 7acd2a5
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 5 deletions.
3 changes: 3 additions & 0 deletions ocs_ci/ocs/fiojob.py
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,7 @@ def workload_fio_storageutilization(
keep_fio_data=False,
minimal_time=480,
throw_skip=True,
threading_lock=None,
):
"""
This function implements core functionality of fio storage utilization
Expand Down Expand Up @@ -383,6 +384,7 @@ def workload_fio_storageutilization(
(See more details in the function 'measure_operation')
throw_skip (bool): if True function will raise pytest.skip.Exception and test will be skipped,
otherwise return None
threading_lock (threading.RLock): lock to be used for thread synchronization when calling 'oc' cmd
Returns:
dict: measurement results with timestamps and other medatada from
Expand Down Expand Up @@ -528,6 +530,7 @@ def workload_fio_storageutilization(
test_file,
measure_after=True,
minimal_time=minimal_time,
threading_lock=threading_lock,
)

# we don't need to delete anything if this fixture has been already
Expand Down
57 changes: 52 additions & 5 deletions tests/manage/monitoring/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -398,7 +398,13 @@ def wait_with_corrupted_pg():

@pytest.fixture
def workload_storageutilization_05p_rbd(
project, fio_pvc_dict, fio_job_dict, fio_configmap_dict, measurement_dir, tmp_path
project,
fio_pvc_dict,
fio_job_dict,
fio_configmap_dict,
measurement_dir,
tmp_path,
threading_lock,
):
fixture_name = "workload_storageutilization_05p_rbd"
measured_op = workload_fio_storageutilization(
Expand All @@ -410,6 +416,7 @@ def workload_storageutilization_05p_rbd(
measurement_dir,
tmp_path,
target_percentage=0.05,
threading_lock=threading_lock,
)
return measured_op

Expand All @@ -423,6 +430,7 @@ def workload_storageutilization_50p_rbd(
measurement_dir,
tmp_path,
supported_configuration,
threading_lock,
):
fixture_name = "workload_storageutilization_50p_rbd"
measured_op = workload_fio_storageutilization(
Expand All @@ -434,13 +442,20 @@ def workload_storageutilization_50p_rbd(
measurement_dir,
tmp_path,
target_percentage=0.5,
threading_lock=threading_lock,
)
return measured_op


@pytest.fixture
def workload_storageutilization_checksum_rbd(
project, fio_pvc_dict, fio_job_dict, fio_configmap_dict, measurement_dir, tmp_path
project,
fio_pvc_dict,
fio_job_dict,
fio_configmap_dict,
measurement_dir,
tmp_path,
threading_lock,
):
fixture_name = "workload_storageutilization_checksum_rbd"
measured_op = workload_fio_storageutilization(
Expand All @@ -453,6 +468,7 @@ def workload_storageutilization_checksum_rbd(
tmp_path,
target_size=10,
with_checksum=True,
threading_lock=threading_lock,
)
return measured_op

Expand All @@ -466,6 +482,7 @@ def workload_storageutilization_85p_rbd(
measurement_dir,
tmp_path,
supported_configuration,
threading_lock,
):
fixture_name = "workload_storageutilization_85p_rbd"
measured_op = workload_fio_storageutilization(
Expand All @@ -477,6 +494,7 @@ def workload_storageutilization_85p_rbd(
measurement_dir,
tmp_path,
target_percentage=0.85,
threading_lock=threading_lock,
)
return measured_op

Expand All @@ -490,6 +508,7 @@ def workload_storageutilization_97p_rbd(
measurement_dir,
tmp_path,
supported_configuration,
threading_lock,
):
fixture_name = "workload_storageutilization_97p_rbd"
measured_op = workload_fio_storageutilization(
Expand All @@ -501,13 +520,20 @@ def workload_storageutilization_97p_rbd(
measurement_dir,
tmp_path,
target_percentage=0.97,
threading_lock=threading_lock,
)
return measured_op


@pytest.fixture
def workload_storageutilization_05p_cephfs(
project, fio_pvc_dict, fio_job_dict, fio_configmap_dict, measurement_dir, tmp_path
project,
fio_pvc_dict,
fio_job_dict,
fio_configmap_dict,
measurement_dir,
tmp_path,
threading_lock,
):
fixture_name = "workload_storageutilization_05p_cephfs"
measured_op = workload_fio_storageutilization(
Expand All @@ -519,6 +545,7 @@ def workload_storageutilization_05p_cephfs(
measurement_dir,
tmp_path,
target_percentage=0.05,
threading_lock=threading_lock,
)
return measured_op

Expand All @@ -532,6 +559,7 @@ def workload_storageutilization_50p_cephfs(
measurement_dir,
tmp_path,
supported_configuration,
threading_lock,
):
fixture_name = "workload_storageutilization_50p_cephfs"
measured_op = workload_fio_storageutilization(
Expand All @@ -543,6 +571,7 @@ def workload_storageutilization_50p_cephfs(
measurement_dir,
tmp_path,
target_percentage=0.5,
threading_lock=threading_lock,
)
return measured_op

Expand All @@ -556,6 +585,7 @@ def workload_storageutilization_85p_cephfs(
measurement_dir,
tmp_path,
supported_configuration,
threading_lock,
):
fixture_name = "workload_storageutilization_85p_cephfs"
measured_op = workload_fio_storageutilization(
Expand All @@ -567,6 +597,7 @@ def workload_storageutilization_85p_cephfs(
measurement_dir,
tmp_path,
target_percentage=0.85,
threading_lock=threading_lock,
)
return measured_op

Expand All @@ -580,6 +611,7 @@ def workload_storageutilization_97p_cephfs(
measurement_dir,
tmp_path,
supported_configuration,
threading_lock,
):
fixture_name = "workload_storageutilization_97p_cephfs"
measured_op = workload_fio_storageutilization(
Expand All @@ -591,6 +623,7 @@ def workload_storageutilization_97p_cephfs(
measurement_dir,
tmp_path,
target_percentage=0.97,
threading_lock=threading_lock,
)
return measured_op

Expand All @@ -600,7 +633,13 @@ def workload_storageutilization_97p_cephfs(

@pytest.fixture
def workload_storageutilization_10g_rbd(
project, fio_pvc_dict, fio_job_dict, fio_configmap_dict, measurement_dir, tmp_path
project,
fio_pvc_dict,
fio_job_dict,
fio_configmap_dict,
measurement_dir,
tmp_path,
threading_lock,
):
fixture_name = "workload_storageutilization_10G_rbd"
measured_op = workload_fio_storageutilization(
Expand All @@ -612,13 +651,20 @@ def workload_storageutilization_10g_rbd(
measurement_dir,
tmp_path,
target_size=10,
threading_lock=threading_lock,
)
return measured_op


@pytest.fixture
def workload_storageutilization_10g_cephfs(
project, fio_pvc_dict, fio_job_dict, fio_configmap_dict, measurement_dir, tmp_path
project,
fio_pvc_dict,
fio_job_dict,
fio_configmap_dict,
measurement_dir,
tmp_path,
threading_lock,
):
fixture_name = "workload_storageutilization_10G_cephfs"
measured_op = workload_fio_storageutilization(
Expand All @@ -630,6 +676,7 @@ def workload_storageutilization_10g_cephfs(
measurement_dir,
tmp_path,
target_size=10,
threading_lock=threading_lock,
)
return measured_op

Expand Down

0 comments on commit 7acd2a5

Please sign in to comment.