[stable-2.10] linux facts - return proper broadcast address (#64528) (#71064)

Check that the value being returned is actually a broadcast address

(cherry picked from commit e6bf202738)
This commit is contained in:
Sam Doran 2020-08-27 14:48:50 -04:00 committed by GitHub
parent 0c32a4f793
commit c39753d7ad
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 28 additions and 1 deletions

View file

@ -0,0 +1,2 @@
bugfixes:
- linux network facts - get the correct value for broadcast address (https://github.com/ansible/ansible/issues/64384)

View file

@ -173,6 +173,7 @@ class LinuxNetwork(Network):
if '/' in words[1]:
address, netmask_length = words[1].split('/')
if len(words) > 3:
if words[2] == 'brd':
broadcast = words[3]
else:
# pointopoint interfaces do not have a prefix

View file

@ -0,0 +1,4 @@
needs/privileged
shippable/posix/group2
skip/freebsd
skip/osx

View file

@ -0,0 +1,2 @@
dependencies:
- prepare_tests

View file

@ -0,0 +1,18 @@
- block:
- name: Add IP to interface
command: ip address add 100.42.42.1/32 dev {{ ansible_facts.default_ipv4.interface }}
ignore_errors: yes
- name: Gather network facts
setup:
gather_subset: network
- name: Ensure broadcast is reported as empty
assert:
that:
- ansible_facts[ansible_facts['default_ipv4']['interface']]['ipv4_secondaries'][0]['broadcast'] == ''
always:
- name: Remove IP from interface
command: ip address delete 100.42.42.1/32 dev {{ ansible_facts.default_ipv4.interface }}
ignore_errors: yes