Set<VirtualMachine> vms = client.getVirtualMachineClient().listVirtualMachines(); List<String> jobs = new ArrayList<String>(); for (VirtualMachine vm : vms) { if (vm.getName().matches(regex)) { LOG.debug("deleting " + vm); String job = client.getVirtualMachineClient().destroyVirtualMachine(vm.getId()); LOG.debug("deleting " + vm + " - job " + job); if (job != null) jobs.add(job); while (true) { boolean match = false; vms = client.getVirtualMachineClient().listVirtualMachines(); for (VirtualMachine vm : vms) { match |= vm.getName().matches(regex);
@Override public VirtualMachine getNode(String id) { String virtualMachineId = id; return client.getVirtualMachineApi().getVirtualMachine(virtualMachineId); }
@Override public void rebootNode(String id) { String virtualMachineId = id; String job = client.getVirtualMachineApi().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.getVirtualMachineApi().stopVirtualMachine(vm.getId()); assertTrue(jobComplete.apply(job)); vm = client.getVirtualMachineApi().getVirtualMachine(vm.getId()); assertEquals(vm.getState(), VirtualMachine.State.STOPPED); if (vm.isPasswordEnabled()) { job = client.getVirtualMachineApi().resetPasswordForVirtualMachine(vm.getId()); assertTrue(jobComplete.apply(job)); vm = client.getAsyncJobApi().<VirtualMachine> getAsyncJob(job).getResult(); if (vm.getPassword() != null) { conditionallyCheckSSH(); } } job = client.getVirtualMachineApi().startVirtualMachine(vm.getId()); assertTrue(jobComplete.apply(job)); vm = client.getVirtualMachineApi().getVirtualMachine(vm.getId()); assertEquals(vm.getState(), VirtualMachine.State.RUNNING); job = client.getVirtualMachineApi().rebootVirtualMachine(vm.getId()); assertTrue(jobComplete.apply(job)); vm = client.getVirtualMachineApi().getVirtualMachine(vm.getId()); assertEquals(vm.getState(), VirtualMachine.State.RUNNING); }
public void destroyVirtualMachine(String virtualMachineId) { String destroyVirtualMachine = client.getVirtualMachineApi().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.getVirtualMachineApi().listVirtualMachines(); }
@Test public void testCreateVMWithoutSecurityGroupAssignsDefault() throws Exception { skipIfSecurityGroupsNotSupported(); String defaultTemplate = templateBuilderSpec != null ? templateBuilderSpec.getImageId() : null; VirtualMachine newVm = VirtualMachineApiLiveTest.createVirtualMachineWithOptionsInZone(DeployVirtualMachineOptions.NONE, zone.getId(), defaultTemplateOrPreferredInZone(defaultTemplate, client, zone.getId()), client, jobComplete, virtualMachineRunning); try { VirtualMachine runningVm = client.getVirtualMachineApi().getVirtualMachine(newVm.getId()); assertEquals(1, runningVm.getSecurityGroups().size()); assertEquals(Iterables.getOnlyElement(runningVm.getSecurityGroups()).getName(), "default"); } finally { assertTrue(jobComplete.apply(client.getVirtualMachineApi().destroyVirtualMachine(newVm.getId()))); } }
@AfterGroups(groups = "live") @Override protected void tearDownContext() { if (vmForCreation != null) { assertTrue(jobComplete.apply(client.getVirtualMachineApi().stopVirtualMachine(vmForCreation.getId())), vmForCreation.toString()); assertTrue(jobComplete.apply(client.getVirtualMachineApi().destroyVirtualMachine(vmForCreation.getId())), vmForCreation.toString()); assertTrue(virtualMachineDestroyed.apply(vmForCreation)); } if (vmForRegistration != null) { assertTrue(jobComplete.apply(client.getVirtualMachineApi().stopVirtualMachine(vmForRegistration.getId())), vmForRegistration.toString()); assertTrue(jobComplete.apply(client.getVirtualMachineApi().destroyVirtualMachine(vmForRegistration.getId())), vmForRegistration.toString()); assert virtualMachineDestroyed.apply(vmForRegistration); } if (createdTemplate != null) { AsyncCreateResponse deleteJob = client.getTemplateApi().deleteTemplate(createdTemplate.getId()); assertTrue(jobComplete.apply(deleteJob.getJobId())); } if (registeredTemplate != null) { AsyncCreateResponse deleteJob = client.getTemplateApi().deleteTemplate(registeredTemplate.getId()); assertTrue(jobComplete.apply(deleteJob.getJobId())); } super.tearDownContext(); }
CloneImageTemplate cloneTemplate = (CloneImageTemplate) template; VirtualMachine vm = client.getVirtualMachineApi().getVirtualMachine(cloneTemplate.getSourceNodeId()); String stopJob = client.getVirtualMachineApi().stopVirtualMachine(vm.getId()); jobComplete.apply(stopJob);
AsyncCreateResponse job = client.getVirtualMachineApi().deployVirtualMachineInZone(zoneId, serviceOfferingId, templateId, options); VirtualMachine vm = blockUntilJobCompletesAndReturnResult.<VirtualMachine>apply(job); awaitCompletion(tagJob.getJobId()); logger.debug("<< tags added"); vm = client.getVirtualMachineApi().getVirtualMachine(vm.getId()); PublicIPAddress ip = staticNATVMInNetwork.create(networks.get(networkId)).apply(vm); logger.trace("<< static NATed IPAddress(%s) to virtualMachine(%s)", ip.getId(), vm.getId()); vm = client.getVirtualMachineApi().getVirtualMachine(vm.getId()); List<Integer> ports = Ints.asList(templateOptions.getInboundPorts()); if (capabilities.getCloudStackVersion().startsWith("2")) {
@Test(dependsOnMethods = "testCreateVirtualMachine") public void testVirtualMachineUpdate() throws Exception { UpdateVirtualMachineOptions options = UpdateVirtualMachineOptions.Builder.displayName("updated-name"); String job = client.getVirtualMachineApi().updateVirtualMachine(vm.getId(), options); assertTrue(jobComplete.apply(job)); vm = client.getVirtualMachineApi().getVirtualMachine(vm.getId()); assertEquals(vm.getDisplayName(), "updated-name"); }
public static VirtualMachine createVirtualMachineWithOptionsInZone(DeployVirtualMachineOptions options, String zoneId, String templateId, CloudStackApi client, Predicate<String> jobComplete, Predicate<VirtualMachine> virtualMachineRunning) { String serviceOfferingId = DEFAULT_SIZE_ORDERING.min(client.getOfferingApi().listServiceOfferings()).getId(); System.out.printf("serviceOfferingId %s, templateId %s, zoneId %s, options %s%n", serviceOfferingId, templateId, zoneId, options); AsyncCreateResponse job = client.getVirtualMachineApi().deployVirtualMachineInZone(zoneId, serviceOfferingId, templateId, options); assertTrue(jobComplete.apply(job.getJobId())); AsyncJob<VirtualMachine> jobWithResult = client.getAsyncJobApi().<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.getVirtualMachineApi().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.getVirtualMachineApi().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" +
private void destroyMachine(VirtualMachine virtualMachine) { assertTrue(adminJobComplete.apply( adminClient.getVirtualMachineApi().destroyVirtualMachine(virtualMachine.getId())), virtualMachine.toString()); assertTrue(adminVirtualMachineDestroyed.apply(virtualMachine)); }
public Maybe<VirtualMachine> findVmByIp(final String ipAddress) { Set<VirtualMachine> vms = getVirtualMachineClient().listVirtualMachines(); LOG.debug("VMs: "); return Maybe.of(Iterables.tryFind(vms, new Predicate<VirtualMachine>() { @Override public boolean apply(VirtualMachine vm) { //check all NICs for ip address return CloudstackFunctions.vmIpAddresses().apply(vm).contains(ipAddress); } })); }
public void testDeployVirtualMachineIs2xxVersion4x() { HttpResponse deployVirtualMachineInZoneResponse = HttpResponse.builder().statusCode(200) .payload(payloadFromResource("/deployvirtualmachineresponse4x.json")).build(); VirtualMachineApi client = requestSendsResponse(deployVirtualMachineInZone, deployVirtualMachineInZoneResponse); AsyncCreateResponse async = client.deployVirtualMachineInZone("zone1", "serviceOffering1", "template1"); assertEquals( async, AsyncCreateResponse.builder().id("1cce6cb7-2268-47ff-9696-d9e610f6619a") .jobId("13330fc9-8b3e-4582-aa3e-90883c041ff0").build()); }
@Test(enabled = true) public void testCreateTemplate() throws Exception { Zone zone = Iterables.getFirst(client.getZoneApi().listZones(), null); assertNotNull(zone); Iterable<Network> networks = client.getNetworkApi().listNetworks(ListNetworksOptions.Builder.zoneId(zone.getId()).isDefault(true)); networks = Iterables.filter(networks, new Predicate<Network>() { @Override public boolean apply(Network network) { return network != null && network.getState().equals("Implemented"); } }); assertTrue(Iterables.size(networks) >= 1); Network network = Iterables.get(networks, 0); assertNotNull(network); // Create a VM and stop it String defaultTemplate = templateBuilderSpec != null ? templateBuilderSpec.getImageId() : null; vmForCreation = VirtualMachineApiLiveTest.createVirtualMachineInNetwork(network, defaultTemplate, client, jobComplete, virtualMachineRunning); assertTrue(jobComplete.apply(client.getVirtualMachineApi().stopVirtualMachine(vmForCreation.getId())), vmForCreation.toString()); // Work out the VM's volume Set<Volume> volumes = client.getVolumeApi().listVolumes(ListVolumesOptions.Builder.virtualMachineId(vmForCreation.getId())); assertEquals(volumes.size(), 1); Volume volume = Iterables.getOnlyElement(volumes); // Create a template CreateTemplateOptions options = CreateTemplateOptions.Builder.volumeId(volume.getId()); AsyncCreateResponse response = client.getTemplateApi().createTemplate(TemplateMetadata.builder().name(prefix + "-createTemplate").osTypeId(vmForCreation.getGuestOSId()).displayText("jclouds live testCreateTemplate").build(), options); assertTrue(jobComplete.apply(response.getJobId()), vmForCreation.toString()); createdTemplate = client.getTemplateApi().getTemplateInZone(response.getId(), vmForCreation.getZoneId()); // Assertions assertNotNull(createdTemplate); }
private VirtualMachine refresh(VirtualMachine virtualMachine) { return client.getVirtualMachineApi().getVirtualMachine(virtualMachine.getId()); } }