mirror of
https://github.com/containers/ansible-podman-collections.git
synced 2026-05-01 13:28:51 +00:00
Fix uid/gid checks for podman 1.6.4 volumes
And prepare volume tasks for versioned checks
This commit is contained in:
parent
03f578405c
commit
c85718665b
3 changed files with 46 additions and 15 deletions
|
|
@ -234,18 +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']
|
||||
# Gor UID, GID
|
||||
ids = []
|
||||
if self.info['uid']:
|
||||
before += ['uid=%s' % str(self.info['uid'])]
|
||||
if self.info['gid']:
|
||||
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)
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
block:
|
||||
|
||||
- name: Print podman version
|
||||
command: podman version
|
||||
command: "{{ podman_cmd | default('podman') }} version"
|
||||
|
||||
- name: Generate random value for volume name
|
||||
set_fact:
|
||||
|
|
@ -12,10 +12,12 @@
|
|||
containers.podman.podman_volume:
|
||||
name: "{{ volume_name }}"
|
||||
state: absent
|
||||
executable: "{{ podman_cmd | default(omit) }}"
|
||||
|
||||
- name: Get missing volume info
|
||||
containers.podman.podman_volume_info:
|
||||
name: "{{ volume_name }}"
|
||||
executable: "{{ podman_cmd | default(omit) }}"
|
||||
register: info
|
||||
ignore_errors: true
|
||||
|
||||
|
|
@ -27,11 +29,13 @@
|
|||
- name: Create volume
|
||||
containers.podman.podman_volume:
|
||||
name: "{{ volume_name }}"
|
||||
executable: "{{ podman_cmd | default(omit) }}"
|
||||
register: vol
|
||||
|
||||
- name: Get existing volume info
|
||||
containers.podman.podman_volume_info:
|
||||
name: "{{ volume_name }}"
|
||||
executable: "{{ podman_cmd | default(omit) }}"
|
||||
register: info1
|
||||
|
||||
- name: Check info
|
||||
|
|
@ -45,6 +49,7 @@
|
|||
containers.podman.podman_volume:
|
||||
name: "{{ volume_name }}"
|
||||
state: present
|
||||
executable: "{{ podman_cmd | default(omit) }}"
|
||||
register: info2
|
||||
|
||||
- name: Check info
|
||||
|
|
@ -59,6 +64,7 @@
|
|||
label:
|
||||
key: val
|
||||
nokey: noval
|
||||
executable: "{{ podman_cmd | default(omit) }}"
|
||||
register: info3
|
||||
|
||||
- name: Check info
|
||||
|
|
@ -73,6 +79,7 @@
|
|||
label:
|
||||
key: val
|
||||
nokey: noval
|
||||
executable: "{{ podman_cmd | default(omit) }}"
|
||||
register: info4
|
||||
|
||||
- name: Check info
|
||||
|
|
@ -84,6 +91,7 @@
|
|||
containers.podman.podman_volume:
|
||||
name: "{{ volume_name }}"
|
||||
state: present
|
||||
executable: "{{ podman_cmd | default(omit) }}"
|
||||
register: info5
|
||||
|
||||
- name: Check info
|
||||
|
|
@ -98,6 +106,7 @@
|
|||
options:
|
||||
- "device=/dev/something"
|
||||
- "type=ext4"
|
||||
executable: "{{ podman_cmd | default(omit) }}"
|
||||
register: info6
|
||||
|
||||
- name: Check info
|
||||
|
|
@ -112,6 +121,7 @@
|
|||
options:
|
||||
- "device=/dev/something"
|
||||
- "type=ext4"
|
||||
executable: "{{ podman_cmd | default(omit) }}"
|
||||
register: info7
|
||||
|
||||
- name: Check info
|
||||
|
|
@ -123,6 +133,7 @@
|
|||
containers.podman.podman_volume:
|
||||
name: "{{ volume_name }}"
|
||||
state: present
|
||||
executable: "{{ podman_cmd | default(omit) }}"
|
||||
register: info8
|
||||
|
||||
- name: Check info
|
||||
|
|
@ -139,6 +150,7 @@
|
|||
- name: Get existing volume info
|
||||
containers.podman.podman_volume_info:
|
||||
name: "{{ volume_name }}"
|
||||
executable: "{{ podman_cmd | default(omit) }}"
|
||||
register: info10
|
||||
ignore_errors: true
|
||||
|
||||
|
|
@ -154,6 +166,7 @@
|
|||
state: present
|
||||
options:
|
||||
- "o=uid=1001"
|
||||
executable: "{{ podman_cmd | default(omit) }}"
|
||||
register: info11
|
||||
|
||||
- name: Check info
|
||||
|
|
@ -167,6 +180,7 @@
|
|||
state: present
|
||||
options:
|
||||
- "o=uid=1001"
|
||||
executable: "{{ podman_cmd | default(omit) }}"
|
||||
register: info12
|
||||
|
||||
- name: Check info
|
||||
|
|
@ -178,6 +192,7 @@
|
|||
containers.podman.podman_volume:
|
||||
name: "{{ volume_name }}"
|
||||
state: present
|
||||
executable: "{{ podman_cmd | default(omit) }}"
|
||||
register: info13
|
||||
|
||||
- name: Check info
|
||||
|
|
@ -191,6 +206,7 @@
|
|||
state: present
|
||||
options:
|
||||
- "o=gid=1001"
|
||||
executable: "{{ podman_cmd | default(omit) }}"
|
||||
register: info14
|
||||
|
||||
- name: Check info
|
||||
|
|
@ -204,6 +220,7 @@
|
|||
state: present
|
||||
options:
|
||||
- "o=gid=1001"
|
||||
executable: "{{ podman_cmd | default(omit) }}"
|
||||
register: info15
|
||||
|
||||
- name: Check info
|
||||
|
|
@ -215,6 +232,7 @@
|
|||
containers.podman.podman_volume:
|
||||
name: "{{ volume_name }}"
|
||||
state: present
|
||||
executable: "{{ podman_cmd | default(omit) }}"
|
||||
register: info16
|
||||
|
||||
- name: Check info
|
||||
|
|
@ -228,6 +246,7 @@
|
|||
state: present
|
||||
options:
|
||||
- "o=gid=1002,uid=1002"
|
||||
executable: "{{ podman_cmd | default(omit) }}"
|
||||
register: info17
|
||||
|
||||
- name: Check info
|
||||
|
|
@ -242,6 +261,7 @@
|
|||
options:
|
||||
- "o=uid=1002"
|
||||
- "o=gid=1002"
|
||||
executable: "{{ podman_cmd | default(omit) }}"
|
||||
register: info18
|
||||
|
||||
- name: Check info
|
||||
|
|
@ -253,6 +273,7 @@
|
|||
containers.podman.podman_volume:
|
||||
name: "{{ volume_name }}"
|
||||
state: present
|
||||
executable: "{{ podman_cmd | default(omit) }}"
|
||||
register: info19
|
||||
|
||||
- name: Check info
|
||||
|
|
@ -265,3 +286,4 @@
|
|||
containers.podman.podman_volume:
|
||||
name: "{{ volume_name }}"
|
||||
state: absent
|
||||
executable: "{{ podman_cmd | default(omit) }}"
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
block:
|
||||
|
||||
- name: Print podman version
|
||||
command: podman version
|
||||
command: "{{ podman_cmd | default('podman') }} version"
|
||||
|
||||
- name: Generate random value for volume name
|
||||
set_fact:
|
||||
|
|
@ -12,10 +12,12 @@
|
|||
containers.podman.podman_volume:
|
||||
name: "{{ volume_name }}"
|
||||
state: absent
|
||||
executable: "{{ podman_cmd | default(omit) }}"
|
||||
|
||||
- name: Get missing volume info
|
||||
containers.podman.podman_volume_info:
|
||||
name: "{{ volume_name }}"
|
||||
executable: "{{ podman_cmd | default(omit) }}"
|
||||
register: nonexist
|
||||
ignore_errors: true
|
||||
|
||||
|
|
@ -29,17 +31,19 @@
|
|||
containers.podman.podman_volume:
|
||||
name: "{{ volume_name }}"
|
||||
state: present
|
||||
executable: "{{ podman_cmd | default(omit) }}"
|
||||
|
||||
- name: Get existing volume info
|
||||
containers.podman.podman_volume_info:
|
||||
name: "{{ volume_name }}"
|
||||
executable: "{{ podman_cmd | default(omit) }}"
|
||||
register: existing_volume
|
||||
|
||||
- name: Dump podman volume inspect result
|
||||
debug: var=existing_volume
|
||||
|
||||
- name: Comparison with 'podman volume inspect'
|
||||
command: podman volume inspect "{{ volume_name }}"
|
||||
command: "{{ podman_cmd | default('podman') }} volume inspect {{ volume_name }}"
|
||||
register: podman_inspect
|
||||
|
||||
- name: Convert podman inspect output to JSON
|
||||
|
|
@ -50,6 +54,7 @@
|
|||
containers.podman.podman_volume:
|
||||
name: "{{ volume_name }}"
|
||||
state: absent
|
||||
executable: "{{ podman_cmd | default(omit) }}"
|
||||
|
||||
- name: Make checks
|
||||
assert:
|
||||
|
|
@ -63,3 +68,4 @@
|
|||
containers.podman.podman_volume:
|
||||
name: "{{ volume_name }}"
|
||||
state: absent
|
||||
executable: "{{ podman_cmd | default(omit) }}"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue