diff --git a/changelogs/fragments/77193-linux-networking-facts-Provide-IPv4-prefix.yml b/changelogs/fragments/77193-linux-networking-facts-Provide-IPv4-prefix.yml new file mode 100644 index 00000000000..9f3adb3a5f8 --- /dev/null +++ b/changelogs/fragments/77193-linux-networking-facts-Provide-IPv4-prefix.yml @@ -0,0 +1,3 @@ +--- +minor_changes: + - facts - report prefix length for IPv4 addresses in Linux network facts. diff --git a/lib/ansible/module_utils/facts/network/linux.py b/lib/ansible/module_utils/facts/network/linux.py index 93965f2d0c0..aae4a0f3a0f 100644 --- a/lib/ansible/module_utils/facts/network/linux.py +++ b/lib/ansible/module_utils/facts/network/linux.py @@ -192,7 +192,9 @@ class LinuxNetwork(Network): interfaces[iface]['ipv4'] = {'address': address, 'broadcast': broadcast, 'netmask': netmask, - 'network': network} + 'network': network, + 'prefix': netmask_length, + } else: if "ipv4_secondaries" not in interfaces[iface]: interfaces[iface]["ipv4_secondaries"] = [] @@ -201,6 +203,7 @@ class LinuxNetwork(Network): 'broadcast': broadcast, 'netmask': netmask, 'network': network, + 'prefix': netmask_length, }) # add this secondary IP to the main device @@ -213,6 +216,7 @@ class LinuxNetwork(Network): 'broadcast': broadcast, 'netmask': netmask, 'network': network, + 'prefix': netmask_length, }) # NOTE: default_ipv4 is ref to outside scope @@ -221,6 +225,7 @@ class LinuxNetwork(Network): default_ipv4['broadcast'] = broadcast default_ipv4['netmask'] = netmask default_ipv4['network'] = network + default_ipv4['prefix'] = netmask_length # NOTE: macaddress is ref from outside scope default_ipv4['macaddress'] = macaddress default_ipv4['mtu'] = interfaces[device]['mtu']