Adding ethtool info to Ansible interface facts (#16513)

This will give the user details on how the interfaces are configured.
They user could query to see if TSO, GSO, etc are enbaled
on an interface.
pull/16822/head
Joe (rook) 8 years ago committed by Brian Coca
parent 7fdbfd490e
commit 2219339dd5

@ -2277,6 +2277,25 @@ class LinuxNetwork(Network):
parse_ip_output(primary_data) parse_ip_output(primary_data)
parse_ip_output(secondary_data, secondary=True) parse_ip_output(secondary_data, secondary=True)
def parse_ethtool_output(device,output):
interfaces[device]['features'] = {}
for line in output.strip().split('\n'):
if not line:
continue
if line.endswith(":") :
continue
key,value = line.split(": ")
if not value :
continue
interfaces[device]['features'][key.strip().replace('-','_')] = value.strip()
ethtool_path = self.module.get_bin_path("ethtool")
if ethtool_path:
args = [ethtool_path, '-k', device]
rc, stdout, stderr = self.module.run_command(args)
ethtool_data = stdout
parse_ethtool_output(device,ethtool_data)
# replace : by _ in interface name since they are hard to use in template # replace : by _ in interface name since they are hard to use in template
new_interfaces = {} new_interfaces = {}
for i in interfaces: for i in interfaces:

Loading…
Cancel
Save