diff --git a/plugins/modules/podman_network.py b/plugins/modules/podman_network.py index 830ffc4..5978dde 100644 --- a/plugins/modules/podman_network.py +++ b/plugins/modules/podman_network.py @@ -163,6 +163,11 @@ network: import json # noqa: F402 from distutils.version import LooseVersion # noqa: F402 import os # noqa: F402 +try: + import ipaddress + HAS_IP_ADDRESS_MODULE = True +except ImportError: + HAS_IP_ADDRESS_MODULE = False from ansible.module_utils.basic import AnsibleModule # noqa: F402 from ansible.module_utils._text import to_bytes, to_native # noqa: F402 @@ -372,6 +377,8 @@ class PodmanNetworkDiff: after = before if self.params['subnet'] is not None: after = self.params['subnet'] + if HAS_IP_ADDRESS_MODULE: + after = ipaddress.ip_network(after).compressed return self._diff_update_and_compare('subnet', before, after) def diffparam_macvlan(self): diff --git a/tests/integration/targets/podman_network/tasks/main.yml b/tests/integration/targets/podman_network/tasks/main.yml index 2cc3f64..8a67c6c 100644 --- a/tests/integration/targets/podman_network/tasks/main.yml +++ b/tests/integration/targets/podman_network/tasks/main.yml @@ -230,30 +230,51 @@ - name: Create network containers.podman.podman_network: name: "{{ network_name }}" - register: net + register: net1 - name: Get existing network info containers.podman.podman_network_info: name: "{{ network_name }}" - register: info1 + register: info15 - name: Check info assert: that: - - info1 | length > 1 - - info1.networks.0.name == network_name - - net is changed + - info15 | length > 1 + - info15.networks.0.name == network_name + - net1 is changed - name: Create network again containers.podman.podman_network: name: "{{ network_name }}" state: present - register: info2 + register: info16 - name: Check info assert: that: - - info2 is not changed + - info16 is not changed + + - name: Create network with IPv6 'exploded' + containers.podman.podman_network: + name: "{{ network_name }}" + ipv6: yes + subnet: fd4f:552c:830f:0000::/64 + state: present + + - name: Create network with IPv6 'exploded' again + containers.podman.podman_network: + name: "{{ network_name }}" + ipv6: yes + subnet: fd4f:552c:830f:0000::/64 + state: present + register: info17 + + - name: Check info + assert: + that: + - info17 is not changed + always: - name: Cleanup