public void listNetworkAdapter(ServiceInstance si, String vmName) throws Exception { VirtualMachine vm = (VirtualMachine) new InventoryNavigator(si.getRootFolder()).searchManagedEntity("VirtualMachine", vmName); if (vm == null) { System.out.println("Not found vm:" + vmName); return; } System.out.println("List NIC:"); VirtualMachineDeviceManager vmdm = new VirtualMachineDeviceManager(vm); List<VirtualEthernetCard> vics = vmdm.getVirtualDevicesOfType(VirtualEthernetCard.class); for (VirtualEthernetCard vic : vics) { System.out.println(vic.getDeviceInfo().getLabel()); } }
public void removeNetworkAdapter(ServiceInstance si, String vmName, String nicLable) throws Exception { VirtualMachine vm = (VirtualMachine) new InventoryNavigator(si.getRootFolder()).searchManagedEntity("VirtualMachine", vmName); if (vm == null) { System.out.println("Not found vm:" + vmName); return; } VirtualMachineDeviceManager vmdm = new VirtualMachineDeviceManager(vm); List<VirtualEthernetCard> vics = vmdm.getVirtualDevicesOfType(VirtualEthernetCard.class); for (VirtualEthernetCard vic : vics) { if (vic.getDeviceInfo().getLabel().equals(nicLable)) { Task task = vmdm.removeDevice(vic, false); String result = task.waitForTask(); if (Task.SUCCESS.equals(result)) { System.out.println("Remove NIC:" + nicLable + " for vm:" + vmName + " successfully!"); } else { throw new Exception("Remove NIC failed: result=" + result); } break; } } }
public void attachNic(VirtualMachine vm, VirtualEthernetCard nic, Network network) throws RemoteException, InterruptedException { VirtualEthernetCardNetworkBackingInfo backing = (VirtualEthernetCardNetworkBackingInfo) nic.getBacking(); backing.setDeviceName(network.getName()); backing.setNetwork(network.getMOR()); nic.setBacking(backing); nic.getDeviceInfo().setSummary(network.getName()); VirtualDeviceConfigSpec nicSpec = new VirtualDeviceConfigSpec(); nicSpec.setOperation(VirtualDeviceConfigSpecOperation.edit); nicSpec.setDevice(nic); VirtualDeviceConfigSpec[] configSpecs = new VirtualDeviceConfigSpec[1]; configSpecs[0] = nicSpec; VirtualMachineConfigSpec machineConfigSpec = new VirtualMachineConfigSpec(); machineConfigSpec.setDeviceChange(configSpecs); Task task = vm.reconfigVM_Task(machineConfigSpec); String status = task.waitForTask(); if (!status.equals("success")) { String message = task.getTaskInfo().getError().getLocalizedMessage(); throw new RemoteException("Failed: " + message); } }