class ForemanSalt::FactParser

def interfaces

def interfaces
  interfaces = {}
  facts.each do |fact, value|
    next unless value && fact.to_s =~ /^ip_interfaces/
    (_, interface_name) = fact.split(FactName::SEPARATOR)
    next if (IPAddr.new('fe80::/10').include?(value) rescue false)
    if !interface_name.blank? && interface_name != 'lo'
      interface = interfaces.fetch(interface_name, {})
      interface[:macaddress] = macs[interface_name]
      if Net::Validations.validate_ip6(value)
        interface[:ipaddress6] = value unless interface.include?(:ipaddress6)
      else
        interface[:ipaddress] = value unless interface.include?(:ipaddress)
      end
      interfaces[interface_name] = interface
    end
  end
  interfaces.each do |name, interface|
    set_additional_attributes(interface, name)
  end
  interfaces
end