func newSetupNamespaceClosureContext()

in plugins/eni/engine/nsclosure.go [53:91]


func newSetupNamespaceClosureContext(
	netLink netlinkwrapper.NetLink,
	ifName string,
	deviceName string,
	macAddress string,
	ipAddresses []string,
	gatewayAddresses []string,
	blockIMDS bool,
	mtu int) (*setupNamespaceClosureContext, error) {

	nsClosure := &setupNamespaceClosureContext{
		netLink:    netLink,
		ifName:     ifName,
		deviceName: deviceName,
		macAddress: macAddress,
		blockIMDS:  blockIMDS,
		mtu:        mtu,
	}

	for _, addr := range ipAddresses {
		nlIPAddr, err := netLink.ParseAddr(addr)
		if err != nil {
			return nil, errors.Wrapf(err,
				"setupNamespaceClosure engine: unable to parse ip address '%s' for the interface", addr)
		}
		nsClosure.ipAddrs = append(nsClosure.ipAddrs, nlIPAddr)
	}

	for _, addr := range gatewayAddresses {
		gatewayAddr := net.ParseIP(addr)
		if gatewayAddr == nil {
			return nil, fmt.Errorf(
				"setupNamespaceClosure engine: unable to parse gateway ip address '%s'", addr)
		}
		nsClosure.gatewayAddrs = append(nsClosure.gatewayAddrs, gatewayAddr)
	}

	return nsClosure, nil
}