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
This commit is contained in:
Sam Doran 2020-07-30 13:40:14 -04:00 committed by GitHub
parent c4f442ed5a
commit e6bf202738
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,7 +173,8 @@ class LinuxNetwork(Network):
if '/' in words[1]:
address, netmask_length = words[1].split('/')
if len(words) > 3:
broadcast = words[3]
if words[2] == 'brd':
broadcast = words[3]
else:
# pointopoint interfaces do not have a prefix
address = words[1]

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