def getInterfaces()

in vmassist/linux/vmassist.py [0:0]


def getInterfaces():
  # Get all interfaces present in the system except for loopback, return as a dict
  # -- May have an issue with multiple VIPs on a NIC
  ipOut = subprocess.run(['ip', '-j', 'address', 'show'], stdout=subprocess.PIPE)
  intJSON = json.loads(ipOut.stdout.decode('utf-8'))
  
  addresses = {}
  for iface in intJSON:
    iface_name = iface.get('ifname')
    if iface_name != "lo":
      addresses[iface_name] = {}
      addresses[iface_name]['mac'] = iface.get('address')
      for addr_info in iface.get('addr_info', []):
        if addr_info.get('family') == 'inet':  # Only IPv4 addresses
          addresses[iface_name]['ip'] = addr_info.get('local')
  return addresses