private static VirtualDeviceConfigSpec createDeviceConfig(VirtualMachine vm, String mac, VirtualEthernetCardDistributedVirtualPortBackingInfo nicBacking) { VirtualDeviceConfigSpec configSpec = null; VirtualMachineConfigInfo vmConfigInfo = vm.getConfig(); VirtualDevice[] vds = vmConfigInfo.getHardware().getDevice(); int i = 0; while (configSpec == null && i < vds.length) { if (vds[i] instanceof VirtualEthernetCard && ((VirtualEthernetCard) vds[i]).getMacAddress().equals(mac)) { configSpec = new VirtualDeviceConfigSpec(); configSpec.setOperation(VirtualDeviceConfigSpecOperation.edit); vds[i].setBacking(nicBacking); configSpec.setDevice(vds[i]); } i++; } return configSpec; }