linux facts - return proper broadcast address (#64528)

* linux facts - return proper broadcast address

Check that the value being returned is actually a broadcast address

* Add tests

* Cleanup tests
pull/71004/head
Sam Doran 4 years ago committed by GitHub
parent c4f442ed5a
commit e6bf202738
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

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

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

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

@ -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
Loading…
Cancel
Save