From 6ff93e7559ca8d2bfa4b3de6764ea325d6066e4f Mon Sep 17 00:00:00 2001 From: lucas-benedito <55454581+lucas-benedito@users.noreply.github.com> Date: Sun, 22 Jun 2025 10:17:32 +0100 Subject: [PATCH] podman_container_lib: Added checks for volume opts (#941) * podman_container_lib: Added checks for volume opts Changed the diffparam_volume function to include the volume mount opts. Signed-off-by: Lucas Benedito * Add test for volume mount options Signed-off-by: Lucas Benedito --------- Signed-off-by: Lucas Benedito --- .../podman/podman_container_lib.py | 4 +-- .../tasks/idem_volumes.yml | 33 +++++++++++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/plugins/module_utils/podman/podman_container_lib.py b/plugins/module_utils/podman/podman_container_lib.py index 2ecbea6..02f6b12 100644 --- a/plugins/module_utils/podman/podman_container_lib.py +++ b/plugins/module_utils/podman/podman_container_lib.py @@ -1560,12 +1560,12 @@ class PodmanContainerDiff: after = self.params["volume"] if after is not None: after = [ - ":".join([clean_volume(i) for i in v.split(":")[:2]]) + ":".join([clean_volume(i) for i in v.split(":")[:3]]) for v in self.params["volume"] ] if before is not None: before = [ - ":".join([clean_volume(i) for i in v.split(":")[:2]]) for v in before + ":".join([clean_volume(i) for i in v.split(":")[:3]]) for v in before ] if before is None and after is None: return self._diff_update_and_compare("volume", before, after) diff --git a/tests/integration/targets/podman_container_idempotency/tasks/idem_volumes.yml b/tests/integration/targets/podman_container_idempotency/tasks/idem_volumes.yml index 26e7040..563f598 100644 --- a/tests/integration/targets/podman_container_idempotency/tasks/idem_volumes.yml +++ b/tests/integration/targets/podman_container_idempotency/tasks/idem_volumes.yml @@ -349,3 +349,36 @@ - name: check test23 assert: that: test23 is not changed + +- ansible.builtin.file: + path: /tmp/data + state: directory + +- containers.podman.podman_container: + executable: "{{ test_executable | default('podman') }}" + name: test24 + image: alpine + state: present + volumes: + - /tmp/data:/data:z + +- containers.podman.podman_container: + executable: "{{ test_executable | default('podman') }}" + name: test24 + image: alpine + state: present + volumes: + - /tmp/data:/data:U + register: test24 + +- name: Check test24 + assert: + that: + - test24 is changed + - >- + (test24.container['Config']['CreateCommand'] is defined and + '/tmp/data:/data:U' in test24.container['Config']['CreateCommand'] | list) + +- ansible.builtin.file: + path: /tmp/data + state: absent