// buildNetworkDevice builds VirtualDeviceConfigSpec for Network Device. func buildNetworkDevice(f *find.Finder, label, adapterType string) (*types.VirtualDeviceConfigSpec, error) { network, err := f.Network(context.TODO(), "*"+label) if err != nil { return nil, err } backing, err := network.EthernetCardBackingInfo(context.TODO()) if err != nil { return nil, err } if adapterType == "vmxnet3" { return &types.VirtualDeviceConfigSpec{ Operation: types.VirtualDeviceConfigSpecOperationAdd, Device: &types.VirtualVmxnet3{ VirtualVmxnet: types.VirtualVmxnet{ VirtualEthernetCard: types.VirtualEthernetCard{ VirtualDevice: types.VirtualDevice{ Key: -1, Backing: backing, }, AddressType: string(types.VirtualEthernetCardMacTypeGenerated), }, }, }, }, nil } else if adapterType == "e1000" { return &types.VirtualDeviceConfigSpec{ Operation: types.VirtualDeviceConfigSpecOperationAdd, Device: &types.VirtualE1000{ VirtualEthernetCard: types.VirtualEthernetCard{ VirtualDevice: types.VirtualDevice{ Key: -1, Backing: backing, }, AddressType: string(types.VirtualEthernetCardMacTypeGenerated), }, }, }, nil } else { return nil, fmt.Errorf("Invalid network adapter type.") } }
func (d *Driver) getNetwork(f *find.Finder, ctx context.Context) (net object.NetworkReference, err error) { // Network if d.Network != "" { // Find specified Network net, err = f.Network(ctx, d.Network) if err != nil { return net, err } } else { // Find default Network net, err = f.DefaultNetwork(ctx) if err != nil { return net, err } } log.Debug("Network found: ", net) return net, nil }