Skip to content

Commit 9fd2102

Browse files
In case of error fetch the entire folder. (#294)
1 parent 40c7373 commit 9fd2102

File tree

4 files changed

+210
-90
lines changed

4 files changed

+210
-90
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "redisbench-admin"
3-
version = "0.6.24"
3+
version = "0.6.25"
44
description = "Redis benchmark run helper. A wrapper around Redis and Redis Modules benchmark tools ( ftsb_redisearch, memtier_benchmark, redis-benchmark, aibench, etc... )."
55
authors = ["filipecosta90 <[email protected]>","Redis Performance Group <[email protected]>"]
66
readme = "README.md"

redisbench_admin/run_remote/remote_db.py

Lines changed: 84 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ def remote_tmpdir_prune(
4848
username,
4949
private_key,
5050
[
51+
"mkdir -p {}".format(temporary_dir),
5152
"rm -rf {}/*.log".format(temporary_dir),
5253
"rm -rf {}/*.config".format(temporary_dir),
5354
"rm -rf {}/*.rdb".format(temporary_dir),
@@ -152,22 +153,24 @@ def remote_db_spin(
152153
redis_conns.append(local_redis_conn)
153154
except redis.exceptions.ConnectionError as e:
154155
logging.error("A error occurred while spinning DB: {}".format(e.__str__()))
155-
remote_file = "{}/{}".format(temporary_dir, logfiles[0])
156+
logfile = logfiles[0]
157+
158+
remote_file = "{}/{}".format(temporary_dir, logfile)
156159
logging.error(
157-
"Trying to fetch DB remote log {} into {}".format(
158-
remote_file, logfiles[0]
159-
)
160+
"Trying to fetch DB remote log {} into {}".format(remote_file, logfile)
160161
)
161-
failed_remote_run_artifact_store(
162-
True,
163-
client_public_ip,
162+
db_error_artifacts(
163+
db_ssh_port,
164164
dirname,
165-
remote_file,
166-
logfiles[0],
165+
full_logfiles,
166+
logname,
167+
private_key,
167168
s3_bucket_name,
168169
s3_bucket_path,
170+
server_public_ip,
171+
temporary_dir,
172+
True,
169173
username,
170-
private_key,
171174
)
172175

173176
if setup_type == "oss-standalone":
@@ -196,22 +199,18 @@ def remote_db_spin(
196199
redis_conns.append(local_redis_conn)
197200
except redis.exceptions.ConnectionError as e:
198201
logging.error("A error occurred while spinning DB: {}".format(e.__str__()))
199-
remote_file = full_logfile
200-
logging.error(
201-
"Trying to fetch DB remote log {} into {}".format(
202-
remote_file, full_logfile
203-
)
204-
)
205-
failed_remote_run_artifact_store(
206-
True,
207-
client_public_ip,
208-
"",
209-
remote_file,
210-
full_logfile[1:],
202+
db_error_artifacts(
203+
db_ssh_port,
204+
dirname,
205+
full_logfiles,
206+
logname,
207+
private_key,
211208
s3_bucket_name,
212209
s3_bucket_path,
210+
server_public_ip,
211+
temporary_dir,
212+
True,
213213
username,
214-
private_key,
215214
)
216215

217216
if cluster_enabled:
@@ -314,6 +313,19 @@ def remote_db_spin(
314313
logging.info("Redis available")
315314
else:
316315
logging.error("Remote redis is not available")
316+
db_error_artifacts(
317+
db_ssh_port,
318+
dirname,
319+
full_logfiles,
320+
logname,
321+
private_key,
322+
s3_bucket_name,
323+
s3_bucket_path,
324+
server_public_ip,
325+
temporary_dir,
326+
True,
327+
username,
328+
)
317329
raise Exception("Remote redis is not available. Aborting...")
318330
dataset_load_duration_seconds = (
319331
dataset_load_end_time - dataset_load_start_time
@@ -338,3 +350,52 @@ def remote_db_spin(
338350
server_plaintext_port,
339351
ssh_tunnel,
340352
)
353+
354+
355+
def db_error_artifacts(
356+
db_ssh_port,
357+
dirname,
358+
full_logfiles,
359+
logname,
360+
private_key,
361+
s3_bucket_name,
362+
s3_bucket_path,
363+
server_public_ip,
364+
temporary_dir,
365+
upload_s3,
366+
username,
367+
):
368+
local_zipfile = "{}.zip".format(logname)
369+
remote_zipfile = "/home/{}/{}".format(username, local_zipfile)
370+
execute_remote_commands(
371+
server_public_ip,
372+
username,
373+
private_key,
374+
[
375+
"zip -r {} {}".format(remote_zipfile, temporary_dir),
376+
],
377+
db_ssh_port,
378+
)
379+
failed_remote_run_artifact_store(
380+
upload_s3,
381+
server_public_ip,
382+
dirname,
383+
remote_zipfile,
384+
local_zipfile,
385+
s3_bucket_name,
386+
s3_bucket_path,
387+
username,
388+
private_key,
389+
)
390+
if len(full_logfiles) > 0:
391+
failed_remote_run_artifact_store(
392+
upload_s3,
393+
server_public_ip,
394+
dirname,
395+
full_logfiles[0],
396+
logname,
397+
s3_bucket_name,
398+
s3_bucket_path,
399+
username,
400+
private_key,
401+
)

redisbench_admin/run_remote/remote_failures.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,8 @@ def failed_remote_run_artifact_store(
4444
)
4545
)
4646
artifacts = [local_file_fullpath]
47-
upload_artifacts_to_s3(artifacts, s3_bucket_name, s3_bucket_path)
47+
artifacts_map = upload_artifacts_to_s3(
48+
artifacts, s3_bucket_name, s3_bucket_path
49+
)
50+
for artifact_name, url in artifacts_map.items():
51+
logging.info("Artifact: {}. URL: {}".format(artifact_name, url))

0 commit comments

Comments
 (0)