func (creator interfaceConfigurationCreator) createMultipleInterfaceConfigurations(networks boshsettings.Networks, interfacesByMAC map[string]string) ([]StaticInterfaceConfiguration, []DHCPInterfaceConfiguration, error) { if len(interfacesByMAC) < len(networks) { return nil, nil, bosherr.Errorf("Number of network settings '%d' is greater than the number of network devices '%d'", len(networks), len(interfacesByMAC)) } for name := range networks { if mac := networks[name].Mac; mac != "" { if _, ok := interfacesByMAC[mac]; !ok { return nil, nil, bosherr.Errorf("No device found for network '%s' with MAC address '%s'", name, mac) } } } // Configure interfaces with network settings matching MAC address. // If we cannot find a network setting with a matching MAC address, configure that interface as DHCP var networkSettings boshsettings.Network var err error staticConfigs := []StaticInterfaceConfiguration{} dhcpConfigs := []DHCPInterfaceConfiguration{} for mac, ifaceName := range interfacesByMAC { networkSettings, _ = networks.NetworkForMac(mac) staticConfigs, dhcpConfigs, err = creator.createInterfaceConfiguration(staticConfigs, dhcpConfigs, ifaceName, networkSettings) if err != nil { return nil, nil, bosherr.WrapError(err, "Creating interface configuration") } } return staticConfigs, dhcpConfigs, nil }