Skip to content

Commit

Permalink
ceph_pool: add idempotency to absent state
Browse files Browse the repository at this point in the history
When using the "absent" state on a non existing pool then the ceph_pool
module will fail and return a python traceback.

Instead we should check if the pool exit or not and execute the pool
deletion according to the result.
The state changed is now set when the pool is actually deleted.

This also disable add_file_common_args because we don't manipulate
files with this module.

Signed-off-by: Dimitri Savineau <dsavinea@redhat.com>
(cherry picked from commit 047a3e2)
  • Loading branch information
dsavineau committed Sep 25, 2020
1 parent 8d49d97 commit 1fa1b5b
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions library/ceph_pool.py
Original file line number Diff line number Diff line change
Expand Up @@ -475,7 +475,6 @@ def run_module():
module = AnsibleModule(
argument_spec=module_args,
supports_check_mode=True,
add_file_common_args=True,
)

# Gather module parameters in variables
Expand Down Expand Up @@ -597,7 +596,13 @@ def run_module():
out = "Couldn't list pool(s) present on the cluster"

elif state == "absent":
rc, cmd, out, err = exec_commands(module, remove_pool(cluster, name, user, user_key, container_image=container_image))
rc, cmd, out, err = exec_commands(module, check_pool_exist(cluster, name, user, user_key, container_image=container_image))
if rc == 0:
rc, cmd, out, err = exec_commands(module, remove_pool(cluster, name, user, user_key, container_image=container_image))
changed = True
else:
rc = 0
out = "Skipped, since pool {} doesn't exist".format(name)


exit_module(module=module, out=out, rc=rc, cmd=cmd, err=err, startd=startd, changed=changed)
Expand Down

0 comments on commit 1fa1b5b

Please sign in to comment.