@Override public Iterable<ImageInRegion> apply(final Image image) { return transform(image.regions(), new Function<String, ImageInRegion>() { @Override public ImageInRegion apply(String region) { return availableRegionsIds.contains(region) ? ImageInRegion.create(image, region) : null; } }); } }), notNull()));
@Override public Image apply(final ImageInRegion input) { String description = input.image().distribution() + " " + input.image().name(); ImageBuilder builder = new ImageBuilder(); // Private images don't have a slug builder.id(encodeId(input)); builder.providerId(String.valueOf(input.image().id())); builder.name(input.image().name()); builder.description(description); builder.status(Status.AVAILABLE); builder.location(getLocation(input.region())); OperatingSystem os = OperatingSystem.create(input.image().name(), input.image().distribution()); builder.operatingSystem(builder() .name(os.distribution().value()) .family(os.distribution().osFamily()) .description(description) .arch(os.arch()) .version(os.version()) .is64Bit(os.is64bit()) .build()); ImmutableMap.Builder<String, String> metadata = ImmutableMap.builder(); metadata.put("publicImage", String.valueOf(input.image().isPublic())); builder.userMetadata(metadata.build()); return builder.build(); }
@Override public boolean apply(Image input) { return "Ubuntu".equalsIgnoreCase(input.distribution()) && !isNullOrEmpty(input.slug()) && input.regions().contains(region.slug()); } }).get();
public void testGetImage() { Optional<Image> first = api().list().concat().first(); assertTrue(first.isPresent(), "At least one image was expected to exist"); assertNotNull(api().get(first.get().id())); }
@Override public boolean apply(Image input) { return !isNullOrEmpty(input.slug()); } });
@Override public boolean apply(Image input) { found.incrementAndGet(); return !isNullOrEmpty(input.name()); } }), "All images must have the 'name' field populated");
@Override public boolean apply(Image input) { found.incrementAndGet(); return !isNullOrEmpty(input.distribution()); } }), "All images must have the 'distribution' field populated");
@Test public void testConvertDropletOldImage() throws ParseException { org.jclouds.digitalocean2.domain.Image image = org.jclouds.digitalocean2.domain.Image.create(2, "14.04 x64", "distribution", "Ubuntu", "ubuntu2-1404-x86", true, ImmutableList.of("sfo1"), new Date(), 20, 20);
@Override public boolean apply(Size input) { return input.available() && input.regions().contains(region.slug()) && input.disk() >= image.minDiskSize(); } }));
@Override public Image apply(final ImageInRegion input) { String description = input.image().distribution() + " " + input.image().name(); ImageBuilder builder = new ImageBuilder(); // Private images don't have a slug builder.id(encodeId(input)); builder.providerId(String.valueOf(input.image().id())); builder.name(input.image().name()); builder.description(description); builder.status(Status.AVAILABLE); builder.location(getLocation(input.region())); OperatingSystem os = OperatingSystem.create(input.image().name(), input.image().distribution()); builder.operatingSystem(builder() .name(os.distribution().value()) .family(os.distribution().osFamily()) .description(description) .arch(os.arch()) .version(os.version()) .is64Bit(os.is64bit()) .build()); ImmutableMap.Builder<String, String> metadata = ImmutableMap.builder(); metadata.put("publicImage", String.valueOf(input.image().isPublic())); builder.userMetadata(metadata.build()); return builder.build(); }
logger.info(">> image with id %s for droplet %s was not found. " + "This might be because the image that was used to create the droplet has a new id.", input.image().id(), input.id());
public void testGetImageBySlug() { Optional<Image> first = api().list().concat().firstMatch(new Predicate<Image>() { @Override public boolean apply(Image input) { return !isNullOrEmpty(input.slug()); } }); assertTrue(first.isPresent(), "At least one image with the 'slug' field set was expected to exist"); assertNotNull(api().get(first.get().slug())); }
@Override public boolean apply(Image input) { found.incrementAndGet(); return !isNullOrEmpty(input.name()); } }), "All images must have the 'name' field populated");
@Test public void testConvertImage() { Image image = Image.create(1, "14.04 x64", "distribution", "Ubuntu", "ubuntu-1404-x86", true, ImmutableList.of("sfo1", "lon1"), new Date(), 20, 20); org.jclouds.compute.domain.Image expected = new ImageBuilder() .id("lon1/ubuntu-1404-x86") // Location scoped images have the location encoded in the id .providerId("1") .name("14.04 x64") .description("Ubuntu 14.04 x64") .status(AVAILABLE) .operatingSystem( OperatingSystem.builder().name("Ubuntu").description("Ubuntu 14.04 x64").family(OsFamily.UBUNTU) .version("14.04").arch("x64").is64Bit(true).build()) .location(Iterables.get(locations, 1)) .userMetadata(ImmutableMap.of("publicImage", "true")).build(); org.jclouds.compute.domain.Image result = function.apply(ImageInRegion.create(image, "lon1")); assertEquals(result, expected); assertEquals(result.getDescription(), expected.getDescription()); assertEquals(result.getOperatingSystem(), expected.getOperatingSystem()); assertEquals(result.getStatus(), expected.getStatus()); assertEquals(result.getLocation(), Iterables.get(locations, 1)); } }
@Override public Image apply(final ImageInRegion input) { String description = input.image().distribution() + " " + input.image().name(); ImageBuilder builder = new ImageBuilder(); // Private images don't have a slug builder.id(encodeId(input)); builder.providerId(String.valueOf(input.image().id())); builder.name(input.image().name()); builder.description(description); builder.status(Status.AVAILABLE); builder.location(getLocation(input.region())); OperatingSystem os = OperatingSystem.create(input.image().name(), input.image().distribution()); builder.operatingSystem(builder() .name(os.distribution().value()) .family(os.distribution().osFamily()) .description(description) .arch(os.arch()) .version(os.version()) .is64Bit(os.is64bit()) .build()); ImmutableMap.Builder<String, String> metadata = ImmutableMap.builder(); metadata.put("publicImage", String.valueOf(input.image().isPublic())); builder.userMetadata(metadata.build()); return builder.build(); }
logger.info(">> image with id %s for droplet %s was not found. " + "This might be because the image that was used to create the droplet has a new id.", input.image().id(), input.id());
public void testCreate() { DropletCreate dropletCreate = api().create(prefix + "-droplet-livetest", region.slug(), size.slug(), image.slug(), CreateDropletOptions.builder().backupsEnabled(true).addSshKeyId(key.id()).build()); dropletId = dropletCreate.droplet().id(); assertNodeRunning(dropletId); Droplet droplet = api().get(dropletId); assertNotNull(droplet, "Droplet should not be null"); }
@Override public Iterable<ImageInRegion> apply(final Image image) { return transform(image.regions(), new Function<String, ImageInRegion>() { @Override public ImageInRegion apply(String region) { return availableRegionsIds.contains(region) ? ImageInRegion.create(image, region) : null; } }); } }), notNull()));