From 0ae6baac3d673da1d1d545f2e971152fc2b6a8d3 Mon Sep 17 00:00:00 2001 From: sedrubal Date: Sun, 30 Jul 2023 20:59:13 +0200 Subject: [PATCH] Fix idempotency for RestartPolicy when MaximumRetryCount > 0 (#607) Before this change, this task: ```ansible - containers.podman.podman_container: # ... restart_policy: on-failure:3 # ... ``` always caused this diff: ```diff --- before +++ after @@ -1 +1 @@ -restart_policy - on-failure +restart_policy - on-failure:3 ``` Signed-off-by: Sebastian Endres Co-authored-by: Sebastian Endres --- plugins/module_utils/podman/podman_container_lib.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/plugins/module_utils/podman/podman_container_lib.py b/plugins/module_utils/podman/podman_container_lib.py index 1ba28f4c..4a88bf3c 100644 --- a/plugins/module_utils/podman/podman_container_lib.py +++ b/plugins/module_utils/podman/podman_container_lib.py @@ -1166,7 +1166,15 @@ def diffparam_read_only(self): def diffparam_restart_policy(self): before = self.info['hostconfig']['restartpolicy']['name'] + before_max_count = int(self.info['hostconfig']['restartpolicy'].get('maximumretrycount', 0)) after = self.params['restart_policy'] or "" + if ':' in after: + after, after_max_count = after.rsplit(':', 1) + after_max_count = int(after_max_count) + else: + after_max_count = 0 + before = "%s:%i" % (before, before_max_count) + after = "%s:%i" % (after, after_max_count) return self._diff_update_and_compare('restart_policy', before, after) def diffparam_rm(self):