diff --git a/changelogs/fragments/56954-purefa_pgsnap_handle_exit_correctly.yaml b/changelogs/fragments/56954-purefa_pgsnap_handle_exit_correctly.yaml new file mode 100644 index 00000000000..c46c32a4044 --- /dev/null +++ b/changelogs/fragments/56954-purefa_pgsnap_handle_exit_correctly.yaml @@ -0,0 +1,2 @@ +bugfixes: + - "purefa_pgsnap - handle exit correctly if selected remote volume or snapshot does not exist." diff --git a/lib/ansible/modules/storage/purestorage/purefa_pgsnap.py b/lib/ansible/modules/storage/purestorage/purefa_pgsnap.py index 20420ef2420..34f4a83d2a6 100644 --- a/lib/ansible/modules/storage/purestorage/purefa_pgsnap.py +++ b/lib/ansible/modules/storage/purestorage/purefa_pgsnap.py @@ -235,8 +235,12 @@ def main(): module.fail_json(msg="Selected volume {0} does not exist in the Protection Group".format(module.params['name'])) if ":" in module.params['name']: rvolume = get_rpgsnapshot(module, array) + if rvolume is None: + module.fail_json(msg="Selected restore snapshot {0} does not exist in the Protection Group".format(module.params['restore'])) else: rvolume = get_pgroupvolume(module, array) + if rvolume is None: + module.fail_json(msg="Selected restore volume {0} does not exist in the Protection Group".format(module.params['restore'])) if state == 'copy' and rvolume: restore_pgsnapvolume(module, array) @@ -251,6 +255,8 @@ def main(): elif state == 'absent' and not pgsnap: module.exit_json(changed=False) + module.exit_json(changed=False) + if __name__ == '__main__': main()