1
0
Fork 0
mirror of https://github.com/containers/ansible-podman-collections.git synced 2026-05-01 21:38:57 +00:00

Fix slirp4netns options idempotency

Fix #184
This commit is contained in:
Sagi Shnaidman 2021-02-10 20:56:19 +02:00 committed by Sergey
parent 0bdaa4a78f
commit 2b073c6e89
2 changed files with 78 additions and 0 deletions

View file

@ -961,6 +961,13 @@ class PodmanContainerDiff:
net_mode_before = self.info['hostconfig']['networkmode']
net_mode_after = ''
before = list(self.info['networksettings'].get('networks', {}))
# Special case for options for slirp4netns rootless networking from v2
if net_mode_before == 'slirp4netns' and 'createcommand' in self.info['config']:
cr_com = self.info['config']['createcommand']
if '--network' in cr_com:
cr_net = cr_com[cr_com.index('--network') + 1].lower()
if 'slirp4netns:' in cr_net:
before = [cr_net]
after = self.params['network'] or []
# If container is in pod and no networks are provided
if not self.module_params['network'] and self.params['pod']:

View file

@ -95,6 +95,77 @@
that:
- info5 is changed
- name: Run container with slirp4netns options
containers.podman.podman_container:
name: rootlessnet
image: "{{ idem_image }}"
command: 1h
state: present
network:
- slirp4netns:allow_host_loopback=true,cidr=10.0.3.0/24
register: info6
- name: Check info with slirp4netns options
assert:
that:
- info6 is changed
- name: Run container with slirp4netns options - again
containers.podman.podman_container:
name: rootlessnet
image: "{{ idem_image }}"
command: 1h
state: present
network:
- slirp4netns:allow_host_loopback=true,cidr=10.0.3.0/24
register: info7
- name: Check info with slirp4netns options - again
assert:
that:
- info7 is not changed
- name: Run container with different slirp4netns options
containers.podman.podman_container:
name: rootlessnet
image: "{{ idem_image }}"
command: 1h
state: present
network:
- slirp4netns:allow_host_loopback=true,cidr=10.0.4.0/24
register: info8
- name: Check info with different slirp4netns options
assert:
that:
- info8 is changed
- name: Run container without options
containers.podman.podman_container:
name: rootlessnet
image: "{{ idem_image }}"
command: 1h
state: present
register: info9
- name: Check info without options
assert:
that:
- info9 is changed
- name: Run container without options - again
containers.podman.podman_container:
name: rootlessnet
image: "{{ idem_image }}"
command: 1h
state: present
register: info10
- name: Check info without options - again
assert:
that:
- info10 is not changed
always:
- name: Delete all pods leftovers from tests