Addressed FIXME's in hurd.py (Extracted functionality and exit early) (#69226)

* Addressed FIXME's in hurd.py

* Added changelog fragment

* Fix function order

* Added self reference

* Changed to 'is None'
pull/69337/head
Chris Holland 5 years ago committed by GitHub
parent 8d43d79191
commit 6d8cfcf539
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -0,0 +1,2 @@
bugfixes:
- hurd - Address FIXMEs. Extract functionality and exit early.

@ -29,6 +29,38 @@ class HurdPfinetNetwork(Network):
platform = 'GNU' platform = 'GNU'
_socket_dir = '/servers/socket/' _socket_dir = '/servers/socket/'
def assign_network_facts(self, network_facts, fsysopts_path, socket_path):
rc, out, err = self.module.run_command([fsysopts_path, '-L', socket_path])
# FIXME: build up a interfaces datastructure, then assign into network_facts
network_facts['interfaces'] = []
for i in out.split():
if '=' in i and i.startswith('--'):
k, v = i.split('=', 1)
# remove '--'
k = k[2:]
if k == 'interface':
# remove /dev/ from /dev/eth0
v = v[5:]
network_facts['interfaces'].append(v)
network_facts[v] = {
'active': True,
'device': v,
'ipv4': {},
'ipv6': [],
}
current_if = v
elif k == 'address':
network_facts[current_if]['ipv4']['address'] = v
elif k == 'netmask':
network_facts[current_if]['ipv4']['netmask'] = v
elif k == 'address6':
address, prefix = v.split('/')
network_facts[current_if]['ipv6'].append({
'address': address,
'prefix': prefix,
})
return network_facts
def populate(self, collected_facts=None): def populate(self, collected_facts=None):
network_facts = {} network_facts = {}
@ -44,41 +76,10 @@ class HurdPfinetNetwork(Network):
socket_path = link socket_path = link
break break
# FIXME: extract to method if socket_path is None:
# FIXME: exit early on falsey socket_path and un-indent whole block return network_facts
if socket_path:
rc, out, err = self.module.run_command([fsysopts_path, '-L', socket_path])
# FIXME: build up a interfaces datastructure, then assign into network_facts
network_facts['interfaces'] = []
for i in out.split():
if '=' in i and i.startswith('--'):
k, v = i.split('=', 1)
# remove '--'
k = k[2:]
if k == 'interface':
# remove /dev/ from /dev/eth0
v = v[5:]
network_facts['interfaces'].append(v)
network_facts[v] = {
'active': True,
'device': v,
'ipv4': {},
'ipv6': [],
}
current_if = v
elif k == 'address':
network_facts[current_if]['ipv4']['address'] = v
elif k == 'netmask':
network_facts[current_if]['ipv4']['netmask'] = v
elif k == 'address6':
address, prefix = v.split('/')
network_facts[current_if]['ipv6'].append({
'address': address,
'prefix': prefix,
})
return network_facts return self.assign_network_facts(network_facts, fsysopts_path, socket_path)
class HurdNetworkCollector(NetworkCollector): class HurdNetworkCollector(NetworkCollector):

Loading…
Cancel
Save