@Override public int compareTo(Template o) { return id.compareTo(o.getId()); }
@Override public int compareTo(Template o) { return id.compareTo(o.getId()); }
@Override public int compareTo(Template o) { return id.compareTo(o.getId()); }
@Override public Image apply(Template template) { checkNotNull(template, "template"); OperatingSystem os = templateToOperatingSystem.apply(template); ImageBuilder builder = new ImageBuilder().ids(template.getId() + "").name(template.getName()) .description(template.getDisplayText()).operatingSystem(os); if (!template.isCrossZones()) builder.location(FluentIterable.from(locations.get()).firstMatch(idEquals(template.getZoneId())).orNull()); //TODO: implement status mapping!!! builder.status(Status.AVAILABLE); return builder.build(); } }
@Override public Image apply(Template template) { checkNotNull(template, "template"); OperatingSystem os = templateToOperatingSystem.apply(template); ImageBuilder builder = new ImageBuilder().ids(template.getId() + "").name(template.getName()) .description(template.getDisplayText()).operatingSystem(os); if (!template.isCrossZones()) builder.location(FluentIterable.from(locations.get()).firstMatch(idEquals(template.getZoneId())).orNull()); //TODO: implement status mapping!!! builder.status(Status.AVAILABLE); return builder.build(); } }
@Override public Image apply(Template template) { checkNotNull(template, "template"); OperatingSystem os = templateToOperatingSystem.apply(template); ImageBuilder builder = new ImageBuilder().ids(template.getId() + "").name(template.getName()) .description(template.getDisplayText()).operatingSystem(os); if (!template.isCrossZones()) builder.location(FluentIterable.from(locations.get()).firstMatch(idEquals(template.getZoneId())).orNull()); //TODO: implement status mapping!!! builder.status(Status.AVAILABLE); return builder.build(); } }
public static String getTemplateForZone(CloudStackClient client, String zoneId) { // TODO enum, as this is way too easy to mess up. Set<String> acceptableCategories = ImmutableSet.of("Ubuntu", "CentOS"); final Predicate<Template> hypervisorPredicate = new CorrectHypervisorForZone(client).apply(zoneId); final Predicate<Template> osTypePredicate = new OSCategoryIn(client).apply(acceptableCategories); @SuppressWarnings("unchecked") Predicate<Template> templatePredicate = Predicates.<Template> and(TemplatePredicates.isReady(), hypervisorPredicate, osTypePredicate); Iterable<Template> templates = filter( client.getTemplateClient().listTemplates(ListTemplatesOptions.Builder.zoneId(zoneId)), templatePredicate); if (Iterables.any(templates, TemplatePredicates.isPasswordEnabled())) { templates = filter(templates, TemplatePredicates.isPasswordEnabled()); } if (Iterables.size(templates) == 0) { throw new NoSuchElementException(templatePredicate.toString()); } String templateId = get(templates, 0).getId(); return templateId; }
public static String getTemplateForZone(CloudStackApi client, String zoneId) { // TODO enum, as this is way too easy to mess up. Set<String> acceptableCategories = ImmutableSet.of("Ubuntu", "CentOS"); final Predicate<Template> hypervisorPredicate = new CorrectHypervisorForZone(client).apply(zoneId); final Predicate<Template> osTypePredicate = new OSCategoryIn(client).apply(acceptableCategories); @SuppressWarnings("unchecked") Predicate<Template> templatePredicate = Predicates.<Template> and(TemplatePredicates.isReady(), hypervisorPredicate, osTypePredicate); Iterable<Template> templates = filter( client.getTemplateApi().listTemplates(ListTemplatesOptions.Builder.zoneId(zoneId)), templatePredicate); if (Iterables.any(templates, TemplatePredicates.isPasswordEnabled())) { templates = filter(templates, TemplatePredicates.isPasswordEnabled()); } if (Iterables.size(templates) == 0) { throw new NoSuchElementException(templatePredicate.toString()); } String templateId = get(templates, 0).getId(); return templateId; }
@Test(enabled = true, dependsOnMethods = "testRegisterTemplate") public void testExtractTemplate() throws Exception { // Initiate the extraction and wait for it to complete AsyncCreateResponse response = client.getTemplateClient().extractTemplate(registeredTemplate.getId(), ExtractMode.HTTP_DOWNLOAD, registeredTemplate.getZoneId()); assertTrue(jobComplete.apply(response.getJobId()), registeredTemplate.toString()); // Get the result AsyncJob<TemplateExtraction> asyncJob = client.getAsyncJobClient().getAsyncJob(response.getJobId()); TemplateExtraction extract = asyncJob.getResult(); assertNotNull(extract); // Check that the URL can be retrieved String extractUrl = extract.getUrl(); assertNotNull(extractUrl); URI uri = new URI(URLDecoder.decode(extractUrl, "utf-8")); assertTrue(cloudStackContext.utils().http().exists(uri), "does not exist: " + uri); }
@Test(enabled = true, dependsOnMethods = "testRegisterTemplate") public void testExtractTemplate() throws Exception { // Initiate the extraction and wait for it to complete AsyncCreateResponse response = client.getTemplateApi().extractTemplate(registeredTemplate.getId(), ExtractMode.HTTP_DOWNLOAD, registeredTemplate.getZoneId()); assertTrue(jobComplete.apply(response.getJobId()), registeredTemplate.toString()); // Get the result AsyncJob<TemplateExtraction> asyncJob = client.getAsyncJobApi().getAsyncJob(response.getJobId()); TemplateExtraction extract = asyncJob.getResult(); assertNotNull(extract); // Check that the URL can be retrieved String extractUrl = extract.getUrl(); assertNotNull(extractUrl); URI uri = new URI(URLDecoder.decode(extractUrl, "utf-8")); assertTrue(cloudStackContext.utils().http().exists(uri), "does not exist: " + uri); }
@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 boolean apply(Template template) { if (template == null) return false; Template t2 = client.getTemplateClient().getTemplateInZone(template.getId(), zoneId); Logger.CONSOLE.info("%s", t2.getStatus()); return t2.getStatus() == Template.Status.DOWNLOADED; } };
@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(); }
@Override public boolean apply(Template template) { if (template == null) return false; Template t2 = client.getTemplateApi().getTemplateInZone(template.getId(), zoneId); Logger.CONSOLE.info("%s", t2.getStatus()); return t2.getStatus() == Template.Status.DOWNLOADED; } };
Template newTemplate = blockUntilJobCompletesAndReturnResult.<Template>apply(templateJob); logger.info(">> Registered new template %s, waiting for it to become available.", newTemplate.getId()); .id(newTemplate.getId()) .providerId(newTemplate.getId()) .description(cloneTemplate.getName()) .operatingSystem(OperatingSystem.builder().description(cloneTemplate.getName()).build())
vmForRegistration = VirtualMachineClientLiveTest.createVirtualMachineInNetwork(network, registeredTemplate.getId(), client, jobComplete, virtualMachineRunning); assertNotNull(vmForRegistration);
for (Template template : response) { Template newDetails = Iterables.getOnlyElement(client.getTemplateClient().listTemplates( zoneId(template.getZoneId()).id(template.getId()))); Logger.CONSOLE.info("Checking template: " + template); assertEquals(template, client.getTemplateClient().getTemplateInZone(template.getId(), template.getZoneId())); assert template.getId() != null : template; assert template.getName() != null : template; assert template.getDisplayText() != null : template;
for (Template template : response) { Template newDetails = Iterables.getOnlyElement(client.getTemplateApi().listTemplates( zoneId(template.getZoneId()).id(template.getId()))); Logger.CONSOLE.info("Checking template: " + template); assertEquals(template, client.getTemplateApi().getTemplateInZone(template.getId(), template.getZoneId())); assert template.getId() != null : template; assert template.getName() != null : template; assert template.getDisplayText() != null : template;
public T fromTemplate(Template in) { return this .id(in.getId()) .displayText(in.getDisplayText()) .domain(in.getDomain())
public T fromTemplate(Template in) { return this .id(in.getId()) .displayText(in.getDisplayText()) .domain(in.getDomain())