redisbench-admin 0.11.57__tar.gz → 0.11.58__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/PKG-INFO +1 -1
  2. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/pyproject.toml +1 -1
  3. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/ftsb/ftsb.py +2 -0
  4. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/ssh.py +3 -0
  5. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run_remote/remote_helpers.py +53 -5
  6. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/utils/benchmark_config.py +51 -28
  7. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/utils/local.py +5 -2
  8. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/LICENSE +0 -0
  9. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/README.md +0 -0
  10. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/__init__.py +0 -0
  11. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/cli.py +0 -0
  12. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/commands/__init__.py +0 -0
  13. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/commands/commands.json.py +0 -0
  14. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/compare/__init__.py +0 -0
  15. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/compare/args.py +0 -0
  16. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/compare/compare.py +0 -0
  17. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/deploy/__init__.py +0 -0
  18. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/deploy/args.py +0 -0
  19. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/deploy/deploy.py +0 -0
  20. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/environments/__init__.py +0 -0
  21. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/environments/oss_cluster.py +0 -0
  22. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/environments/oss_standalone.py +0 -0
  23. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/export/__init__.py +0 -0
  24. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/export/args.py +0 -0
  25. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/export/common/__init__.py +0 -0
  26. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/export/common/common.py +0 -0
  27. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/export/export.py +0 -0
  28. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/export/google_benchmark/__init__.py +0 -0
  29. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/export/google_benchmark/google_benchmark_json_format.py +0 -0
  30. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/export/memtier_benchmark/__init__.py +0 -0
  31. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/export/memtier_benchmark/memtier_benchmark_json_format.py +0 -0
  32. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/export/pyperf/__init__.py +0 -0
  33. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/export/pyperf/pyperf_json_format.py +0 -0
  34. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/export/redis_benchmark/__init__.py +0 -0
  35. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/export/redis_benchmark/metrics_definition.py +0 -0
  36. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/export/redis_benchmark/redis_benchmark_csv_format.py +0 -0
  37. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/extract/__init__.py +0 -0
  38. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/extract/args.py +0 -0
  39. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/extract/extract.py +0 -0
  40. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/grafana_api/__init__.py +0 -0
  41. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/grafana_api/app.py +0 -0
  42. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/grafana_api/args.py +0 -0
  43. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/grafana_api/grafana_api.py +0 -0
  44. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/profilers/__init__.py +0 -0
  45. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/profilers/daemon.py +0 -0
  46. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/profilers/flamegraph.pl +0 -0
  47. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/profilers/perf.py +0 -0
  48. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/profilers/perf_daemon_caller.py +0 -0
  49. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/profilers/pprof.py +0 -0
  50. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/profilers/profilers.py +0 -0
  51. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/profilers/profilers_local.py +0 -0
  52. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/profilers/profilers_schema.py +0 -0
  53. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/profilers/stackcollapse-perf.pl +0 -0
  54. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/profilers/vtune.py +0 -0
  55. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/__init__.py +0 -0
  56. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/aibench_run_inference_redisai_vision/__init__.py +0 -0
  57. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/aibench_run_inference_redisai_vision/aibench_run_inference_redisai_vision.py +0 -0
  58. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/ann/__init__.py +0 -0
  59. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/ann/ann.py +0 -0
  60. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/args.py +0 -0
  61. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/asm.py +0 -0
  62. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/cluster.py +0 -0
  63. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/common.py +0 -0
  64. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/ftsb/__init__.py +0 -0
  65. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/git.py +0 -0
  66. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/grafana.py +0 -0
  67. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/memtier_benchmark/__init__.py +0 -0
  68. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/memtier_benchmark/memtier_benchmark.py +0 -0
  69. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/metrics.py +0 -0
  70. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/modules.py +0 -0
  71. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/redis_benchmark/__init__.py +0 -0
  72. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/redis_benchmark/redis_benchmark.py +0 -0
  73. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/redisgraph_benchmark_go/__init__.py +0 -0
  74. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/redisgraph_benchmark_go/redisgraph_benchmark_go.py +0 -0
  75. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/redistimeseries.py +0 -0
  76. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/run.py +0 -0
  77. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/s3.py +0 -0
  78. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/tsbs_run_queries_redistimeseries/__init__.py +0 -0
  79. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/tsbs_run_queries_redistimeseries/tsbs_run_queries_redistimeseries.py +0 -0
  80. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/ycsb/__init__.py +0 -0
  81. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run/ycsb/ycsb.py +0 -0
  82. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run_async/__init__.py +0 -0
  83. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run_async/async_env.py +0 -0
  84. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run_async/async_terraform.py +0 -0
  85. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run_async/benchmark.py +0 -0
  86. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run_async/log.py +0 -0
  87. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run_async/render_files.py +0 -0
  88. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run_async/run_async.py +0 -0
  89. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run_local/__init__.py +0 -0
  90. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run_local/args.py +0 -0
  91. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run_local/local_client.py +0 -0
  92. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run_local/local_db.py +0 -0
  93. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run_local/local_helpers.py +0 -0
  94. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run_local/run_local.py +0 -0
  95. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run_remote/__init__.py +0 -0
  96. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run_remote/args.py +0 -0
  97. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run_remote/consts.py +0 -0
  98. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run_remote/log.py +0 -0
  99. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run_remote/notifications.py +0 -0
  100. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run_remote/remote_client.py +0 -0
  101. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run_remote/remote_db.py +0 -0
  102. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run_remote/remote_env.py +0 -0
  103. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run_remote/remote_failures.py +0 -0
  104. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run_remote/run_remote.py +0 -0
  105. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run_remote/standalone.py +0 -0
  106. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/run_remote/terraform.py +0 -0
  107. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/utils/__init__.py +0 -0
  108. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/utils/redisearch.py +0 -0
  109. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/utils/redisgraph_benchmark_go.py +0 -0
  110. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/utils/remote.py +0 -0
  111. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/utils/results.py +0 -0
  112. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/utils/ssh.py +0 -0
  113. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/utils/utils.py +0 -0
  114. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/watchdog/__init__.py +0 -0
  115. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/watchdog/args.py +0 -0
  116. {redisbench_admin-0.11.57 → redisbench_admin-0.11.58}/redisbench_admin/watchdog/watchdog.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: redisbench-admin
