Skip to content

Commit acca8b0

Browse files
authored
support check mode (#186)
1 parent 9e903e5 commit acca8b0

File tree

1 file changed

+26
-8
lines changed

1 file changed

+26
-8
lines changed

plugins/module_utils/checkpoint.py

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -608,6 +608,10 @@ def handle_delete(
608608
):
609609
# else equals_code is 404 and no need to delete because he doesn't exist
610610
if equals_code == 200:
611+
if module.check_mode:
612+
result["changed"] = True
613+
result["message"] = "This would delete the object"
614+
return
611615
payload_for_delete = extract_payload_with_some_params(
612616
payload, delete_params
613617
)
@@ -621,7 +625,10 @@ def handle_delete(
621625
True,
622626
)
623627
result["changed"] = True
624-
628+
else:
629+
if module.check_mode:
630+
result["changed"] = False
631+
result["message"] = "The object does not exist, no deletion would occur"
625632

626633
# handle the call and set the result with 'changed' and the response
627634
def handle_call_and_set_result(
@@ -641,20 +648,19 @@ def api_call(module, api_call_object):
641648
version = get_version(module)
642649

643650
result = {"changed": False}
644-
if module.check_mode:
645-
return result
646651

647652
payload_for_equals = {"type": api_call_object, "params": payload}
648653
equals_code, equals_response = send_request(
649654
connection, version, "equals", payload_for_equals
650655
)
651-
result["checkpoint_session_uid"] = connection.get_session_uid()
652656
handle_equals_failure(module, equals_code, equals_response)
653657

654658
if module.params["state"] == "present":
655659
if equals_code == 200:
656660
# else objects are equals and there is no need for set request
657661
if not equals_response["equals"]:
662+
if module.check_mode:
663+
return {"changed": True, "message": "This would edit the object"}
658664
build_payload(
659665
api_call_object, payload, remove_from_set_payload
660666
)
@@ -666,7 +672,12 @@ def api_call(module, api_call_object):
666672
module,
667673
result,
668674
)
675+
else:
676+
if module.check_mode:
677+
return {"changed": False, "message": "Object exists with desired configuration"}
669678
elif equals_code == 404:
679+
if module.check_mode:
680+
return {"changed": True, "message": "This would create the object"}
670681
build_payload(api_call_object, payload, remove_from_add_payload)
671682
handle_call_and_set_result(
672683
connection,
@@ -687,7 +698,8 @@ def api_call(module, api_call_object):
687698
module,
688699
result,
689700
)
690-
701+
if not module.check_mode:
702+
result["checkpoint_session_uid"] = connection.get_session_uid()
691703
return result
692704

693705

@@ -1332,8 +1344,6 @@ def api_call_for_rule(module, api_call_object):
13321344
version = get_version(module)
13331345

13341346
result = {"changed": False}
1335-
if module.check_mode:
1336-
return result
13371347

13381348
if is_access_rule:
13391349
copy_payload_without_some_params = extract_payload_without_some_params(
@@ -1366,6 +1376,8 @@ def api_call_for_rule(module, api_call_object):
13661376
equals_response["equals"] = False
13671377
# else objects are equals and there is no need for set request
13681378
if not equals_response["equals"]:
1379+
if module.check_mode:
1380+
return {"changed": True, "message": "This would edit the object"}
13691381
# if user insert param 'position' and needed to use the 'set' command, change the param name to 'new-position'
13701382
if "position" in payload:
13711383
payload["new-position"] = payload["position"]
@@ -1380,7 +1392,12 @@ def api_call_for_rule(module, api_call_object):
13801392
module,
13811393
result,
13821394
)
1395+
else:
1396+
if module.check_mode:
1397+
return {"changed": False, "message": "Object exists with desired configuration"}
13831398
elif equals_code == 404:
1399+
if module.check_mode:
1400+
return {"changed": True, "message": "This would create the object"}
13841401
if "search-entire-rulebase" in payload:
13851402
del payload["search-entire-rulebase"]
13861403
handle_call_and_set_result(
@@ -1402,7 +1419,8 @@ def api_call_for_rule(module, api_call_object):
14021419
module,
14031420
result,
14041421
)
1405-
1422+
if not module.check_mode:
1423+
result["checkpoint_session_uid"] = connection.get_session_uid()
14061424
return result
14071425

14081426

0 commit comments

Comments
 (0)