@Override public Image apply(Image arg0) { if (arg0 == null) return null; LoginCredentials credentials = credsForImage.apply(arg0); return credentials != null ? ImageBuilder.fromImage(arg0).defaultCredentials(credentials).build() : arg0; }
@Override public Image apply(Image arg0) { if (arg0 == null) return null; LoginCredentials credentials = credsForImage.apply(arg0); return credentials != null ? ImageBuilder.fromImage(arg0).defaultCredentials(credentials).build() : arg0; }
@Override public Image apply(Image arg0) { if (arg0 == null) return null; LoginCredentials credentials = credsForImage.apply(arg0); return credentials != null ? ImageBuilder.fromImage(arg0).defaultCredentials(credentials).build() : arg0; }
@Override public Image apply(Image arg0) { if (arg0 == null) return null; LoginCredentials credentials = credsForImage.apply(arg0); return credentials != null ? ImageBuilder.fromImage(arg0).defaultCredentials(credentials).build() : arg0; }
@Override public Image apply(@Nullable VAppTemplate from) { if (from == null) return null; ImageBuilder builder = new ImageBuilder(); builder.ids(from.getHref().toASCIIString()); builder.uri(from.getHref()); builder.name(from.getName()); builder.location(findLocationForResource.apply(checkNotNull(parent, "parent"))); builder.description(from.getDescription() != null ? from.getDescription() : from.getName()); builder.operatingSystem(osParser.apply(from.getName())); builder.status(toPortableImageStatus.get(from.getStatus())); builder.defaultCredentials(credentialsProvider.apply(from)); return builder.build(); } }
@Override public Image apply(VCloudExpressVAppTemplate from) { ImageBuilder builder = new ImageBuilder(); builder.ids(from.getHref().toASCIIString()); builder.uri(from.getHref()); builder.name(from.getName()); builder.location(findLocationForResource.apply(checkNotNull(parent, "parent"))); builder.description(from.getDescription() != null ? from.getDescription() : from.getName()); builder.operatingSystem(parseOs(from)); builder.defaultCredentials(credentialsProvider.execute(from)); return builder.build(); }
@Override public Image apply(VAppTemplate from) { ImageBuilder builder = new ImageBuilder(); builder.ids(from.getHref().toASCIIString()); builder.uri(from.getHref()); builder.name(from.getName()); builder.location(findLocationForResource.apply(checkNotNull(parent, "parent"))); builder.description(from.getDescription() != null ? from.getDescription() : from.getName()); OvfEnvelope ovf = client.getOvfEnvelopeForVAppTemplate(from.getHref()); builder.operatingSystem(toComputeOs(ovf)); builder.defaultCredentials(credentialsProvider.execute(from)); return builder.build(); }
@Test public void createByCloningAddsDefaultImageCredentials() throws InterruptedException, ExecutionException { LoginCredentials credentials = LoginCredentials.builder().user("jclouds").password("pass").build(); ImageCacheSupplier imageCache = createMock(ImageCacheSupplier.class); ImageExtension delegate = createMock(ImageExtension.class); AddDefaultCredentialsToImage credsToImage = createMock(AddDefaultCredentialsToImage.class); Map<String, Credentials> credentialStore = Collections.emptyMap(); ImageTemplate template = new CloneImageTemplateBuilder().name("test").nodeId("node1").build(); Image result = new ImageBuilder().id("test") .operatingSystem(OperatingSystem.builder().description("test").build()).status(Status.AVAILABLE).build(); expect(delegate.createImage(template)).andReturn(immediateFuture(result)); expect(credsToImage.apply(result)).andReturn( ImageBuilder.fromImage(result).defaultCredentials(credentials).build()); replay(delegate, credsToImage); Future<Image> image = new DelegatingImageExtension(imageCache, delegate, credsToImage, credentialStore) .createImage(template); assertEquals(image.get().getDefaultCredentials(), credentials); verify(delegate, credsToImage); } }
@Test public void createByCloningDoesNothingIfImageHasCredentials() throws InterruptedException, ExecutionException { LoginCredentials credentials = LoginCredentials.builder().user("jclouds").password("pass").build(); ImageCacheSupplier imageCache = createMock(ImageCacheSupplier.class); ImageExtension delegate = createMock(ImageExtension.class); AddDefaultCredentialsToImage credsToImage = createMock(AddDefaultCredentialsToImage.class); ImageTemplate template = new CloneImageTemplateBuilder().name("test").nodeId("node1").build(); Image result = new ImageBuilder().id("test") .operatingSystem(OperatingSystem.builder().description("test").build()).status(Status.AVAILABLE) .defaultCredentials(credentials).build(); expect(delegate.createImage(template)).andReturn(immediateFuture(result)); replay(delegate, credsToImage); Future<Image> image = new DelegatingImageExtension(imageCache, delegate, credsToImage, null) .createImage(template); // Verify that the exact same instance is returned unmodified assertTrue(image.get() == result); verify(delegate, credsToImage); }
@Test public void createImageRegistersInCacheAndAddsCredentials() { ImageCacheSupplier imageCache = createMock(ImageCacheSupplier.class); ImageExtension delegate = createMock(ImageExtension.class); AddDefaultCredentialsToImage credsToImage = createMock(AddDefaultCredentialsToImage.class); ImageTemplate template = new ImageTemplateImpl("test") { }; Image result = new ImageBuilder().id("test") .operatingSystem(OperatingSystem.builder().description("test").build()).status(Status.AVAILABLE).build(); LoginCredentials credentials = LoginCredentials.builder().user("jclouds").password("pass").build(); Image withCredentials = ImageBuilder.fromImage(result).defaultCredentials(credentials).build(); expect(delegate.createImage(template)).andReturn(immediateFuture(result)); expect(credsToImage.apply(result)).andReturn(withCredentials); imageCache.registerImage(withCredentials); expectLastCall(); replay(delegate, imageCache, credsToImage); new DelegatingImageExtension(imageCache, delegate, credsToImage, null).createImage(template); verify(delegate, imageCache, credsToImage); }
@Override public Image apply(DiskImage from) { checkNotNull(from, "disk image"); ImageBuilder builder = new ImageBuilder(); builder.ids(from.getId()); builder.name(from.getName()); builder.description(from.getDescription()); // in fgcp, if the image is listed it is available builder.status(Status.AVAILABLE); OperatingSystem os = diskImageToOperatingSystem.apply(from); builder.operatingSystem(os); String user = os.getFamily() == OsFamily.WINDOWS ? "Administrator" : "root"; builder.defaultCredentials(LoginCredentials.builder().identity(user).noPassword().build()); return builder.build(); } }
@Override public Image apply(DiskImage from) { checkNotNull(from, "disk image"); ImageBuilder builder = new ImageBuilder(); builder.ids(from.getId()); builder.name(from.getName()); builder.description(from.getDescription()); // in fgcp, if the image is listed it is available builder.status(Status.AVAILABLE); OperatingSystem os = diskImageToOperatingSystem.apply(from); builder.operatingSystem(os); String user = os.getFamily() == OsFamily.WINDOWS ? "Administrator" : "root"; builder.defaultCredentials(LoginCredentials.builder().identity(user).noPassword().build()); return builder.build(); } }
@Override public Image apply(DiskImage from) { checkNotNull(from, "disk image"); ImageBuilder builder = new ImageBuilder(); builder.ids(from.getId()); builder.name(from.getName()); builder.description(from.getDescription()); // in fgcp, if the image is listed it is available builder.status(Status.AVAILABLE); OperatingSystem os = diskImageToOperatingSystem.apply(from); builder.operatingSystem(os); String user = os.getFamily() == OsFamily.WINDOWS ? "Administrator" : "root"; builder.defaultCredentials(LoginCredentials.builder().identity(user).noPassword().build()); return builder.build(); } }
@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"); }
private TemplateBuilder newTemplateBuilder() { final Supplier<Set<? extends Image>> images = Suppliers.<Set<? extends Image>> ofInstance(ImmutableSet.<Image> of( 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(), new ImageBuilder().providerId("normal-image").name("image").id("us-east-1/normal-image").location(location) .operatingSystem(new OperatingSystem(OsFamily.UBUNTU, null, "1.0", "paravirtual", "ubuntu", true)) .description("description").version("1.0").defaultCredentials(LoginCredentials.builder().user("root").build()) .status(Image.Status.AVAILABLE) .build())); // weird compilation error means have to cast this - see https://bugs.eclipse.org/bugs/show_bug.cgi?id=365818 @SuppressWarnings("unchecked") ImmutableMap<RegionAndName, Image> imageMap = (ImmutableMap<RegionAndName, Image>) ImagesToRegionAndIdMap.imagesToMap(images.get()); Supplier<LoadingCache<RegionAndName, ? extends Image>> imageCache = Suppliers.<LoadingCache<RegionAndName, ? extends Image>> ofInstance( CacheBuilder.newBuilder().<RegionAndName,Image>build(CacheLoader.from(Functions.forMap(imageMap)))); return newTemplateBuilder(images, imageCache); }
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()); }
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()); }