private void assertUbuntu(Image image, String version) { // Expect owner Canonical assertEquals(image.getUserMetadata().get("owner"), "099720109477", "image="+image); assertTrue(image.getName().toLowerCase().contains("ubuntu"), "image="+image); assertTrue(image.getName().contains(version), "image="+image); assertEquals(image.getOperatingSystem().getFamily(), OsFamily.UBUNTU, "image="+image); assertEquals(image.getOperatingSystem().getVersion(), version, "image="+image); }
@Test(enabled = true, dependsOnMethods = "testCorrectAuthException") public void testImagesResolveCorrectly() { Template defaultTemplate = client.templateBuilder().build(); assertEquals(defaultTemplate.getImage().getId(), defaultTemplate.getImage().getLocation().getId() + "/" + defaultTemplate.getImage().getProviderId()); Template byId = client.templateBuilder().imageId(defaultTemplate.getImage().getId()).build(); assertEquals(byId.getImage(), defaultTemplate.getImage()); }
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()); }
@Override public boolean apply(Image input) { return input.getProviderId().equals(instance.getImageId()) && (input.getLocation() == null || input.getLocation().equals(location) || input.getLocation().equals( location.getParent())); } }
@Override public boolean apply(Image input) { return input.getProviderId().equals(from.getTemplateId() + "") // either location free image (location is null) or in the same zone as the VM && (input.getLocation() == null || input.getId().equals(from.getZoneId() + "")); } }).orNull();
@Override public RegionAndName apply(Image from) { checkState(from.getLocation() != null, "in ec2, image locations cannot be null; typically, they are Region-scoped"); String[] segments = from.getId().split("/"); Preconditions.checkArgument(segments.length == 2, "Wrong form for AWS image ID: " + from); return new RegionAndName(segments[0], segments[1]); }
public void testWhenCredentialsNotPresentInImageTemplateOptionsOrParameterReturnNull() { Credentials expected = null; Image image = createMock(Image.class); Template template = createMock(Template.class); expect(template.getImage()).andReturn(image); expect(image.getDefaultCredentials()).andReturn(null); expect(template.getOptions()).andReturn(new TemplateOptions()); replay(template, image); assertEquals(fn.apply(template, null), expected); verify(template); verify(image); }
@Test public void testDefaultTemplateBuilder() throws IOException { Template defaultTemplate = view.getComputeService().templateBuilder().build(); assert defaultTemplate.getImage().getOperatingSystem().getVersion().matches("1[012].[10][04]") : defaultTemplate .getImage().getOperatingSystem().getVersion(); assertEquals(defaultTemplate.getImage().getOperatingSystem().is64Bit(), true); assertEquals(defaultTemplate.getImage().getOperatingSystem().getFamily(), OsFamily.UBUNTU); assertEquals(getCores(defaultTemplate.getHardware()), 1.0d); }
@Test public void testTemplateBuilder() { Template defaultTemplate = this.view.getComputeService().templateBuilder().build(); assertEquals(defaultTemplate.getImage().getOperatingSystem().is64Bit(), true); assertEquals(defaultTemplate.getImage().getOperatingSystem().getFamily(), OsFamily.UBUNTU); assertTrue(defaultTemplate.getImage().getName().contains("Ubuntu")); assertEquals(defaultTemplate.getImage().getDefaultCredentials().getUser(), "root"); assertEquals(defaultTemplate.getLocation().getId(), "LON"); assertEquals(defaultTemplate.getImage().getLocation().getId(), "LON"); assertEquals(defaultTemplate.getHardware().getLocation().getId(), "LON"); assertEquals(defaultTemplate.getOptions().as(NovaTemplateOptions.class).shouldAutoAssignFloatingIp(), false); assertNull(defaultTemplate.getOptions().as(NovaTemplateOptions.class).getDiskConfig()); assertEquals(getCores(defaultTemplate.getHardware()), 1.0d); }
@Test public void testTemplateChoiceForInstanceByImageId() throws Exception { Template template = newTemplateBuilder().imageId("us-east-1/cc-image").build(); assert template != null : "The returned template was null, but it should have a value."; assertEquals(template.getImage().getId(), "us-east-1/cc-image"); }
@Test public void testFastestTemplateBuilder() throws IOException { Template fastestTemplate = view.getComputeService().templateBuilder().fastest().osFamily(AMZN_LINUX).build(); assert fastestTemplate.getImage().getProviderId().startsWith("ami-") : fastestTemplate; assertEquals(fastestTemplate.getHardware().getProviderId(), InstanceType.C4_8XLARGE); assertEquals(fastestTemplate.getImage().getOperatingSystem().is64Bit(), true); assertEquals(fastestTemplate.getImage().getOperatingSystem().getFamily(), AMZN_LINUX); assertEquals(fastestTemplate.getImage().getUserMetadata().get("rootDeviceType"), "ebs"); assertEquals(fastestTemplate.getLocation().getId(), "us-east-1"); assertEquals(getCores(fastestTemplate.getHardware()), 36.0d); assertEquals(fastestTemplate.getImage().getOperatingSystem().getArch(), "hvm"); }
@Test public void testTemplateBuilderCanUseImageId() throws Exception { Template defaultTemplate = view.getComputeService().templateBuilder().build(); view.close(); setupContext(); Template template = view.getComputeService().templateBuilder().imageId(defaultTemplate.getImage().getId()) .locationId(defaultTemplate.getLocation().getId()).build(); assertEquals(template.getImage(), defaultTemplate.getImage()); }
public void testReturnRootWhenNotOnWindows() { Image image = createMock(Image.class); expect(image.getId()).andReturn("1"); expect(image.getOperatingSystem()).andReturn( OperatingSystem.builder().family(OsFamily.LINUX).description("foo").build()).atLeastOnce(); replay(image); Credentials creds = new Credentials("root", null); assertEquals(new ReturnCredentialsBoundToImage(null, ImmutableMap.<String, Credentials> of(), ImmutableMap .<OsFamily, LoginCredentials> of()).apply(image), creds); verify(image); }
@Test public void testTemplateChoiceForInstanceByImageIdDoesNotGetAllImages() throws Exception { @SuppressWarnings("unchecked") Supplier<Set<? extends Image>> images = createMock(Supplier.class); replay(images); final Image image = new ImageBuilder().providerId("cc-image").name("image").id("us-east-1/cc-image").location(location) .operatingSystem(new OperatingSystem(OsFamily.UBUNTU, null, "1.0", "hvm", "ubuntu", true)) .description("description").version("1.0").defaultCredentials(LoginCredentials.builder().user("root").build()) .status(Image.Status.AVAILABLE) .build(); Map<RegionAndName, Image> imageMap = ImmutableMap.of( new RegionAndName(image.getLocation().getId(), image.getProviderId()), image); // weird compilation error means have to declare extra generics for call to build() - see https://bugs.eclipse.org/bugs/show_bug.cgi?id=365818 Supplier<LoadingCache<RegionAndName, ? extends Image>> imageCache = Suppliers.<LoadingCache<RegionAndName, ? extends Image>> ofInstance( CacheBuilder.newBuilder().<RegionAndName,Image>build(CacheLoader.from(Functions.forMap(imageMap)))); Template template = newTemplateBuilder(images, imageCache).imageId("us-east-1/cc-image").build(); assert template != null : "The returned template was null, but it should have a value."; assertEquals(template.getImage().getId(), "us-east-1/cc-image"); }
@Test public void testTemplateBuilderMicro() throws IOException { Template microTemplate = view.getComputeService().templateBuilder().hardwareId(InstanceType.T1_MICRO) .osFamily(OsFamily.UBUNTU).osVersionMatches("10.10").os64Bit(true).build(); assert microTemplate.getImage().getProviderId().startsWith("ami-") : microTemplate; assertEquals(microTemplate.getImage().getOperatingSystem().getVersion(), "10.10"); assertEquals(microTemplate.getImage().getOperatingSystem().is64Bit(), true); assertEquals(microTemplate.getImage().getOperatingSystem().getFamily(), OsFamily.UBUNTU); assertEquals(microTemplate.getImage().getUserMetadata().get("rootDeviceType"), "ebs"); assertEquals(microTemplate.getLocation().getId(), "us-east-1"); assertEquals(getCores(microTemplate.getHardware()), 1.0d); assertEquals(microTemplate.getImage().getOperatingSystem().getArch(), "paravirtual"); }
@Test(groups={"Live", "Live-sanity"}) public void testSpecificImageId() throws Exception { // Amazon's "SUSE Linux Enterprise Server 12 SP2 (HVM), SSD Volume Type" String imageId = AWS_EC2_USEAST_REGION_NAME + "/ami-6f86a478"; obtainMachine(ImmutableMap.of(JcloudsLocation.IMAGE_ID, imageId)); Image image = template.getImage(); assertEquals(image.getId(), imageId, "image="+image); }
@Test public void testLoadImage() { ImageCacheSupplier imageCache = new ImageCacheSupplier(Suppliers.<Set<? extends Image>> ofInstance(images), 60, Atomics.<AuthorizationException> newReference(), Providers.of(getImageStrategy)); assertEquals(imageCache.get().size(), 1); Optional<? extends Image> image = imageCache.get("foo"); assertTrue(image.isPresent()); assertEquals(image.get().getName(), "imageName-foo"); assertEquals(imageCache.get().size(), 2); }
@Test(dataProvider = "osSupported") public void testTemplateBuilderCanFind(OsFamilyVersion64Bit matrix) throws InterruptedException { TemplateBuilder builder = view.getComputeService().templateBuilder().osFamily(matrix.family) .os64Bit(matrix.is64Bit); if (!matrix.version.equals("")) builder.osVersionMatches("^" + matrix.version + "$"); Template template = builder.build(); if (!matrix.version.equals("")) assertEquals(template.getImage().getOperatingSystem().getVersion(), matrix.version); assertEquals(template.getImage().getOperatingSystem().is64Bit(), matrix.is64Bit); assertEquals(template.getImage().getOperatingSystem().getFamily(), matrix.family); }
@Test public void testTemplateBuilderCanUseImageIdFromNonDefaultOwner() { // This is the id of a public image, not owned by one of the four default // owners String imageId = "us-east-1/ami-44d02f2d"; Template defaultTemplate = view.getComputeService().templateBuilder().imageId(imageId) .imageMatches(EC2ImagePredicates.rootDeviceType(RootDeviceType.INSTANCE_STORE)).build(); assert defaultTemplate.getImage().getProviderId().startsWith("ami-") : defaultTemplate; assertEquals(defaultTemplate.getImage().getId(), imageId); }
public void testDefaultIsToReturnConfiguredCredentialInStore() { Image image = createMock(Image.class); expect(image.getId()).andReturn("1").times(2); replay(image); assertEquals(new ReturnCredentialsBoundToImage(null, ImmutableMap.<String, Credentials> of("image#1", creds), ImmutableMap.<OsFamily, LoginCredentials> of()).apply(image), creds); verify(image); }