m/n/c/network: do not refetch interface metadata
We can use netlinkLinkToNetInterface to do this without an IO operation.
Change-Id: I9e01c5b05633b3dc45820370a72ed9343bfcea29
Reviewed-on: https://review.monogon.dev/c/monogon/+/3114
Reviewed-by: Serge Bazanski <serge@monogon.tech>
Tested-by: Jenkins CI
diff --git a/metropolis/node/core/network/main.go b/metropolis/node/core/network/main.go
index b40bc98..cc57aa5 100644
--- a/metropolis/node/core/network/main.go
+++ b/metropolis/node/core/network/main.go
@@ -154,11 +154,8 @@
}
func (s *Service) useInterface(ctx context.Context, iface netlink.Link) error {
- netIface, err := net.InterfaceByIndex(iface.Attrs().Index)
- if err != nil {
- return fmt.Errorf("cannot create Go net.Interface from netlink.Link: %w", err)
- }
- s.dhcp, err = dhcp4c.NewClient(netIface)
+ var err error
+ s.dhcp, err = dhcp4c.NewClient(netlinkLinkToNetInterface(iface))
if err != nil {
return fmt.Errorf("failed to create DHCP client on interface %v: %w", iface.Attrs().Name, err)
}