@Override public void destroy(Member member) throws DestructionException { try { VirtualMachine virtualMachine = (VirtualMachine) this.inventoryNavigatorFactory.create() .searchManagedEntity("VirtualMachine", member.getId()); Assert.notNull(virtualMachine, String.format("virtualMachine must not be null for %s", member)); handleTask(virtualMachine.powerOffVM_Task()); } catch (InterruptedException | IOException e) { throw new DestructionException(String.format("Unable to destroy %s", member), e); } }
public static void main(String[] args) throws Exception { String urlStr ="http://dev:8000/vmAction.cgi?cmd=powerOn&moref=VirtualMachine:16&sessionId=9241E7B8-A37B-4264-A8D1-945628F9E0D6&locale=en&serviceUrl=https://localhost/sdk"; Map<String, String> kvPairs = parseURL(urlStr); String morStr = kvPairs.get(MOREF); String type = morStr.substring(0, morStr.indexOf(":")); String value = morStr.substring(morStr.indexOf(":")+1); ManagedObjectReference mor = new ManagedObjectReference(); mor.setType(type); mor.set_value(value); String sesssionStr = "vmware_soap_session=\"" + kvPairs.get(SESSION_ID) + "\""; ServiceInstance si = new ServiceInstance(new URL(kvPairs.get(SERVICE_URL)),sesssionStr, true); ManagedEntity me = MorUtil.createExactManagedEntity(si.getServerConnection(), mor); String name = me.getName(); System.out.println("name:" + name); if(me instanceof VirtualMachine) { Task task = ((VirtualMachine)me).powerOffVM_Task(); task.waitForMe(); } // si.getServerConnection().logout(); if you get access via sessionID, pls don't log out... }
public static void main(String[] args) throws Exception { String urlStr ="http://dev:8000/vmAction.cgi?cmd=powerOn&moref=VirtualMachine:16&sessionId=9241E7B8-A37B-4264-A8D1-945628F9E0D6&locale=en&serviceUrl=https://localhost/sdk"; Map<String, String> kvPairs = parseURL(urlStr); String morStr = kvPairs.get(MOREF); String type = morStr.substring(0, morStr.indexOf(":")); String value = morStr.substring(morStr.indexOf(":")+1); ManagedObjectReference mor = new ManagedObjectReference(); mor.setType(type); mor.set_value(value); String sesssionStr = "vmware_soap_session=\"" + kvPairs.get(SESSION_ID) + "\""; ServiceInstance si = new ServiceInstance(new URL(kvPairs.get(SERVICE_URL)),sesssionStr, true); ManagedEntity me = MorUtil.createExactManagedEntity(si.getServerConnection(), mor); String name = me.getName(); System.out.println("name:" + name); if(me instanceof VirtualMachine) { Task task = ((VirtualMachine)me).powerOffVM_Task(); task.waitForMe(); } // si.getServerConnection().logout(); if you get access via sessionID, pls don't log out... }
/** * Powers off the VM stored in this CloneTask object. This is a "hard" powering off. * @throws InvalidProperty * @throws RuntimeFault * @throws RemoteException * @throws InterruptedException */ public void powerOffVm() throws InvalidProperty, RuntimeFault, RemoteException, InterruptedException { VirtualMachineRuntimeInfo vmri = vm.getRuntime(); if (vmri.getPowerState() == VirtualMachinePowerState.poweredOn) { sentPowerDown = true; com.vmware.vim25.mo.Task task = vm.powerOffVM_Task(); task.waitForTask(); log.info("vm:" + vm.getName() + " powered off."); } }
vm.powerOffVM_Task(); // power off the VM
Task task = vm.powerOffVM_Task(); if(task.waitForMe()==Task.SUCCESS)
Task task = vm.powerOffVM_Task(); if(task.waitForMe()==Task.SUCCESS)
@Override public void terminateVM( String instanceId ) throws IaasException { try { VirtualMachine vm = getVirtualMachine(instanceId); if (vm == null) { throw new IaasException("error vm: "+instanceId+" not found"); } Task task = vm.powerOffVM_Task(); try { if(!(task.waitForTask()).equals(Task.SUCCESS)) { throw new IaasException("error when trying to stop vm: "+instanceId); } } catch (InterruptedException ignore) { /*ignore*/ } task = vm.destroy_Task(); try { if(!(task.waitForTask()).equals(Task.SUCCESS)) { throw new IaasException("error when trying to remove vm: "+instanceId); } } catch (InterruptedException ignore) { /*ignore*/ } } catch(RemoteException e) { throw new IaasException(e); } }
&& "Ubuntu704Srv".equals(vm.getName())) Task task = vm.powerOffVM_Task(); task.waitForMe(); System.out.println("vm:" + vm.getName() + " powered off.");
&& "Ubuntu704Srv".equals(vm.getName())) Task task = vm.powerOffVM_Task(); task.waitForMe(); System.out.println("vm:" + vm.getName() + " powered off.");
@Override public BusinessWrapper<Boolean> powerOff(VmServerDO vmServerDO) { String vmName = vmServerDO.getInsideIp() + ":" + vmServerDO.getServerName(); this.login(); try { //VirtualMachine vm = (VirtualMachine) new InventoryNavigator( // rootFolder).searchManagedEntity("VirtualMachine", name); vmName = "10.17.1.28:windows2008R2.vm.template"; ManagedEntity mes = new InventoryNavigator(serviceInstance.getRootFolder()).searchManagedEntity("VirtualMachine", vmName); if (mes == null) { logger.error("vcsa 查询错误:" + " No VM " + vmName + " found"); serviceInstance.getRootFolder().getServerConnection().logout(); return new BusinessWrapper<>(false); } ((VirtualMachine) mes).powerOffVM_Task(); } catch (Exception e) { serviceInstance.getRootFolder().getServerConnection().logout(); logger.error("vcsa 查询错误"); } serviceInstance.getRootFolder().getServerConnection().logout(); return new BusinessWrapper<>(true); }