@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; }
public void testUserMetadataContains() { Image first = Iterables.get(computeService.listImages(), 0); first = ImageBuilder.fromImage(first).userMetadata(ImmutableMap.of("foo", "bar")).build(); assert ImagePredicates.userMetadataContains("foo", "bar").apply(first); Image second = Iterables.get(computeService.listImages(), 1); second = ImageBuilder.fromImage(second).userMetadata(ImmutableMap.of("foo", "baz")).build(); assert !ImagePredicates.userMetadataContains("foo", "bar").apply(second); }
public void testUserMetadataContains() { Image first = Iterables.get(computeService.listImages(), 0); first = ImageBuilder.fromImage(first).userMetadata(ImmutableMap.of("foo", "bar")).build(); assert ImagePredicates.userMetadataContains("foo", "bar").apply(first); Image second = Iterables.get(computeService.listImages(), 1); second = ImageBuilder.fromImage(second).userMetadata(ImmutableMap.of("foo", "baz")).build(); assert !ImagePredicates.userMetadataContains("foo", "bar").apply(second); }
@Test public void testRegisterNewImage() { ImageCacheSupplier imageCache = new ImageCacheSupplier(Suppliers.<Set<? extends Image>> ofInstance(images), 60, Atomics.<AuthorizationException> newReference(), Providers.of(getImageStrategy)); assertEquals(imageCache.get().size(), 1); imageCache.registerImage(ImageBuilder.fromImage(image).id("newimage").build()); assertEquals(imageCache.get().size(), 2); }
@Override public Image apply(Image input) { if (input.getDefaultCredentials() != null) { return input; } // If the image has been created by cloning a node, then try to // populate the known node credentials as the default image // credentials if (template instanceof CloneImageTemplate) { final CloneImageTemplate cloneImageTemplate = (CloneImageTemplate) template; Credentials nodeCredentials = credentialStore.get("node#" + cloneImageTemplate.getSourceNodeId()); if (nodeCredentials != null) { logger.info(">> Adding node(%s) credentials to image(%s)...", cloneImageTemplate.getSourceNodeId(), cloneImageTemplate.getName()); return ImageBuilder.fromImage(input) .defaultCredentials(LoginCredentials.fromCredentials(nodeCredentials)).build(); } } // If no credentials are known for the node, populate the default // credentials using the defined strategy logger.info(">> Adding default image credentials to image(%s)...", template.getName()); return addDefaultCredentialsToImage.apply(input); } });
@Override public Image apply(Image input) { if (input.getDefaultCredentials() != null) { return input; } // If the image has been created by cloning a node, then try to // populate the known node credentials as the default image // credentials if (template instanceof CloneImageTemplate) { final CloneImageTemplate cloneImageTemplate = (CloneImageTemplate) template; Credentials nodeCredentials = credentialStore.get("node#" + cloneImageTemplate.getSourceNodeId()); if (nodeCredentials != null) { logger.info(">> Adding node(%s) credentials to image(%s)...", cloneImageTemplate.getSourceNodeId(), cloneImageTemplate.getName()); return ImageBuilder.fromImage(input) .defaultCredentials(LoginCredentials.fromCredentials(nodeCredentials)).build(); } } // If no credentials are known for the node, populate the default // credentials using the defined strategy logger.info(">> Adding default image credentials to image(%s)...", template.getName()); return addDefaultCredentialsToImage.apply(input); } });
@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 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); }