Skip to content

Commit 4132376

Browse files
authored
Fix dzip command failure during backup creation (#2355)
* fix command failure in backup * adding changelogs * test case changes
1 parent 73bc136 commit 4132376

File tree

3 files changed

+37
-31
lines changed

3 files changed

+37
-31
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
trivial:
2+
- zos_backup_restore - Fixes the command failure which is happening while generating
3+
the command that is passed to ZOAU.
4+
(https://github.com/ansible-collections/ibm_zos_core/pull/2355).

plugins/modules/zos_backup_restore.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1005,10 +1005,10 @@ def to_dzip_args(**kwargs):
10051005
if kwargs.get("overwrite"):
10061006
zoau_args["overwrite"] = kwargs.get("overwrite")
10071007

1008-
if kwargs.get("compress"):
1008+
if kwargs.get("compress") is not None:
10091009
zoau_args["compress"] = kwargs.get("compress")
10101010

1011-
if kwargs.get("terse"):
1011+
if kwargs.get("terse") is not None:
10121012
zoau_args["terse"] = kwargs.get("terse")
10131013

10141014
if kwargs.get("sms_storage_class"):

tests/functional/modules/test_zos_backup_restore.py

Lines changed: 31 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -257,8 +257,8 @@ def test_backup_of_data_set(ansible_zos_module, backup_name, overwrite, recover)
257257
@pytest.mark.parametrize(
258258
"backup_name, terse",
259259
[
260+
#Only testing with Terse False as terse True is implicitly tested in all other test cases.
260261
("DATA_SET", False),
261-
("DATA_SET", True),
262262
],
263263
)
264264
def test_backup_and_restore_of_data_set_with_compression_and_terse(ansible_zos_module, backup_name, terse):
@@ -328,36 +328,38 @@ def test_backup_and_restore_of_data_set_with_compression_and_terse(ansible_zos_m
328328

329329
if size_uncompressed > 0:
330330
assert size_compressed > size_uncompressed, \
331-
f"Compressed size ({size_compressed}) is not smaller ({size_uncompressed})"
331+
f"Compressed size ({size_compressed}) is not smaller ({size_uncompressed})"\
332+
f"Dataset size is ({size_dataset})"
332333

333-
#deleting dataset to test the restore.
334-
delete_data_set_or_file(hosts, data_set_name)
334+
# Restore testing is blocked due to ZOAU ISSUE NAZARE-11000
335335

336-
#testing restoration of files
337-
hosts.all.zos_backup_restore(
338-
operation="restore",
339-
backup_name=backup_name_compressed
340-
)
341-
cmd_result_restored = hosts.all.shell(f"dls -j -s {data_set_name}")
342-
for result in cmd_result_restored.contacted.values():
343-
output_restored = json.loads(result.get("stdout"))
344-
size_restored_compressed = int(output_restored["data"]["datasets"][0]["used"])
345-
346-
#deleting dataset to test the restore
347-
delete_data_set_or_file(hosts, data_set_name)
348-
349-
hosts.all.zos_backup_restore(
350-
operation="restore",
351-
backup_name=backup_name_uncompressed,
352-
overwrite=True,
353-
)
354-
cmd_result_restored = hosts.all.shell(f"dls -j -s {data_set_name}")
355-
for result in cmd_result_restored.contacted.values():
356-
output_restored = json.loads(result.get("stdout"))
357-
size_restored_uncompressed = int(output_restored["data"]["datasets"][0]["used"])
358-
if size_dataset > 0:
359-
assert (size_dataset == size_restored_compressed == size_restored_uncompressed), \
360-
f"Restoration of {data_set_name} was not done properly. Unable to restore datasets."
336+
#deleting dataset to test the restore.
337+
# delete_data_set_or_file(hosts, data_set_name)
338+
339+
# hosts.all.zos_backup_restore(
340+
# operation="restore",
341+
# backup_name=backup_name_compressed
342+
# )
343+
# cmd_result_restored = hosts.all.shell(f"dls -j -s {data_set_name}")
344+
# for result in cmd_result_restored.contacted.values():
345+
# output_restored = json.loads(result.get("stdout"))
346+
# size_restored_compressed = int(output_restored["data"]["datasets"][0]["used"])
347+
348+
# #deleting dataset to test the restore
349+
# delete_data_set_or_file(hosts, data_set_name)
350+
351+
# hosts.all.zos_backup_restore(
352+
# operation="restore",
353+
# backup_name=backup_name_uncompressed,
354+
# overwrite=True,
355+
# )
356+
# cmd_result_restored = hosts.all.shell(f"dls -j -s {data_set_name}")
357+
# for result in cmd_result_restored.contacted.values():
358+
# output_restored = json.loads(result.get("stdout"))
359+
# size_restored_uncompressed = int(output_restored["data"]["datasets"][0]["used"])
360+
# if size_dataset > 0:
361+
# assert (size_dataset == size_restored_compressed == size_restored_uncompressed), \
362+
# f"Restoration of {data_set_name} was not done properly. Unable to restore datasets."
361363

362364
finally:
363365
delete_data_set_or_file(hosts, data_set_name)

0 commit comments

Comments
 (0)