/** * {@inheritDoc} */ @Override public Builder arch(String arch) { return Builder.class.cast(super.arch(arch)); }
/** * {@inheritDoc} */ @Override public Builder arch(String arch) { return Builder.class.cast(super.arch(arch)); }
/** * {@inheritDoc} */ @Override public Builder arch(String arch) { return Builder.class.cast(super.arch(arch)); }
@Override public OperatingSystem apply(DiskImage image) { checkNotNull(image, "disk image"); // convert to short name rhel to accommodate ComputeServiceUtils // conventions String shortOsName = image.getOsName().replace( "Red Hat Enterprise Linux", "rhel"); OsFamily osFamily = ComputeServiceUtils .parseOsFamilyOrUnrecognized(shortOsName); OperatingSystem.Builder builder = OperatingSystem.builder(); builder.name(image.getOsName()); builder.family(osFamily); builder.is64Bit(image.getOsName().contains("64bit") || image.getOsName().contains("64 bit") || image.getOsName().contains("x64")); // OsType returns guest type (hvm, pv), which aws-ec2 is mapping to arch builder.arch(image.getOsType()); Matcher m = OS_VERSION_PATTERN.matcher(image.getOsName()); if (m.matches()) { builder.version(m.group(1)); } builder.description(image.getOsName()); return builder.build(); } }
@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(); }
@Test public void testApplyWhereTagDoesntMatchAndImageHardwareAndLocationFound() throws UnknownHostException { RunningInstanceToNodeMetadata parser = createNodeParser(ImmutableSet.of(m1_small().build()), ImmutableSet .of(provider), EC2ImageParserTest.convertImages("/amzn_images.xml"), ImmutableMap .<String, Credentials> of()); RunningInstance server = firstInstanceFromResource("/describe_instances_running.xml"); assertEquals( parser.apply(server).toString(), new NodeMetadataBuilder() .hostname("ip-10-243-42-70") .status(Status.RUNNING).backendStatus("running") .privateAddresses(ImmutableSet.of("10.243.42.70")) .publicAddresses(ImmutableSet.of("174.129.81.68")) .imageId("us-east-1/ami-82e4b5c7") .hardware(m1_small().build()) .operatingSystem( new OperatingSystem.Builder().family(OsFamily.UNRECOGNIZED).version("").arch("paravirtual") .description("137112412989/amzn-ami-0.9.7-beta.i386-ebs").is64Bit(false).build()) .id("us-east-1/i-0799056f").providerId("i-0799056f").location(provider).build().toString()); }
public void testParseCentOsOnMarketplaceImage() { Set<org.jclouds.compute.domain.Image> result = convertImages("/centos_marketplace_images.xml"); assertEquals( Iterables.get(result, 0), new ImageBuilder() .name("CentOS Linux 7 x86_64 HVM EBS 1704_01-b7ee8a69-ee97-4a49-9e68-afaee216db2e-ami-d52f5bc3.4") .operatingSystem( new OperatingSystem.Builder().family(OsFamily.CENTOS).arch("x86_64") .version("7").description("aws-marketplace/CentOS Linux 7 x86_64 HVM EBS 1704_01-b7ee8a69-ee97-4a49-9e68-afaee216db2e-ami-d52f5bc3.4") .is64Bit(true).build()).description("CentOS Linux 7 x86_64 HVM EBS 1704_01") .defaultCredentials(LoginCredentials.builder().user("centos").build()).id("us-east-1/ami-061b1560") .providerId("ami-061b1560").location(defaultLocation).version("7") .userMetadata(ImmutableMap.of( "owner", "679593333241", "rootDeviceType", "ebs", "virtualizationType", "hvm", "hypervisor", "xen")) .status(org.jclouds.compute.domain.Image.Status.AVAILABLE).build()); assertEquals(Iterables.get(result, 0).getStatus(), org.jclouds.compute.domain.Image.Status.AVAILABLE); }
public void testParseCCImage() { Set<org.jclouds.compute.domain.Image> result = convertImages("/describe_images_cc.xml"); assertEquals( Iterables.get(result, 0), new ImageBuilder() .name("EC2 CentOS 5.4 HVM AMI") .operatingSystem( new OperatingSystem.Builder().family(OsFamily.CENTOS).arch("hvm").version("5.4") .description("amazon/EC2 CentOS 5.4 HVM AMI").is64Bit(true).build()) .description("EC2 CentOS 5.4 HVM AMI") .defaultCredentials(LoginCredentials.builder().user("root").build()).id("us-east-1/ami-7ea24a17") .providerId("ami-7ea24a17").location(defaultLocation) .userMetadata(ImmutableMap.of( "owner", "206029621532", "rootDeviceType", "ebs", "virtualizationType", "hvm", "hypervisor", "xen")) .status(org.jclouds.compute.domain.Image.Status.AVAILABLE).build()); assertEquals(Iterables.get(result, 0).getStatus(), org.jclouds.compute.domain.Image.Status.AVAILABLE); }
public static NodeMetadata expectedNodeMetadataFromResource(int id, String resource, Location location, int loginPort) { return new NodeMetadataBuilder() .ids("cluster-" + id) .group("hadoop") .name("cluster-" + id) .loginPort(loginPort) .hostname("cluster-" + id + ".mydomain.com") .location(location) .userMetadata(ImmutableMap.of("Name", "foo")) .tags(ImmutableSet.of("vanilla")) .status(Status.RUNNING) .operatingSystem( OperatingSystem.builder().description("redhat").family(OsFamily.RHEL).arch("x86").version("5.3") .build()) .publicAddresses(ImmutableSet.of("cluster-" + id + ".mydomain.com")) .credentials( LoginCredentials.builder().user("myUser").privateKey(NodesFromYamlTest.key).password("happy bear") .authenticateSudo(true).build()).build(); }
@Override public Image apply(LibraryDrive libraryDrive) { return new ImageBuilder() .ids(libraryDrive.getUuid()) .userMetadata(libraryDrive.getMeta()) .name(libraryDrive.getName()) .description(libraryDrive.getDescription()) .operatingSystem(OperatingSystem.builder() .name(libraryDrive.getName()) .arch(libraryDrive.getArch()) .is64Bit(libraryDrive.getArch() != null && libraryDrive.getArch().equals("64")) .family(libraryDrive.getOs() == null ? null : OsFamily.fromValue(libraryDrive.getOs())) .version(libraryDrive.getVersion()) .description(libraryDrive.getDescription()) .build()) .status(driveStatusToNodeStatus.get(libraryDrive.getStatus())) .build(); } }
@Override public Image apply(LibraryDrive libraryDrive) { return new ImageBuilder() .ids(libraryDrive.getUuid()) .userMetadata(libraryDrive.getMeta()) .name(libraryDrive.getName()) .description(libraryDrive.getDescription()) .operatingSystem(OperatingSystem.builder() .name(libraryDrive.getName()) .arch(libraryDrive.getArch()) .is64Bit(libraryDrive.getArch() != null && libraryDrive.getArch().equals("64")) .family(libraryDrive.getOs() == null ? null : OsFamily.fromValue(libraryDrive.getOs())) .version(libraryDrive.getVersion()) .description(libraryDrive.getDescription()) .build()) .status(driveStatusToNodeStatus.get(libraryDrive.getStatus())) .build(); } }
@Test public void testApplyWhereTagDoesntMatchAndImageAndLocationFoundAndHardwareNotFound() throws UnknownHostException { RunningInstanceToNodeMetadata parser = createNodeParser(ImmutableSet.<Hardware> of(), ImmutableSet.of(provider), EC2ImageParserTest.convertImages("/amzn_images.xml"), ImmutableMap.<String, Credentials> of()); RunningInstance server = firstInstanceFromResource("/describe_instances_running.xml"); assertEquals( parser.apply(server).toString(), new NodeMetadataBuilder() .status(Status.RUNNING).backendStatus("running") .hostname("ip-10-243-42-70") .privateAddresses(ImmutableSet.of("10.243.42.70")) .publicAddresses(ImmutableSet.of("174.129.81.68")) .imageId("us-east-1/ami-82e4b5c7") .operatingSystem( new OperatingSystem.Builder().family(OsFamily.UNRECOGNIZED).version("").arch("paravirtual") .description("137112412989/amzn-ami-0.9.7-beta.i386-ebs").is64Bit(false).build()) .id("us-east-1/i-0799056f").providerId("i-0799056f").location(provider).build().toString()); }
@Test public void testApplyWhereTagDoesntMatchAndImageAndLocationFoundAndHardwareNotFound() throws UnknownHostException { RunningInstanceToNodeMetadata parser = createNodeParser(ImmutableSet.<Hardware> of(), ImmutableSet.of(provider), EC2ImageParserTest.convertImages("/amzn_images.xml"), ImmutableMap.<String, Credentials> of()); RunningInstance server = firstInstanceFromResource("/describe_instances_running.xml"); assertEquals( parser.apply(server).toString(), new NodeMetadataBuilder() .status(Status.RUNNING).backendStatus("running") .hostname("ip-10-243-42-70") .privateAddresses(ImmutableSet.of("10.243.42.70")) .publicAddresses(ImmutableSet.of("174.129.81.68")) .imageId("us-east-1/ami-82e4b5c7") .operatingSystem( new OperatingSystem.Builder().family(OsFamily.UNRECOGNIZED).version("").arch("paravirtual") .description("137112412989/amzn-ami-0.9.7-beta.i386-ebs").is64Bit(false).build()) .id("us-east-1/i-0799056f").providerId("i-0799056f").location(provider).build().toString()); }
@Test public void testApplyWhereTagDoesntMatchAndImageHardwareAndLocationFound() throws UnknownHostException { RunningInstanceToNodeMetadata parser = createNodeParser(ImmutableSet.of(m1_small().build()), ImmutableSet .of(provider), EC2ImageParserTest.convertImages("/amzn_images.xml"), ImmutableMap .<String, Credentials> of()); RunningInstance server = firstInstanceFromResource("/describe_instances_running.xml"); assertEquals( parser.apply(server).toString(), new NodeMetadataBuilder() .hostname("ip-10-243-42-70") .status(Status.RUNNING).backendStatus("running") .privateAddresses(ImmutableSet.of("10.243.42.70")) .publicAddresses(ImmutableSet.of("174.129.81.68")) .imageId("us-east-1/ami-82e4b5c7") .hardware(m1_small().build()) .operatingSystem( new OperatingSystem.Builder().family(OsFamily.UNRECOGNIZED).version("").arch("paravirtual") .description("137112412989/amzn-ami-0.9.7-beta.i386-ebs").is64Bit(false).build()) .id("us-east-1/i-0799056f").providerId("i-0799056f").location(provider).build().toString()); }
public void testParseVostokImage() { Set<org.jclouds.compute.domain.Image> result = convertImages("/vostok.xml"); assertEquals( Iterables.get(result, 0), new ImageBuilder() .operatingSystem( new OperatingSystem.Builder().family(OsFamily.UNRECOGNIZED).arch("paravirtual").version("") .description("vostok-builds/vostok-0.95-5622/vostok-0.95-5622.manifest.xml") .is64Bit(false).build()) .description("vostok-builds/vostok-0.95-5622/vostok-0.95-5622.manifest.xml") .defaultCredentials(LoginCredentials.builder().user("root").build()).id("us-east-1/ami-870de2ee") .providerId("ami-870de2ee").location(defaultLocation).version("5622") .userMetadata(ImmutableMap.of("owner", "133804938231", "rootDeviceType", "instance-store")) .status(org.jclouds.compute.domain.Image.Status.AVAILABLE).build()); }
/** * {@inheritDoc} */ @Override public Builder arch(String arch) { return Builder.class.cast(super.arch(arch)); }
public Builder fromOperatingSystem(OperatingSystem in) { return family(in.getFamily()).name(in.getName()).version(in.getVersion()).arch(in.getArch()).description( in.getDescription()).is64Bit(in.is64Bit()); } }
public Builder fromOperatingSystem(OperatingSystem in) { return family(in.getFamily()).name(in.getName()).version(in.getVersion()).arch(in.getArch()).description( in.getDescription()).is64Bit(in.is64Bit()); } }
public Builder fromOperatingSystem(OperatingSystem in) { return family(in.getFamily()).name(in.getName()).version(in.getVersion()).arch(in.getArch()).description( in.getDescription()).is64Bit(in.is64Bit()); } }
public Builder fromOperatingSystem(OperatingSystem in) { return family(in.getFamily()).name(in.getName()).version(in.getVersion()).arch(in.getArch()).description( in.getDescription()).is64Bit(in.is64Bit()); } }