From 5d7e5c3a5a7f4c25eb26da7a5ad5f8da3123c3b3 Mon Sep 17 00:00:00 2001 From: Lars Kellogg-Stedman Date: Sun, 29 Mar 2020 15:32:57 -0400 Subject: [PATCH] podman_image: only set changed=true if there is a new image with force: true, podman_image would always report changed regardless of whether or not the pull or build operation resulted in a new image. With this commit, check the image digest before and after and only reported changed if the digest is different. --- plugins/modules/podman_image.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/plugins/modules/podman_image.py b/plugins/modules/podman_image.py index 7e9f72d..4d80615 100644 --- a/plugins/modules/podman_image.py +++ b/plugins/modules/podman_image.py @@ -424,20 +424,27 @@ class PodmanImageManager(object): def present(self): image = self.find_image() + if image: + digest_before = image[0].get('Digest', image[0].get('digest')) + else: + digest_before = None + if not image or self.force: if self.path: # Build the image self.results['actions'].append('Built image {image_name} from {path}'.format(image_name=self.image_name, path=self.path)) - self.results['changed'] = True if not self.module.check_mode: self.results['image'] = self.build_image() else: # Pull the image self.results['actions'].append('Pulled image {image_name}'.format(image_name=self.image_name)) - self.results['changed'] = True if not self.module.check_mode: self.results['image'] = self.pull_image() + image = self.find_image() + digest_after = image[0].get('Digest', image[0].get('digest')) + self.results['changed'] = digest_before != digest_after + if self.push: # Push the image if '/' in self.image_name: