Extracts network interface metadata.

    Args:
      metadata: dict, the metadata response with the new network interfaces.

    Returns:
      list, a list of NetworkInterface objects.

def _ExtractInterfaceMetadata(self, metadata):
    """Extracts network interface metadata.

    Args:
      metadata: dict, the metadata response with the new network interfaces.

    Returns:
      list, a list of NetworkInterface objects.
    """
    interfaces = []
    for network_interface in metadata:
      mac_address = network_interface.get('mac')
      interface = self.network_utils.GetNetworkInterface(mac_address)
      ip_addresses = []
      if interface:
        ip_addresses.extend(network_interface.get('forwardedIps', []))
        if self.ip_aliases:
          ip_addresses.extend(network_interface.get('ipAliases', []))
        if self.target_instance_ips:
          ip_addresses.extend(network_interface.get('targetInstanceIps', []))
        interfaces.append(NetworkDaemon.NetworkInterface(
            interface, ip_addresses, network_interface.get('ip', [])))
      else:
        message = 'Network interface not found for MAC address: %s.'
        self.logger.warning(message, mac_address)
    return interfaces