From 653621fb7eebce0fb6a9cf558eab1365d52012e0 Mon Sep 17 00:00:00 2001 From: Andrey Berezin Date: Wed, 20 Mar 2024 17:06:38 +0300 Subject: [PATCH] [#197] Allow config_dir for local scenario --- src/frostfs_testlib/load/load_config.py | 42 +++++++------------------ 1 file changed, 11 insertions(+), 31 deletions(-) diff --git a/src/frostfs_testlib/load/load_config.py b/src/frostfs_testlib/load/load_config.py index b859971..2a546c4 100644 --- a/src/frostfs_testlib/load/load_config.py +++ b/src/frostfs_testlib/load/load_config.py @@ -177,13 +177,9 @@ class Preset: @dataclass class PrometheusParams: # Prometheus server URL - server_url: Optional[str] = metadata_field( - all_load_scenarios, env_variable="K6_PROMETHEUS_RW_SERVER_URL", string_repr=False - ) + server_url: Optional[str] = metadata_field(all_load_scenarios, env_variable="K6_PROMETHEUS_RW_SERVER_URL", string_repr=False) # Prometheus trend stats - trend_stats: Optional[str] = metadata_field( - all_load_scenarios, env_variable="K6_PROMETHEUS_RW_TREND_STATS", string_repr=False - ) + trend_stats: Optional[str] = metadata_field(all_load_scenarios, env_variable="K6_PROMETHEUS_RW_TREND_STATS", string_repr=False) # Additional tags metrics_tags: Optional[str] = metadata_field(all_load_scenarios, None, "METRIC_TAGS", False) @@ -246,9 +242,7 @@ class LoadParams: # ------- COMMON SCENARIO PARAMS ------- # Load time is the maximum duration for k6 to give load. Default is the BACKGROUND_LOAD_DEFAULT_TIME value. - load_time: Optional[int] = metadata_field( - all_load_scenarios, None, "DURATION", False, formatter=convert_time_to_seconds - ) + load_time: Optional[int] = metadata_field(all_load_scenarios, None, "DURATION", False, formatter=convert_time_to_seconds) # Object size in KB for load and preset. object_size: Optional[int] = metadata_field(all_load_scenarios, "size", "WRITE_OBJ_SIZE", False) # For read operations, controls from which set get objects to read @@ -266,9 +260,7 @@ class LoadParams: # sleep for the remainder of the time until the specified minimum duration is reached. min_iteration_duration: Optional[str] = metadata_field(all_load_scenarios, None, "K6_MIN_ITERATION_DURATION", False) # Prepare/cut objects locally on client before sending - prepare_locally: Optional[bool] = metadata_field( - [LoadScenario.gRPC, LoadScenario.gRPC_CAR], None, "PREPARE_LOCALLY", False - ) + prepare_locally: Optional[bool] = metadata_field([LoadScenario.gRPC, LoadScenario.gRPC_CAR], None, "PREPARE_LOCALLY", False) # Specifies K6 setupTimeout time. Currently hardcoded in xk6 as 5 seconds for all scenarios # https://k6.io/docs/using-k6/k6-options/reference/#setup-timeout setup_timeout: Optional[str] = metadata_field(all_scenarios, None, "K6_SETUP_TIMEOUT", False) @@ -298,35 +290,25 @@ class LoadParams: delete_rate: Optional[int] = metadata_field(constant_arrival_rate_scenarios, None, "DELETE_RATE", True, True) # Amount of preAllocatedVUs for write operations. - preallocated_writers: Optional[int] = metadata_field( - constant_arrival_rate_scenarios, None, "PRE_ALLOC_WRITERS", True, True - ) + preallocated_writers: Optional[int] = metadata_field(constant_arrival_rate_scenarios, None, "PRE_ALLOC_WRITERS", True, True) # Amount of maxVUs for write operations. max_writers: Optional[int] = metadata_field(constant_arrival_rate_scenarios, None, "MAX_WRITERS", False, True) # Amount of preAllocatedVUs for read operations. - preallocated_readers: Optional[int] = metadata_field( - constant_arrival_rate_scenarios, None, "PRE_ALLOC_READERS", True, True - ) + preallocated_readers: Optional[int] = metadata_field(constant_arrival_rate_scenarios, None, "PRE_ALLOC_READERS", True, True) # Amount of maxVUs for read operations. max_readers: Optional[int] = metadata_field(constant_arrival_rate_scenarios, None, "MAX_READERS", False, True) # Amount of preAllocatedVUs for read operations. - preallocated_deleters: Optional[int] = metadata_field( - constant_arrival_rate_scenarios, None, "PRE_ALLOC_DELETERS", True, True - ) + preallocated_deleters: Optional[int] = metadata_field(constant_arrival_rate_scenarios, None, "PRE_ALLOC_DELETERS", True, True) # Amount of maxVUs for delete operations. max_deleters: Optional[int] = metadata_field(constant_arrival_rate_scenarios, None, "MAX_DELETERS", False, True) # Multipart # Number of parts to upload in parallel - writers_multipart: Optional[int] = metadata_field( - [LoadScenario.S3_MULTIPART], None, "WRITERS_MULTIPART", False, True - ) + writers_multipart: Optional[int] = metadata_field([LoadScenario.S3_MULTIPART], None, "WRITERS_MULTIPART", False, True) # part size must be greater than (5 MB) - write_object_part_size: Optional[int] = metadata_field( - [LoadScenario.S3_MULTIPART], None, "WRITE_OBJ_PART_SIZE", False - ) + write_object_part_size: Optional[int] = metadata_field([LoadScenario.S3_MULTIPART], None, "WRITE_OBJ_PART_SIZE", False) # Period of time to apply the rate value. time_unit: Optional[str] = metadata_field(constant_arrival_rate_scenarios, None, "TIME_UNIT", False) @@ -341,7 +323,7 @@ class LoadParams: # Config file location (filled automatically) config_file: Optional[str] = metadata_field([LoadScenario.LOCAL, LoadScenario.S3_LOCAL], None, "CONFIG_FILE", False) # Config directory location (filled automatically) - config_dir: Optional[str] = metadata_field([LoadScenario.S3_LOCAL], None, "CONFIG_DIR", False) + config_dir: Optional[str] = metadata_field([LoadScenario.LOCAL, LoadScenario.S3_LOCAL], None, "CONFIG_DIR", False) def set_id(self, load_id): self.load_id = load_id @@ -474,9 +456,7 @@ class LoadParams: static_params = [f"{load_type_str}"] dynamic_params = [ - f"{meta_field.name}={meta_field.value}" - for meta_field in self._get_applicable_fields() - if meta_field.metadata["string_repr"] + f"{meta_field.name}={meta_field.value}" for meta_field in self._get_applicable_fields() if meta_field.metadata["string_repr"] ] params = ", ".join(static_params + dynamic_params)