private void assertImageEquals(org.jclouds.compute.domain.Image actual, org.jclouds.compute.domain.Image expected) { // Note that ImageImpl.equals does not compare operating system etc; there's an explicit comment: // equals from super is sufficient to establish identity equivalence assertEquals(actual, expected); assertEquals(actual.getOperatingSystem(), expected.getOperatingSystem()); assertEquals(actual.getStatus(), expected.getStatus()); assertEquals(actual.getBackendStatus(), expected.getBackendStatus()); assertEquals(actual.getVersion(), expected.getVersion()); assertEquals(actual.getDescription(), expected.getDescription()); assertEquals(actual.getDefaultCredentials(), expected.getDefaultCredentials()); }
private void assertImageEquals(org.jclouds.compute.domain.Image actual, org.jclouds.compute.domain.Image expected) { // Note that ImageImpl.equals does not compare operating system etc; there's an explicit comment: // equals from super is sufficient to establish identity equivalence assertEquals(actual, expected); assertEquals(actual.getOperatingSystem(), expected.getOperatingSystem()); assertEquals(actual.getStatus(), expected.getStatus()); assertEquals(actual.getBackendStatus(), expected.getBackendStatus()); assertEquals(actual.getVersion(), expected.getVersion()); assertEquals(actual.getDescription(), expected.getDescription()); assertEquals(actual.getDefaultCredentials(), expected.getDefaultCredentials()); }
public void testConvertLibraryDrive() { LibraryDriveToImage function = new LibraryDriveToImage(driveStatusToImageStatus); Image converted = function.apply(input); assertEquals(converted, expected); assertEquals(converted.getUserMetadata(), expected.getUserMetadata()); assertEquals(converted.getName(), expected.getName()); assertEquals(converted.getDescription(), expected.getDescription()); assertEquals(converted.getStatus(), expected.getStatus()); assertEquals(converted.getOperatingSystem(), expected.getOperatingSystem()); } }
@Test public void testVirtualGuestToImageWhenOperatingSystemIsNull() { VirtualGuest virtualGuest = createVirtualGuestWithoutOperatingSystem(); Image image = new VirtualGuestToImage(operatingSystemToImage).apply(virtualGuest); assertNotNull(image); assertEquals(image.getStatus(), Image.Status.UNRECOGNIZED); assertEquals(image.getOperatingSystem().getFamily(), OsFamily.UNRECOGNIZED); assertEquals(image.getOperatingSystem().getVersion(), "UNRECOGNIZED"); }
public void testDeprecated(){ GoogleComputeEngineImageToImage imageToImage = new GoogleComputeEngineImageToImage(new ImageNameToOperatingSystem()); Deprecated deprecated = Deprecated.create( State.DEPRECATED, // state URI.create("http://baseurl/projects/centos-cloud/global/images/centos-6-2-v20120326test"), // replacement "2014-07-16T22:16:13.468Z", // deprecated "2015-07-16T22:16:13.468Z", // obsolete "2016-07-16T22:16:13.468Z"); // deleted Image image = image("test-deprecated", deprecated); org.jclouds.compute.domain.Image transformed = imageToImage.apply(image); assertEquals(transformed.getStatus(), Status.AVAILABLE); }
@AfterClass(groups = { "integration", "live" }) @Override protected void tearDownContext() { try { view.getComputeService().destroyNodesMatching(inGroup(imageGroup)); Optional<? extends Image> image = getImage(); if (image.isPresent() && image.get().getStatus() != Image.Status.DELETED) { Optional<ImageExtension> imageExtension = view.getComputeService().getImageExtension(); if (imageExtension.isPresent()) { imageExtension.get().deleteImage(image.get().getId()); } } } catch (Exception e) { // Any exception is most likely due to nodes/images not existing, which is the desired result // anyway, so discarding the exception. } super.tearDownContext(); } }
@Test public void testConversionWhereLocationFound() { UUID id = UUID.randomUUID(); Image novaImageToConvert = Image.builder().id(id.toString()).name("Test Image " + id).status(Image.Status.DELETED).build(); OperatingSystem operatingSystem = new OperatingSystem(OsFamily.UBUNTU, "My Test OS", "My Test Version", "x86", "My Test OS", true); ImageInZoneToImage converter = new ImageInZoneToImage(NovaComputeServiceContextModule.toPortableImageStatus, constant(operatingSystem), locationIndex); ImageInZone novaImageInZoneToConvert = new ImageInZone(novaImageToConvert, "az-1.region-a.geo-1"); org.jclouds.compute.domain.Image convertedImage = converter.apply(novaImageInZoneToConvert); assertEquals(convertedImage.getId(), novaImageInZoneToConvert.slashEncode()); assertEquals(convertedImage.getProviderId(), novaImageToConvert.getId()); assertEquals(convertedImage.getLocation(), locationIndex.get().get("az-1.region-a.geo-1")); assertEquals(convertedImage.getName(), novaImageToConvert.getName()); assertEquals(convertedImage.getStatus(), org.jclouds.compute.domain.Image.Status.DELETED); assertEquals(convertedImage.getOperatingSystem(), operatingSystem); }
@Test public void testConversionWhereLocationFound() { UUID id = UUID.randomUUID(); Image novaImageToConvert = Image.builder().id(id.toString()).name("Test Image " + id).status(Image.Status.DELETED).build(); OperatingSystem operatingSystem = new OperatingSystem(OsFamily.UBUNTU, "My Test OS", "My Test Version", "x86", "My Test OS", true); ImageInRegionToImage converter = new ImageInRegionToImage(NovaComputeServiceContextModule.toPortableImageStatus, constant(operatingSystem), locationIndex); ImageInRegion novaImageInRegionToConvert = new ImageInRegion(novaImageToConvert, "az-1.region-a.geo-1"); org.jclouds.compute.domain.Image convertedImage = converter.apply(novaImageInRegionToConvert); assertEquals(convertedImage.getId(), novaImageInRegionToConvert.slashEncode()); assertEquals(convertedImage.getProviderId(), novaImageToConvert.getId()); assertEquals(convertedImage.getLocation(), locationIndex.get().get("az-1.region-a.geo-1")); assertEquals(convertedImage.getName(), novaImageToConvert.getName()); assertEquals(convertedImage.getStatus(), org.jclouds.compute.domain.Image.Status.DELETED); assertEquals(convertedImage.getOperatingSystem(), operatingSystem); }
public void testDeleted(){ GoogleComputeEngineImageToImage imageToImage = new GoogleComputeEngineImageToImage(new ImageNameToOperatingSystem()); Deprecated deprecated = Deprecated.create( State.DELETED, // state URI.create("http://baseurl/projects/centos-cloud/global/images/centos-6-2-v20120326test"), // replacement "2014-07-16T22:16:13.468Z", // deprecated "2015-07-16T22:16:13.468Z", // obsolete "2016-07-16T22:16:13.468Z"); // deleted Image image = image("test-deprecated", deprecated); org.jclouds.compute.domain.Image transformed = imageToImage.apply(image); assertEquals(transformed.getName(), image.name()); assertEquals(transformed.getId(), image.selfLink().toString()); assertEquals(transformed.getProviderId(), image.id()); assertSame(transformed.getOperatingSystem().getFamily(), OsFamily.LINUX); assertEquals(transformed.getUserMetadata().get("deprecatedState"), image.deprecated().state().name()); assertEquals(transformed.getStatus(), Status.DELETED); }
@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(@Nullable org.jclouds.compute.domain.Image input) { if (input == null) { return null; } return Image.builder().id(input.getId()).name(input.getName()).status(input.getStatus().name()) .tags(input.getTags()).version(input.getVersion()).description(input.getDescription()) .operatingSystem(ToOperatingSystem.INSTANCE.apply(input.getOperatingSystem())) .defaultCredentials(ToLoginCredentials.INSTANCE.apply(input.getDefaultCredentials())).build(); } }
@Test public void testOperatingSystemToImage() { OperatingSystem operatingSystem = OperatingSystem.builder() .id("UBUNTU_12_64") .softwareLicense(SoftwareLicense.builder() .softwareDescription(SoftwareDescription.builder() .version("12.04-64 Minimal for CCI") .referenceCode("UBUNTU_12_64") .longDescription("Ubuntu Linux 12.04 LTS Precise Pangolin - Minimal Install (64 bit)") .build()) .build()) .build(); Image image = new OperatingSystemToImage().apply(operatingSystem); assertEquals(image.getId(), operatingSystem.getId()); String referenceCode = operatingSystem.getSoftwareLicense().getSoftwareDescription().getReferenceCode(); assertEquals(image.getDescription(), referenceCode); assertTrue(image.getOperatingSystem().getFamily().toString().equalsIgnoreCase("UBUNTU")); assertEquals(image.getOperatingSystem().getVersion(), "12.04"); assertEquals(image.getOperatingSystem().is64Bit(), true); assertEquals(image.getStatus(), 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 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 static ImageBuilder fromImage(Image image) { return new ImageBuilder().providerId(image.getProviderId()).name(image.getName()).id(image.getId()).location( image.getLocation()).uri(image.getUri()).userMetadata(image.getUserMetadata()).tags(image.getTags()) .version(image.getVersion()).description(image.getDescription()).operatingSystem( image.getOperatingSystem()).status(image.getStatus()).backendStatus(image.getBackendStatus()) .defaultCredentials(image.getDefaultCredentials()); }
public static ImageBuilder fromImage(Image image) { return new ImageBuilder().providerId(image.getProviderId()).name(image.getName()).id(image.getId()).location( image.getLocation()).uri(image.getUri()).userMetadata(image.getUserMetadata()).tags(image.getTags()) .version(image.getVersion()).description(image.getDescription()).operatingSystem( image.getOperatingSystem()).status(image.getStatus()).backendStatus(image.getBackendStatus()) .defaultCredentials(image.getDefaultCredentials()); }
public static ImageBuilder fromImage(Image image) { return new ImageBuilder().providerId(image.getProviderId()).name(image.getName()).id(image.getId()).location( image.getLocation()).uri(image.getUri()).userMetadata(image.getUserMetadata()).tags(image.getTags()) .version(image.getVersion()).description(image.getDescription()).operatingSystem( image.getOperatingSystem()).status(image.getStatus()).backendStatus(image.getBackendStatus()) .defaultCredentials(image.getDefaultCredentials()); }
public static ImageBuilder fromImage(Image image) { return new ImageBuilder().providerId(image.getProviderId()).name(image.getName()).id(image.getId()).location( image.getLocation()).uri(image.getUri()).userMetadata(image.getUserMetadata()).tags(image.getTags()) .version(image.getVersion()).description(image.getDescription()).operatingSystem( image.getOperatingSystem()).status(image.getStatus()).backendStatus(image.getBackendStatus()) .defaultCredentials(image.getDefaultCredentials()); }
assertEquals(image.getStatus(), Status.AVAILABLE); assertEquals(image.getBackendStatus(), "available");
@Test public void testOsImageToImage() throws Exception { final OsImage osImage = OsImage.builder().id("12ea8472-6e4e-4068-b2cb-f04ecacd3962").name("CentOS 5 64-bit") .description("DRaaS CentOS Release 5.9 64-bit").guest(Guest.builder().osCustomization(false) .operatingSystem( OperatingSystem.builder().id("CENTOS564").displayName("CENTOS5/64").family("UNIX").build()) .build()).cpu(CPU.builder().count(2).speed("STANDARD").coresPerSocket(1).build()).memoryGb(4) .nics(ImmutableList.of(ImageNic.builder().networkAdapter("E1000").key(4040).build())).disks(ImmutableList .of(Disk.builder().id("98299851-37a3-4ebe-9cf1-090da9ae42a0").scsiId(0).sizeGb(20).speed("STANDARD") .build())).softwareLabels(Lists.<String>newArrayList()).osImageKey("T-CENT-5-64-2-4-10") .createTime(DatatypeConverter.parseDateTime("2016-06-09T17:36:31.000Z").getTime()).datacenterId("EU6") .cluster(Cluster.builder().id("EU6-01").name("my cluster name").build()).build(); final Image image = baseImageToImage.apply(osImage); assertEquals(osImage.id(), image.getId()); assertEquals(osImage.name(), image.getName()); assertEquals(Image.Status.AVAILABLE, image.getStatus()); final org.jclouds.compute.domain.OperatingSystem operatingSystem = image.getOperatingSystem(); assertEquals(osImage.name(), operatingSystem.getName()); assertEquals(osImage.description(), operatingSystem.getDescription()); assertTrue(operatingSystem.is64Bit()); assertEquals(zone, image.getLocation()); }