1
0
Fork 0
mirror of https://github.com/containers/ansible-podman-collections.git synced 2026-02-04 07:11:49 +00:00

Remove idempotency for volume UID/GID (#272)

Because of difficulty with UID/GID detection in various podman
versions for volumes, don't check idempotency for volume UID/GID.
If need to recreate use "recreate" option as "true".
This commit is contained in:
Sergey 2021-07-07 01:51:12 +03:00 committed by GitHub
parent 559c4e2ad6
commit 06cc4490da
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 135 deletions

View file

@ -234,21 +234,21 @@ class PodmanVolumeDiff:
before = self.info['options'] if 'options' in self.info else {}
before = ["=".join((k, v)) for k, v in before.items()]
after = self.params['options']
# For UID, GID
if 'uid' in self.info or 'gid' in self.info:
ids = []
if 'uid' in self.info and self.info['uid']:
before = [i for i in before if 'uid' not in i]
before += ['uid=%s' % str(self.info['uid'])]
if 'gid' in self.info and self.info['gid']:
before = [i for i in before if 'gid' not in i]
before += ['gid=%s' % str(self.info['gid'])]
if self.params['options']:
for opt in self.params['options']:
if 'uid=' in opt or 'gid=' in opt:
ids += opt.split("o=")[1].split(",")
after = [i for i in after if 'gid' not in i and 'uid' not in i]
after += ids
# # For UID, GID
# if 'uid' in self.info or 'gid' in self.info:
# ids = []
# if 'uid' in self.info and self.info['uid']:
# before = [i for i in before if 'uid' not in i]
# before += ['uid=%s' % str(self.info['uid'])]
# if 'gid' in self.info and self.info['gid']:
# before = [i for i in before if 'gid' not in i]
# before += ['gid=%s' % str(self.info['gid'])]
# if self.params['options']:
# for opt in self.params['options']:
# if 'uid=' in opt or 'gid=' in opt:
# ids += opt.split("o=")[1].split(",")
# after = [i for i in after if 'gid' not in i and 'uid' not in i]
# after += ids
before, after = sorted(list(set(before))), sorted(list(set(after)))
return self._diff_update_and_compare('options', before, after)

View file

@ -160,126 +160,6 @@
- info10 is failed
- delete.volume == {}
- name: Create volume with UID option
containers.podman.podman_volume:
name: "{{ volume_name }}"
state: present
options:
- "o=uid=1001"
executable: "{{ podman_cmd | default(omit) }}"
register: info11
- name: Check info
assert:
that:
- info11 is changed
- name: Create volume with UID option - again
containers.podman.podman_volume:
name: "{{ volume_name }}"
state: present
options:
- "o=uid=1001"
executable: "{{ podman_cmd | default(omit) }}"
register: info12
- name: Check info
assert:
that:
- info12 is not changed
- name: Create volume with UID option - default
containers.podman.podman_volume:
name: "{{ volume_name }}"
state: present
executable: "{{ podman_cmd | default(omit) }}"
register: info13
- name: Check info
assert:
that:
- info13 is changed
- name: Create volume with GID option
containers.podman.podman_volume:
name: "{{ volume_name }}"
state: present
options:
- "o=gid=1001"
executable: "{{ podman_cmd | default(omit) }}"
register: info14
- name: Check info
assert:
that:
- info14 is changed
- name: Create volume with GID option - again
containers.podman.podman_volume:
name: "{{ volume_name }}"
state: present
options:
- "o=gid=1001"
executable: "{{ podman_cmd | default(omit) }}"
register: info15
- name: Check info
assert:
that:
- info15 is not changed
- name: Create volume with GID option - default
containers.podman.podman_volume:
name: "{{ volume_name }}"
state: present
executable: "{{ podman_cmd | default(omit) }}"
register: info16
- name: Check info
assert:
that:
- info16 is changed
- name: Create volume with GID and UID option
containers.podman.podman_volume:
name: "{{ volume_name }}"
state: present
options:
- "o=gid=1002,uid=1002"
executable: "{{ podman_cmd | default(omit) }}"
register: info17
- name: Check info
assert:
that:
- info17 is changed
- name: Create volume with GID and UID option - again
containers.podman.podman_volume:
name: "{{ volume_name }}"
state: present
options:
- "o=uid=1002"
- "o=gid=1002"
executable: "{{ podman_cmd | default(omit) }}"
register: info18
- name: Check info
assert:
that:
- info18 is not changed
- name: Create volume with GID and UID option - default
containers.podman.podman_volume:
name: "{{ volume_name }}"
state: present
executable: "{{ podman_cmd | default(omit) }}"
register: info19
- name: Check info
assert:
that:
- info19 is changed
always:
- name: Make sure volume doesn't exist