public static List<String> destroyAllVirtualMachineByName(final CloudStackClient client, final String vmName) { checkNotEmpty(vmName); Set<VirtualMachine> vms = Sets.filter(client.getVirtualMachineClient() .listVirtualMachines(ListVirtualMachinesOptions.Builder.name(vmName)), new Predicate<VirtualMachine>() { @Override public boolean apply(VirtualMachine input) { return vmName.equals(input.getDisplayName()); } }); List<String> jobIds = Lists.newArrayList(); LOG.info("Deleting a total of {} virtual machine instances", vms.size()); for (VirtualMachine vm : vms) { LOG.info("Deleting instance with id {}", vm.getId()); jobIds.add(client.getVirtualMachineClient().destroyVirtualMachine(vm.getId())); } return ImmutableList.copyOf(jobIds); }
@Override public VirtualMachine getNode(String id) { String virtualMachineId = id; return client.getVirtualMachineClient().getVirtualMachine(virtualMachineId); }
@Override public void rebootNode(String id) { String virtualMachineId = id; String job = client.getVirtualMachineClient().rebootVirtualMachine(virtualMachineId); if (job != null) { logger.debug(">> rebooting virtualMachine(%s) job(%s)", virtualMachineId, job); awaitCompletion(job); } }
@Test(dependsOnMethods = "testCreateVirtualMachine") public void testLifeCycle() throws Exception { String job = client.getVirtualMachineClient().stopVirtualMachine(vm.getId()); assertTrue(jobComplete.apply(job)); vm = client.getVirtualMachineClient().getVirtualMachine(vm.getId()); assertEquals(vm.getState(), VirtualMachine.State.STOPPED); if (vm.isPasswordEnabled()) { job = client.getVirtualMachineClient().resetPasswordForVirtualMachine(vm.getId()); assertTrue(jobComplete.apply(job)); vm = client.getAsyncJobClient().<VirtualMachine> getAsyncJob(job).getResult(); if (vm.getPassword() != null) { conditionallyCheckSSH(); } } job = client.getVirtualMachineClient().startVirtualMachine(vm.getId()); assertTrue(jobComplete.apply(job)); vm = client.getVirtualMachineClient().getVirtualMachine(vm.getId()); assertEquals(vm.getState(), VirtualMachine.State.RUNNING); job = client.getVirtualMachineClient().rebootVirtualMachine(vm.getId()); assertTrue(jobComplete.apply(job)); vm = client.getVirtualMachineClient().getVirtualMachine(vm.getId()); assertEquals(vm.getState(), VirtualMachine.State.RUNNING); }
AsyncCreateResponse job = client.getVirtualMachineClient().deployVirtualMachineInZone(zoneId, serviceOfferingId, templateId, options); VirtualMachine vm = blockUntilJobCompletesAndReturnResult.<VirtualMachine>apply(job); PublicIPAddress ip = staticNATVMInNetwork.create(networks.get(networkId)).apply(vm); logger.trace("<< static NATed IPAddress(%s) to virtualMachine(%s)", ip.getId(), vm.getId()); vm = client.getVirtualMachineClient().getVirtualMachine(vm.getId()); List<Integer> ports = Ints.asList(templateOptions.getInboundPorts()); if (capabilities.getCloudStackVersion().startsWith("2")) {
public void destroyVirtualMachine(String virtualMachineId) { String destroyVirtualMachine = client.getVirtualMachineClient().destroyVirtualMachine(virtualMachineId); if (destroyVirtualMachine != null) { logger.debug(">> destroying virtualMachine(%s) job(%s)", virtualMachineId, destroyVirtualMachine); awaitCompletion(destroyVirtualMachine); } else { logger.trace("<< virtualMachine(%s) not found", virtualMachineId); } }
@Override public Iterable<VirtualMachine> listNodes() { return client.getVirtualMachineClient().listVirtualMachines(); }
@Test public void testCreateVMWithoutSecurityGroupAssignsDefault() throws Exception { skipIfSecurityGroupsNotSupported(); String defaultTemplate = template != null ? template.getImageId() : null; VirtualMachine newVm = VirtualMachineClientLiveTest.createVirtualMachineWithOptionsInZone(DeployVirtualMachineOptions.NONE, zone.getId(), defaultTemplateOrPreferredInZone(defaultTemplate, client, zone.getId()), client, jobComplete, virtualMachineRunning); try { VirtualMachine runningVm = client.getVirtualMachineClient().getVirtualMachine(newVm.getId()); assertEquals(1, runningVm.getSecurityGroups().size()); assertEquals(Iterables.getOnlyElement(runningVm.getSecurityGroups()).getName(), "default"); } finally { assertTrue(jobComplete.apply(client.getVirtualMachineClient().destroyVirtualMachine(newVm.getId()))); } }
@Override public void execute(CloudStackClient cloudStackClient, Pool pool, DelegateExecution execution) { final String businessKey = execution.getProcessBusinessKey(); final String keyPairName = KeyPairs.formatNameFromBusinessKey(businessKey); final String zoneId = pool.getOptions().get(ProviderOptions.ZONE_ID); final String templateId = pool.getSoftware().getImageId(); final String serviceOffering = pool.getHardware().getType(); LOG.info("Starting instances!"); AsyncCreateResponse asyncCreateResponse = cloudStackClient.getVirtualMachineClient() .deployVirtualMachineInZone(zoneId, serviceOffering, templateId, DeployVirtualMachineOptions.Builder .displayName(businessKey) .group(businessKey) .networkId(Networks.formatNameFromBusinessKey(businessKey)) .keyPair(keyPairName) .name(businessKey)); VirtualMachines.waitForVMtoStart(cloudStackClient, businessKey); } }
@AfterGroups(groups = "live") @Override protected void tearDownContext() { if (vmForCreation != null) { assertTrue(jobComplete.apply(client.getVirtualMachineClient().stopVirtualMachine(vmForCreation.getId())), vmForCreation.toString()); assertTrue(jobComplete.apply(client.getVirtualMachineClient().destroyVirtualMachine(vmForCreation.getId())), vmForCreation.toString()); assertTrue(virtualMachineDestroyed.apply(vmForCreation)); } if (vmForRegistration != null) { assertTrue(jobComplete.apply(client.getVirtualMachineClient().stopVirtualMachine(vmForRegistration.getId())), vmForRegistration.toString()); assertTrue(jobComplete.apply(client.getVirtualMachineClient().destroyVirtualMachine(vmForRegistration.getId())), vmForRegistration.toString()); assert virtualMachineDestroyed.apply(vmForRegistration); } if (createdTemplate != null) { AsyncCreateResponse deleteJob = client.getTemplateClient().deleteTemplate(createdTemplate.getId()); assertTrue(jobComplete.apply(deleteJob.getJobId())); } if (registeredTemplate != null) { AsyncCreateResponse deleteJob = client.getTemplateClient().deleteTemplate(registeredTemplate.getId()); assertTrue(jobComplete.apply(deleteJob.getJobId())); } super.tearDownContext(); }
@Override public void suspendNode(String id) { String virtualMachineId = id; String job = client.getVirtualMachineClient().stopVirtualMachine(id); if (job != null) { logger.debug(">> stopping virtualMachine(%s) job(%s)", virtualMachineId, job); awaitCompletion(job); } }
@Override public void resumeNode(String id) { String virtualMachineId = id; String job = client.getVirtualMachineClient().startVirtualMachine(id); if (job != null) { logger.debug(">> starting virtualMachine(%s) job(%s)", virtualMachineId, job); awaitCompletion(job); } }
.build()); String actual = client.getEncryptedPasswordForVirtualMachine("1"); String expected = "EFOwm8icZ4sEib4y6ntVHUKHZJQrGBdyPkL1L9lpFHYhs3JfAtL5E5bxBP5Er27bJyOZPjKFcInX\r\n" + "pQ0LZlQBZDd5/ac0NSoM6tAX3H30pYxNw4t2f9u8aJ48oOEvufgGxTTHnM9qHXD04lt+Ouql6i2q\r\n" +
AsyncCreateResponse job = client.getVirtualMachineClient().deployVirtualMachineInZone(zoneId, serviceOfferingId, templateId, options); VirtualMachine vm = blockUntilJobCompletesAndReturnResult.<VirtualMachine>apply(job); PublicIPAddress ip = staticNATVMInNetwork.create(networks.get(networkId)).apply(vm); logger.trace("<< static NATed IPAddress(%s) to virtualMachine(%s)", ip.getId(), vm.getId()); vm = client.getVirtualMachineClient().getVirtualMachine(vm.getId()); List<Integer> ports = Ints.asList(templateOptions.getInboundPorts()); if (capabilities.getCloudStackVersion().startsWith("2")) {
public void destroyVirtualMachine(String virtualMachineId) { String destroyVirtualMachine = client.getVirtualMachineClient().destroyVirtualMachine(virtualMachineId); if (destroyVirtualMachine != null) { logger.debug(">> destroying virtualMachine(%s) job(%s)", virtualMachineId, destroyVirtualMachine); awaitCompletion(destroyVirtualMachine); } else { logger.trace("<< virtualMachine(%s) not found", virtualMachineId); } }
@Override public Iterable<VirtualMachine> listNodes() { return client.getVirtualMachineClient().listVirtualMachines(); }
public static VirtualMachine createVirtualMachineWithOptionsInZone(DeployVirtualMachineOptions options, String zoneId, String templateId, CloudStackClient client, Predicate<String> jobComplete, Predicate<VirtualMachine> virtualMachineRunning) { String serviceOfferingId = DEFAULT_SIZE_ORDERING.min(client.getOfferingClient().listServiceOfferings()).getId(); System.out.printf("serviceOfferingId %s, templateId %s, zoneId %s, options %s%n", serviceOfferingId, templateId, zoneId, options); AsyncCreateResponse job = client.getVirtualMachineClient().deployVirtualMachineInZone(zoneId, serviceOfferingId, templateId, options); assertTrue(jobComplete.apply(job.getJobId())); AsyncJob<VirtualMachine> jobWithResult = client.getAsyncJobClient().<VirtualMachine> getAsyncJob(job.getJobId()); if (jobWithResult.getError() != null) Throwables.propagate(new ExecutionException(String.format("job %s failed with exception %s", job.getId(), jobWithResult.getError().toString())) { }); VirtualMachine vm = jobWithResult.getResult(); if (vm.isPasswordEnabled()) { assert vm.getPassword() != null : vm; } assertTrue(virtualMachineRunning.apply(vm)); assertEquals(vm.getServiceOfferingId(), serviceOfferingId); assertEquals(vm.getTemplateId(), templateId); assertEquals(vm.getZoneId(), zoneId); return vm; }
@Override public void suspendNode(String id) { String virtualMachineId = id; String job = client.getVirtualMachineClient().stopVirtualMachine(id); if (job != null) { logger.debug(">> stopping virtualMachine(%s) job(%s)", virtualMachineId, job); awaitCompletion(job); } }
@Override public void resumeNode(String id) { String virtualMachineId = id; String job = client.getVirtualMachineClient().startVirtualMachine(id); if (job != null) { logger.debug(">> starting virtualMachine(%s) job(%s)", virtualMachineId, job); awaitCompletion(job); } }
@Override public VirtualMachine getNode(String id) { String virtualMachineId = id; return client.getVirtualMachineClient().getVirtualMachine(virtualMachineId); }