@Override public LoginCredentials apply(Object resourceToAuthenticate) { if (creds != null) return creds; Builder credentials = LoginCredentials.builder().user("root"); if (resourceToAuthenticate != null) { String owner = null; String name = null; if (resourceToAuthenticate instanceof Image) { owner = Image.class.cast(resourceToAuthenticate).getImageOwnerId(); name = Image.class.cast(resourceToAuthenticate).getName(); } else if (resourceToAuthenticate instanceof org.jclouds.compute.domain.Image) { owner = org.jclouds.compute.domain.Image.class.cast(resourceToAuthenticate).getUserMetadata().get("owner"); name = org.jclouds.compute.domain.Image.class.cast(resourceToAuthenticate).getUserMetadata().get("name"); } checkArgument(owner != null, "Resource must be an image (for EC2)"); // canonical/alestic images use the ubuntu user to login if (owner.matches("063491364108|099720109477")) { credentials.user("ubuntu"); // http://typepad.com/2010/09/introducing-amazon-linux-ami.html } else if (owner.equals("137112412989")) { credentials.user("ec2-user"); } else if (owner.equals("679593333241") && name != null && name.startsWith("CentOS")) { credentials.user("centos"); } } return credentials.build(); } }
@Override public LoginCredentials apply(Object resourceToAuthenticate) { if (creds != null) return creds; Builder credentials = LoginCredentials.builder().user("root"); if (resourceToAuthenticate != null) { String owner = null; String name = null; if (resourceToAuthenticate instanceof Image) { owner = Image.class.cast(resourceToAuthenticate).getImageOwnerId(); name = Image.class.cast(resourceToAuthenticate).getName(); } else if (resourceToAuthenticate instanceof org.jclouds.compute.domain.Image) { owner = org.jclouds.compute.domain.Image.class.cast(resourceToAuthenticate).getUserMetadata().get("owner"); name = org.jclouds.compute.domain.Image.class.cast(resourceToAuthenticate).getUserMetadata().get("name"); } checkArgument(owner != null, "Resource must be an image (for EC2)"); // canonical/alestic images use the ubuntu user to login if (owner.matches("063491364108|099720109477")) { credentials.user("ubuntu"); // http://typepad.com/2010/09/introducing-amazon-linux-ami.html } else if (owner.equals("137112412989")) { credentials.user("ec2-user"); } else if (owner.equals("679593333241") && name != null && name.startsWith("CentOS")) { credentials.user("centos"); } } return credentials.build(); } }
imagesToDeregister.add(ebsBackedImageId); final Image ebsBackedImage = getOnlyElement(client.describeImagesInRegion(regionId, imageIds(ebsBackedImageId))); assertEquals(ebsBackedImage.getName(), ebsBackedImageName); assertEquals(ebsBackedImage.getImageType(), ImageType.MACHINE); assertEquals(ebsBackedImage.getRootDeviceType(), RootDeviceType.EBS);
@Test public void testCreateAndListEBSBackedImage() throws Exception { Snapshot snapshot = createSnapshot(); // List of images before... int sizeBefore = client.describeImagesInRegion(regionId).size(); // Register a new image... ebsBackedImageId = client.registerUnixImageBackedByEbsInRegion(regionId, ebsBackedImageName, snapshot.getId(), addNewBlockDevice("/dev/sda2", "myvirtual", 1).withDescription("adrian")); imagesToDeregister.add(ebsBackedImageId); final Image ebsBackedImage = getOnlyElement(client.describeImagesInRegion(regionId, imageIds(ebsBackedImageId))); assertEquals(ebsBackedImage.getName(), ebsBackedImageName); assertEquals(ebsBackedImage.getImageType(), ImageType.MACHINE); assertEquals(ebsBackedImage.getRootDeviceType(), RootDeviceType.EBS); assertEquals(ebsBackedImage.getRootDeviceName(), "/dev/sda1"); assertEquals(ebsBackedImage.getDescription(), "adrian"); assertEquals( ebsBackedImage.getEbsBlockDevices().entrySet(), ImmutableMap.of("/dev/sda1", new Image.EbsBlockDevice(snapshot.getId(), snapshot.getVolumeSize(), true), "/dev/sda2", new Image.EbsBlockDevice(null, 1, false)).entrySet()); // List of images after - should be one larger than before int after = client.describeImagesInRegion(regionId).size(); assertEquals(after, sizeBefore + 1); }
@Override public void reviseParsedImage(org.jclouds.ec2.domain.Image from, ImageBuilder builder, OsFamily family, OperatingSystem.Builder osBuilder) { Image image = Image.builder().id(from.getId()).name(from.getName()).build(); OperatingSystem os = imageToOs.apply(image); osBuilder.description(os.getDescription()); osBuilder.family(os.getFamily()); osBuilder.name(os.getName()); osBuilder.is64Bit(os.is64Bit()); osBuilder.version(os.getVersion()); // arch is accurate already } }
@Override public void reviseParsedImage(org.jclouds.ec2.domain.Image from, ImageBuilder builder, OsFamily family, OperatingSystem.Builder osBuilder) { Image image = Image.builder().id(from.getId()).name(from.getName()).build(); OperatingSystem os = imageToOs.apply(image); osBuilder.description(os.getDescription()); osBuilder.family(os.getFamily()); osBuilder.name(os.getName()); osBuilder.is64Bit(os.is64Bit()); osBuilder.version(os.getVersion()); // arch is accurate already } }
@Override public void reviseParsedImage(org.jclouds.ec2.domain.Image from, ImageBuilder builder, OsFamily family, OperatingSystem.Builder osBuilder) { Image image = Image.builder().id(from.getId()).name(from.getName()).build(); OperatingSystem os = imageToOs.apply(image); osBuilder.description(os.getDescription()); osBuilder.family(os.getFamily()); osBuilder.name(os.getName()); osBuilder.is64Bit(os.is64Bit()); osBuilder.version(os.getVersion()); // arch is accurate already } }
@Override @BeforeClass(groups = { "integration", "live" }) public void setupContext() { super.setupContext(); ec2Api = view.unwrapApi(EC2Api.class); runningTester = retry(new InstanceStateRunning(ec2Api), 600, 5, SECONDS); client = ec2Api.getAMIApi().get(); if (ebsTemplate != null) { Template template = view.getComputeService().templateBuilder().from(ebsTemplate).build(); regionId = template.getLocation().getId(); imageId = template.getImage().getProviderId(); for (Image image : client.describeImagesInRegionWithFilter(regionId, ImmutableMultimap.<String, String>builder() .put("name", ebsBackedImageName).build())) { if (ebsBackedImageName.equals(image.getName())) client.deregisterImageInRegion(regionId, image.getId()); } } }
builder.providerId(from.getId()); builder.id(from.getRegion() + "/" + from.getId()); builder.name(from.getName()); builder.description(from.getDescription() != null ? from.getDescription() : from.getImageLocation()); builder.userMetadata(ImmutableMap.<String, String> builder().put("owner", from.getImageOwnerId()).put(
builder.providerId(from.getId()); builder.id(from.getRegion() + "/" + from.getId()); builder.name(from.getName()); builder.description(from.getDescription() != null ? from.getDescription() : from.getImageLocation()); builder.userMetadata(ImmutableMap.<String, String> builder().put("owner", from.getImageOwnerId()).put(
builder.providerId(from.getId()); builder.id(from.getRegion() + "/" + from.getId()); builder.name(from.getName()); builder.description(from.getDescription() != null ? from.getDescription() : from.getImageLocation()); builder.userMetadata(ImmutableMap.<String, String> builder().put("owner", from.getImageOwnerId()).put(
builder.providerId(from.getId()); builder.id(from.getRegion() + "/" + from.getId()); builder.name(from.getName()); builder.description(from.getDescription() != null ? from.getDescription() : from.getImageLocation()); builder.userMetadata(ImmutableMap.<String, String> builder().put("owner", from.getImageOwnerId()).put(
builder.providerId(from.getId()); builder.id(from.getRegion() + "/" + from.getId()); builder.name(from.getName()); builder.description(from.getDescription() != null ? from.getDescription() : from.getImageLocation()); builder.userMetadata(ImmutableMap.<String, String> builder().put("owner", from.getImageOwnerId()).put(
@Override @BeforeClass(groups = { "integration", "live" }) public void setupContext() { super.setupContext(); ec2Client = view.unwrap(EC2ApiMetadata.CONTEXT_TOKEN).getApi(); runningTester = retry(new InstanceStateRunning(ec2Client), 600, 5, SECONDS); client = ec2Client.getAMIServices(); if (ebsTemplate != null) { Template template = view.getComputeService().templateBuilder().from(ebsTemplate).build(); regionId = template.getLocation().getId(); imageId = template.getImage().getProviderId(); for (Image image : client.describeImagesInRegion(regionId)) { if (ebsBackedImageName.equals(image.getName())) client.deregisterImageInRegion(regionId, image.getId()); } } }