Refine search
@Override public Image apply(OSTemplate template) { checkNotNull(template, "template"); OsFamilyVersion64Bit parsed = osParser.apply(template.getName()); Builder builder = OperatingSystem.builder(); builder.name(template.getName()).description(template.getName()).is64Bit(parsed.is64Bit).version(parsed.version) .family(parsed.family); return new ImageBuilder().ids(template.getName()).name(template.getName()).description(template.getName()) .operatingSystem(builder.build()).status(Status.AVAILABLE).build(); } }
public Builder fromOperatingSystem(OperatingSystem in) { return family(in.getFamily()).name(in.getName()).version(in.getVersion()).arch(in.getArch()).description( in.getDescription()).is64Bit(in.is64Bit()); } }
@Test public void testWhenNoHardwareOrImageMatchServerScopedIdsImageIdIsStillSet() { Hardware existingHardware = new HardwareBuilder().id("az-1.region-a.geo-1/FOOOOOOOO").providerId("FOOOOOOOO") .location(zone).build(); Image existingImage = new ImageBuilder().id("az-1.region-a.geo-1/FOOOOOOOO") .operatingSystem(OperatingSystem.builder().family(OsFamily.LINUX).description("foobuntu").build()) .providerId("FOOOOOOOO").description("foobuntu").location(zone).status(Image.Status.AVAILABLE).build(); checkHardwareAndImageStatus(null, existingHardware, "az-1.region-a.geo-1/52415800-8b69-11e0-9b19-734f6f006e54", null, existingImage); }
@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 testApply() { serverWithExternalIp = ServerWithExternalIp.create(server, externalIp); org.jclouds.compute.domain.OperatingSystem operatingSystem = org.jclouds.compute.domain.OperatingSystem.builder() .description("Windows 10 x64").name("Win10x64").is64Bit(true).family(OsFamily.WINDOWS).build(); expect(image.getId()).andReturn("imageId"); expect(image.getOperatingSystem()).andReturn(operatingSystem); expect(nic.privateIpv4()).andReturn("192.168.1.1").anyTimes(); expect(nodeNamingConvention.groupInUniqueNameOrNull(serverName)).andReturn("[" + serverName + "]").anyTimes(); expect(serverToHardware.apply(server)).andReturn(hardware); expect(operatingSystemToOperatingSystem.apply(os)).andReturn(operatingSystem); EasyMock.replay(nodeNamingConvention, serverImageApi, image, nic, serverToHardware, operatingSystemToOperatingSystem); assertNodeMetadata(serverWithNatRuleToNodeMetadata.apply(serverWithExternalIp), operatingSystem, serverWithExternalIp.server().sourceImageId(), NodeMetadata.Status.RUNNING, ImmutableSet.of(nic.privateIpv4()), ImmutableSet.of(externalIp)); }
assertNotNull(actual); assertEquals( actual.toString(), new NodeMetadataBuilder() .imageId("Ubuntu 10.04 LTS 32-bit") .operatingSystem( OperatingSystem.builder().name("Ubuntu 10.04 LTS 32-bit").family(OsFamily.UBUNTU).version("10.04") .is64Bit(false).description("Ubuntu 10.04 LTS 32-bit").build()) .publicAddresses(ImmutableSet.of("31.192.231.254")) .hardware( new HardwareBuilder().ids("vz1840356").ram(512)
.<Location> of(region)); final Supplier<Set<? extends Image>> images = Suppliers.<Set<? extends Image>> ofInstance(ImmutableSet .<Image> of( new ImageBuilder() .ids("Ubuntu 11.04 x64") .name("Ubuntu 11.04 x64") .description("Ubuntu 11.04 x64") .location(region) .status(Status.AVAILABLE) .operatingSystem( OperatingSystem.builder().name("Ubuntu 11.04 x64").description("Ubuntu 11.04 x64") .is64Bit(true).version("11.04").family(OsFamily.UBUNTU).build()).build(), new ImageBuilder() .ids("Ubuntu 11.04 64-bit") .status(Status.AVAILABLE) .operatingSystem( OperatingSystem.builder().name("Ubuntu 11.04 64-bit").description("Ubuntu 11.04 64-bit") .is64Bit(true).version("11.04").family(OsFamily.UBUNTU).build()).build())); .hypervisorMatches("OpenVZ").osVersionMatches("1[10].[10][04]").os64Bit(true); assertEquals(templateBuilder.toString(), "{minRam=512, minRam=512, osFamily=ubuntu, osVersion=1[10].[10][04], os64Bit=true, hypervisor=OpenVZ}"); assertEquals(template.getHardware().getHypervisor(), "OpenVZ"); assertEquals(template.getImage().getId(), "Ubuntu 11.04 64-bit");
@BeforeMethod public void setup() { image = org.jclouds.digitalocean2.domain.Image.create(1, "14.04 x64", "distribution", "Ubuntu", "ubuntu-1404-x86", true, ImmutableList.of("sfo1"), new Date(), 20, 20); region = Region.create("sfo1", "San Francisco 1", ImmutableList.of("2gb"), true, ImmutableList.<String> of()); images = ImmutableSet.of(new ImageBuilder() .id("sfo1/ubuntu-1404-x86") .providerId("1") .name("mock image") .status(AVAILABLE) .operatingSystem( OperatingSystem.builder().name("Ubuntu 14.04 x86_64").description("Ubuntu").family(OsFamily.UBUNTU) .version("10.04").arch("x86_64").is64Bit(true).build()).build()); hardwares = ImmutableSet.of(new HardwareBuilder().id("2gb").providerId("2gb").name("mock hardware") .processor(new Processor(1.0, 1.0)).ram(2048) .volume(new VolumeBuilder().size(20f).type(Type.LOCAL).build()).build()); locations = ImmutableSet.of(new LocationBuilder() .id("sfo1") .description("sfo1/San Francisco 1") .scope(LocationScope.REGION) .parent( new LocationBuilder().id("0").description("mock parent location").scope(LocationScope.PROVIDER) .build()).build()); credentials = LoginCredentials.builder().user("foo").password("bar").build(); function = createNodeParser(hardwares, images, locations, ImmutableMap.of("node#1", (Credentials) credentials)); }
@Test public void testNewWindowsName() throws Exception { ReviseParsedImage rpi = new AWSEC2ReviseParsedImage(osVersionMap); Image from = newImage("amazon", "Windows_Server-2008-R2_SP1-English-64Bit-Base-2012.03.13"); OperatingSystem.Builder osBuilder = OperatingSystem.builder().description("test"); ImageBuilder builder = new ImageBuilder().id("1").operatingSystem(osBuilder.build()).status( org.jclouds.compute.domain.Image.Status.AVAILABLE).description("test"); OsFamily family = OsFamily.WINDOWS; rpi.reviseParsedImage(from, builder, family, osBuilder); OperatingSystem os = osBuilder.build(); assertEquals(os.getFamily(), OsFamily.WINDOWS); assertEquals(os.getVersion(), "2008"); assertEquals(builder.build().getVersion(), "2012.03.13"); }
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 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 createByCloningAddsNodeCredentials() throws InterruptedException, ExecutionException { Credentials 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 = ImmutableMap.of("node#node1", credentials); 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)); 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); }
@Override public Image apply(final OSImage image) { final ImageBuilder builder = new ImageBuilder() .id(image.name()) .name(image.label()) .description(image.description()) .status(Image.Status.AVAILABLE) .uri(image.mediaLink()) .providerId(image.name()) .location(FluentIterable.from(locations.get()) .firstMatch(LocationPredicates.idEquals(image.location())).orNull()); final OperatingSystem.Builder osBuilder = osFamily().apply(image); return builder.operatingSystem(osBuilder.build()).build(); }
@Override public OperatingSystem apply(String from) { OperatingSystem.Builder builder = OperatingSystem.builder(); OsFamily osFamily = parseOsFamilyOrUnrecognized(checkNotNull(from, "vapp template name")); builder.family(osFamily); builder.description(from); builder.is64Bit(from.indexOf("64") != -1); Matcher matcher = OS_PATTERN.matcher(from); if (matcher.find()) { builder.version(ComputeServiceUtils.parseVersionOrReturnEmptyString(osFamily, matcher.group(3), osVersionMap)); } return builder.build(); } }
/** * {@inheritDoc} */ @Override public Builder name(String name) { return Builder.class.cast(super.name(name)); }
/** * {@inheritDoc} */ @Override public Builder description(String description) { return Builder.class.cast(super.description(description)); }
/** * {@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 is64Bit(boolean is64Bit) { return Builder.class.cast(super.is64Bit(is64Bit)); }