3
- Version: 0.11.57
3
+ Version: 0.11.58
4
4
  Summary: Redis benchmark run helper. A wrapper around Redis and Redis Modules benchmark tools ( ftsb_redisearch, memtier_benchmark, redis-benchmark, aibench, etc... ).
5
5
  License-File: LICENSE
6
6
  Author: filipecosta90
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "redisbench-admin"
3
- version = "0.11.57"
3
+ version = "0.11.58"
4
4
  description = "Redis benchmark run helper. A wrapper around Redis and Redis Modules benchmark tools ( ftsb_redisearch, memtier_benchmark, redis-benchmark, aibench, etc... )."
5
5
  authors = ["filipecosta90 <filipecosta.90@gmail.com>","Redis Performance Group <performance@redis.com>"]
6
6
  readme = "README.md"
@@ -44,6 +44,8 @@ def prepare_ftsb_benchmark_command(
44
44
  input_file, "/tmp", None, remote_queries_file, is_remote
45
45
  )
46
46
  command_arr.extend(["--input", input_file])
47
+ elif "max-token-size-mb" in k:
48
+ command_arr.extend(["--max-token-size-mb", str(k["max-token-size-mb"])])
47
49
  else:
48
50
  for kk in k.keys():
49
51
  command_arr.extend(["--{}".format(kk), str(k[kk])])
