@@ -713,3 +713,85 @@ def test_restore_of_data_set_when_volume_does_not_exist(ansible_zos_module):
713713# finally:
714714# delete_data_set_or_file(hosts, data_set_name)
715715# delete_data_set_or_file(hosts, DATA_SET_BACKUP_LOCATION)
716+
717+
718+ @pytest .mark .parametrize ("dstype" , ["seq" , "pds" , "pdse" ])
719+ def test_backup_gds (ansible_zos_module , dstype ):
720+ try :
721+ hosts = ansible_zos_module
722+ # We need to replace hyphens because of NAZARE-10614: dzip fails archiving data set names with '-'
723+ data_set_name = get_tmp_ds_name (symbols = True ).replace ("-" , "" )
724+ backup_dest = get_tmp_ds_name (symbols = True ).replace ("-" , "" )
725+ results = hosts .all .zos_data_set (name = data_set_name , state = "present" , type = "gdg" , limit = 3 )
726+ for result in results .contacted .values ():
727+ assert result .get ("changed" ) is True
728+ assert result .get ("module_stderr" ) is None
729+ results = hosts .all .zos_data_set (name = f"{ data_set_name } (+1)" , state = "present" , type = dstype )
730+ for result in results .contacted .values ():
731+ assert result .get ("changed" ) is True
732+ assert result .get ("module_stderr" ) is None
733+ results = hosts .all .zos_data_set (name = f"{ data_set_name } (+1)" , state = "present" , type = dstype )
734+ for result in results .contacted .values ():
735+ assert result .get ("changed" ) is True
736+ assert result .get ("module_stderr" ) is None
737+ results = hosts .all .zos_backup_restore (
738+ operation = "backup" ,
739+ data_sets = dict (include = [f"{ data_set_name } (-1)" , f"{ data_set_name } (0)" ]),
740+ backup_name = backup_dest ,
741+ )
742+ for result in results .contacted .values ():
743+ assert result .get ("changed" ) is True
744+ assert result .get ("module_stderr" ) is None
745+ finally :
746+ hosts .all .shell (cmd = f"drm ANSIBLE.* " )
747+
748+
749+ @pytest .mark .parametrize ("dstype" , ["seq" , "pds" , "pdse" ])
750+ def test_backup_into_gds (ansible_zos_module , dstype ):
751+ """This test will create a dataset and backup it into a new generation of
752+ backup data sets.
753+ """
754+ try :
755+ hosts = ansible_zos_module
756+ # We need to replace hyphens because of NAZARE-10614: dzip fails archiving data set names with '-'
757+ data_set_name = get_tmp_ds_name (symbols = True ).replace ("-" , "" )
758+ ds_name = get_tmp_ds_name (symbols = True ).replace ("-" , "" )
759+ results = hosts .all .zos_data_set (name = data_set_name , state = "present" , type = "gdg" , limit = 3 )
760+ for result in results .contacted .values ():
761+ assert result .get ("changed" ) is True
762+ assert result .get ("module_stderr" ) is None
763+ results = hosts .all .zos_data_set (name = f"{ data_set_name } (+1)" , state = "present" , type = dstype )
764+ for result in results .contacted .values ():
765+ assert result .get ("changed" ) is True
766+ assert result .get ("module_stderr" ) is None
767+ results = hosts .all .zos_data_set (name = ds_name , state = "present" , type = dstype )
768+ for result in results .contacted .values ():
769+ assert result .get ("changed" ) is True
770+ assert result .get ("module_stderr" ) is None
771+ ds_to_write = f"{ ds_name } (MEM)" if dstype in ['pds' , 'pdse' ] else ds_name
772+ results = hosts .all .shell (cmd = f"decho 'test line' \" { ds_to_write } \" " )
773+ for result in results .contacted .values ():
774+ assert result .get ("changed" ) is True
775+ assert result .get ("module_stderr" ) is None
776+ results = hosts .all .zos_backup_restore (
777+ operation = "backup" ,
778+ data_sets = dict (include = [ds_name ]),
779+ backup_name = f"{ data_set_name } .G0002V00" ,
780+ )
781+ for result in results .contacted .values ():
782+ assert result .get ("changed" ) is True
783+ assert result .get ("module_stderr" ) is None
784+ results = hosts .all .shell (cmd = f"drm \" { ds_name } \" " )
785+ for result in results .contacted .values ():
786+ assert result .get ("changed" ) is True
787+ assert result .get ("module_stderr" ) is None
788+ results = hosts .all .zos_backup_restore (
789+ operation = "restore" ,
790+ backup_name = f"{ data_set_name } (0)" ,
791+ )
792+ for result in results .contacted .values ():
793+ assert result .get ("changed" ) is True
794+ assert result .get ("module_stderr" ) is None
795+ finally :
796+ hosts .all .shell (cmd = f"drm ANSIBLE.* " )
797+
0 commit comments