Skip to content

Commit

Permalink
prefer global ip addresses
Browse files Browse the repository at this point in the history
Change-Id: I88853631876489187feb88e1ae69b37263a7d5af
  • Loading branch information
aojea committed Dec 29, 2024
1 parent 45692cb commit d656cfe
Showing 1 changed file with 19 additions and 3 deletions.
22 changes: 19 additions & 3 deletions pkg/inventory/db.go
Original file line number Diff line number Diff line change
Expand Up @@ -226,9 +226,25 @@ func (db *DB) netdevToDRAdev(ifName string) (*resourceapi.Device, error) {
}

if ips, err := netlink.AddrList(link, netlink.FAMILY_ALL); err == nil && len(ips) > 0 {
// TODO assume only one addres by now
ip := ips[0].IP.String()
device.Basic.Attributes["ip"] = resourceapi.DeviceAttribute{StringValue: &ip}
// TODO assume only one address by now but prefer the global ones
var v6found, v4found bool
for _, address := range ips {
if v4found && v6found {
break
}
if !address.IP.IsGlobalUnicast() {
continue
}

if address.IP.To4() == nil && !v6found {
device.Basic.Attributes["ipv6"] = resourceapi.DeviceAttribute{StringValue: ptr.To(address.IP.String())}
} else if !v4found {
device.Basic.Attributes["ip"] = resourceapi.DeviceAttribute{StringValue: ptr.To(address.IP.String())}
}
}
if !v4found {
device.Basic.Attributes["ip"] = resourceapi.DeviceAttribute{StringValue: ptr.To(ips[0].String())}
}
mac := link.Attrs().HardwareAddr.String()
device.Basic.Attributes["mac"] = resourceapi.DeviceAttribute{StringValue: &mac}
mtu := int64(link.Attrs().MTU)
Expand Down

0 comments on commit d656cfe

Please sign in to comment.