@@ -35,6 +35,9 @@ def ssh_tunnel_redisconn(
35
35
  ssh_address_or_host=(server_public_ip, ssh_port),
36
36
  ssh_username=username,
37
37
  ssh_pkey=ssh_pkey,
38
+ ssh_config_file=None,
39
+ allow_agent=False,
40
+ host_pkey_directories=[],
38
41
  logger=logging.getLogger(),
39
42
  remote_bind_address=(
40
43
  server_private_ip,
@@ -51,6 +51,50 @@ def benchmark_tools_sanity_check(allowed_tools, benchmark_tool):
51
51
  )
52
52
 
53
53
 
54
+ def ensure_aws_cli_available(client_public_ip, username, private_key, client_ssh_port):
55
+ """Check if AWS CLI is available, install if not"""
56
+ logging.info("Checking if AWS CLI is available on remote client...")
57
+
58
+ # Check if aws command exists
59
+ check_result = execute_remote_commands(
60
+ client_public_ip, username, private_key, ["which aws"], client_ssh_port
61
+ )
62
+
63
+ # Check the result
64
+ if len(check_result) > 0:
65
+ [recv_exit_status, stdout, stderr] = check_result[0]
66
+ if recv_exit_status != 0:
67
+ logging.info("AWS CLI not found, installing...")
68
+
69
+ # Install AWS CLI v2
70
+ install_commands = [
71
+ "curl 'https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip' -o 'awscliv2.zip'",
72
+ "unzip -q awscliv2.zip",
73
+ "sudo ./aws/install",
74
+ "rm -rf awscliv2.zip aws/"
75
+ ]
76
+
77
+ install_result = execute_remote_commands(
78
+ client_public_ip, username, private_key, install_commands, client_ssh_port
79
+ )
80
+
81
+ # Check if installation was successful
82
+ for pos, res_pos in enumerate(install_result):
83
+ [recv_exit_status, stdout, stderr] = res_pos
84
+ if recv_exit_status != 0:
85
+ logging.warning(
86
+ "AWS CLI installation command {} returned exit code {}. stdout: {}. stderr: {}".format(
87
+ pos, recv_exit_status, stdout, stderr
88
+ )
89
+ )
90
+
91
+ logging.info("AWS CLI installation completed")
92
+ else:
93
+ logging.info("AWS CLI is already available")
94
+ else:
95
+ logging.error("Failed to check AWS CLI availability")
96
+
97
+
54
98
  def remote_tool_pre_bench_step(
55
99
  benchmark_config,
56
100
  benchmark_min_tool_version,
@@ -221,12 +265,16 @@ def _setup_remote_benchmark_tool_requirements(
221
265
  ]
222
266
 
223
267
  # detect if queries_file_link is a s3 URI or http one and act accordingly (use aws cli or wget)
224
- if queries_file_link.startswith("s3://"):
225
- commands.append(
226
- "aws s3 cp {} {} --no-sign-request".format(queries_file_link, remote_input_file)
227
- )
268
+ if queries_file_link is not None:
269
+ if queries_file_link.startswith("s3://"):
270
+ ensure_aws_cli_available(client_public_ip, username, private_key, client_ssh_port)
271
+ commands.append(
272
+ "timeout 600 aws s3 cp {} {} --no-sign-request --cli-read-timeout 300".format(queries_file_link, remote_input_file)
273
+ )
274
+ else:
275
+ commands.append("wget {} -q -O {}".format(queries_file_link, remote_input_file))
228
276
  else:
229
- commands.append("wget {} -q -O {}".format(queries_file_link, remote_input_file))
277
+ logging.info("No queries file link provided. Skipping download.")
230
278
  execute_remote_commands(
231
279
  client_public_ip, username, private_key, commands, client_ssh_port
232
280
  )
@@ -195,36 +195,59 @@ def merge_default_and_specific_properties_dict_type(
195
195
  )
196
196
  )
197
197
  else:
198
- usecase_kpi = None
199
- use_case_specific_properties = benchmark_config[propertygroup_keyname]
200
- for default_property in default_properties:
201
- default_rule, default_details = list(default_property.items())[0]
202
- default_condition = list(default_details.values())[0]
203
- comparison_key = "{}{}".format(default_rule, default_condition)
204
- found = False
205
- for usecase_kpi in use_case_specific_properties:
206
- usecase_rule, usecase_details = list(usecase_kpi.items())[0]
207
- usecase_condition = list(usecase_details.values())[0]
208
- usecase_comparison_key = "{}{}".format(usecase_rule, usecase_condition)
209
- if comparison_key == usecase_comparison_key:
210
- found = True
211
- if found:
212
- logging.info(
213
- "Skipping to add default '{}' property ({}) given the file {}"
214
- " had the same specific property ({})".format(
215
- propertygroup_keyname,
216
- default_property,
217
- usecase_filename,
218
- usecase_kpi,
198
+ # Special handling for remote configs
199
+ if propertygroup_keyname == "remote":
200
+ # For remote, merge by adding missing keys from defaults
201
+ use_case_specific_properties = benchmark_config[propertygroup_keyname]
202
+ existing_keys = set()
203
+ for item in use_case_specific_properties:
204
+ existing_keys.update(item.keys())
205
+
206
+ for default_property in default_properties:
207
+ for key in default_property.keys():
208
+ if key not in existing_keys:
209
+ use_case_specific_properties.append(default_property)
210
+ logging.info(
211
+ "Adding a default '{}' property ({}) given the file {} did not have the specific property".format(
212
+ propertygroup_keyname, default_property, usecase_filename
213
+ )
214
+ )
215
+ break
216
+ else:
217
+ # Original logic for kpis and other properties
218
+ usecase_kpi = None
219
+ use_case_specific_properties = benchmark_config[propertygroup_keyname]
220
+ for default_property in default_properties:
221
+ default_rule, default_details = list(default_property.items())[0]
222
+ if isinstance(default_details, dict):
223
+ default_condition = list(default_details.values())[0]
224
+ else:
225
+ default_condition = default_details
226
+ comparison_key = "{}{}".format(default_rule, default_condition)
227
+ found = False
228
+ for usecase_kpi in use_case_specific_properties:
229
+ usecase_rule, usecase_details = list(usecase_kpi.items())[0]
230
+ usecase_condition = list(usecase_details.values())[0]
231
+ usecase_comparison_key = "{}{}".format(usecase_rule, usecase_condition)
232
+ if comparison_key == usecase_comparison_key:
233
+ found = True
234
+ if found:
235
+ logging.info(
236
+ "Skipping to add default '{}' property ({}) given the file {}"
237
+ " had the same specific property ({})".format(
238
+ propertygroup_keyname,
239
+ default_property,
240
+ usecase_filename,
241
+ usecase_kpi,
242
+ )
219
243
  )
220
- )
221
- else:
222
- use_case_specific_properties.append(default_property)
223
- logging.info(
224
- "Adding a default '{}' property ({}) given the file {} did not had the specific property".format(
225
- propertygroup_keyname, default_property, usecase_filename
244
+ else:
245
+ use_case_specific_properties.append(default_property)
246
+ logging.info(
247
+ "Adding a default '{}' property ({}) given the file {} did not have the specific property".format(
248
+ propertygroup_keyname, default_property, usecase_filename
249
+ )
226
250
  )
227
- )
228
251
 
229
252
 
230
253
  def extract_redis_dbconfig_parameters(benchmark_config, dbconfig_keyname):
@@ -70,7 +70,7 @@ def check_dataset_local_requirements(
70
70
  def check_if_needs_remote_fetch(
71
71
  property, localtemp_dir, dirname, full_path=None, is_remote=False
72
72
  ):
73
- if property.startswith("http"):
73
+ if property.startswith("http") or property.startswith("s3"):
74
74
  if not os.path.isdir(localtemp_dir):
75
75
  os.mkdir(localtemp_dir)
76
76
  if full_path is None:
@@ -82,7 +82,10 @@ def check_if_needs_remote_fetch(
82
82
  property, full_path, localtemp_dir
83
83
  )
84
84
  )
85
- wget.download(property, full_path)
85
+ if property.startswith("s3://"):
86
+ logging.error("Unexpected s3 URL. It should have already been downloaded. Skipping...")
87
+ else:
88
+ wget.download(property, full_path)
86
89
  else:
87
90
  logging.info(
88
91
  "Reusing cached remote file (located at {} ).".format(full_path)