aix network facts: Separate out the uname call to reduce total calls (#18288)
* aix network facts: Separate out the uname call to reduce total calls * Remove duplicate check Fixes #11289
This commit is contained in:
parent
c16a88cac4
commit
333f6d447b
1 changed files with 41 additions and 33 deletions
|
@ -2837,6 +2837,14 @@ class AIXNetwork(GenericBsdIfconfigNetwork):
|
||||||
all_ipv4_addresses = [],
|
all_ipv4_addresses = [],
|
||||||
all_ipv6_addresses = [],
|
all_ipv6_addresses = [],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
uname_rc = None
|
||||||
|
uname_out = None
|
||||||
|
uname_err = None
|
||||||
|
uname_path = self.module.get_bin_path('uname')
|
||||||
|
if uname_path:
|
||||||
|
uname_rc, uname_out, uname_err = self.module.run_command([uname_path, '-W'])
|
||||||
|
|
||||||
rc, out, err = self.module.run_command([ifconfig_path, ifconfig_options])
|
rc, out, err = self.module.run_command([ifconfig_path, ifconfig_options])
|
||||||
|
|
||||||
for line in out.splitlines():
|
for line in out.splitlines():
|
||||||
|
@ -2866,40 +2874,40 @@ class AIXNetwork(GenericBsdIfconfigNetwork):
|
||||||
self.parse_inet6_line(words, current_if, ips)
|
self.parse_inet6_line(words, current_if, ips)
|
||||||
else:
|
else:
|
||||||
self.parse_unknown_line(words, current_if, ips)
|
self.parse_unknown_line(words, current_if, ips)
|
||||||
uname_path = self.module.get_bin_path('uname')
|
|
||||||
if uname_path:
|
|
||||||
rc, out, err = self.module.run_command([uname_path, '-W'])
|
|
||||||
# don't bother with wpars it does not work
|
|
||||||
# zero means not in wpar
|
|
||||||
if not rc and out.split()[0] == '0':
|
|
||||||
if current_if['macaddress'] == 'unknown' and re.match('^en', current_if['device']):
|
|
||||||
entstat_path = self.module.get_bin_path('entstat')
|
|
||||||
if entstat_path:
|
|
||||||
rc, out, err = self.module.run_command([entstat_path, current_if['device'] ])
|
|
||||||
if rc != 0:
|
|
||||||
break
|
|
||||||
for line in out.splitlines():
|
|
||||||
if not line:
|
|
||||||
pass
|
|
||||||
buff = re.match('^Hardware Address: (.*)', line)
|
|
||||||
if buff:
|
|
||||||
current_if['macaddress'] = buff.group(1)
|
|
||||||
|
|
||||||
buff = re.match('^Device Type:', line)
|
# don't bother with wpars it does not work
|
||||||
if buff and re.match('.*Ethernet', line):
|
# zero means not in wpar
|
||||||
current_if['type'] = 'ether'
|
if not uname_rc and uname_out.split()[0] == '0':
|
||||||
# device must have mtu attribute in ODM
|
|
||||||
if 'mtu' not in current_if:
|
if current_if['macaddress'] == 'unknown' and re.match('^en', current_if['device']):
|
||||||
lsattr_path = self.module.get_bin_path('lsattr')
|
entstat_path = self.module.get_bin_path('entstat')
|
||||||
if lsattr_path:
|
if entstat_path:
|
||||||
rc, out, err = self.module.run_command([lsattr_path,'-El', current_if['device'] ])
|
rc, out, err = self.module.run_command([entstat_path, current_if['device'] ])
|
||||||
if rc != 0:
|
if rc != 0:
|
||||||
break
|
break
|
||||||
for line in out.splitlines():
|
for line in out.splitlines():
|
||||||
if line:
|
if not line:
|
||||||
words = line.split()
|
pass
|
||||||
if words[0] == 'mtu':
|
buff = re.match('^Hardware Address: (.*)', line)
|
||||||
current_if['mtu'] = words[1]
|
if buff:
|
||||||
|
current_if['macaddress'] = buff.group(1)
|
||||||
|
|
||||||
|
buff = re.match('^Device Type:', line)
|
||||||
|
if buff and re.match('.*Ethernet', line):
|
||||||
|
current_if['type'] = 'ether'
|
||||||
|
|
||||||
|
# device must have mtu attribute in ODM
|
||||||
|
if 'mtu' not in current_if:
|
||||||
|
lsattr_path = self.module.get_bin_path('lsattr')
|
||||||
|
if lsattr_path:
|
||||||
|
rc, out, err = self.module.run_command([lsattr_path,'-El', current_if['device'] ])
|
||||||
|
if rc != 0:
|
||||||
|
break
|
||||||
|
for line in out.splitlines():
|
||||||
|
if line:
|
||||||
|
words = line.split()
|
||||||
|
if words[0] == 'mtu':
|
||||||
|
current_if['mtu'] = words[1]
|
||||||
return interfaces, ips
|
return interfaces, ips
|
||||||
|
|
||||||
# AIX 'ifconfig -a' does not inform about MTU, so remove current_if['mtu'] here
|
# AIX 'ifconfig -a' does not inform about MTU, so remove current_if['mtu'] here
|
||||||
|
|
Loading…
Reference in a new issue