public TemplateBuilder apply(TemplateBuilder b) { return b.osVersionMatches(osVersionRegex); }}); return (T)this;
public void testParse_osVersionMatches() { TemplateBuilderSpec spec = parse("osVersionMatches=.*[Aa]utomated SSH Access.*"); assertNull(spec.hardwareId); assertNull(spec.minCores); assertNull(spec.minRam); assertNull(spec.minDisk); assertNull(spec.hypervisorMatches); assertNull(spec.imageId); assertNull(spec.imageNameMatches); assertEquals(spec.osVersionMatches, ".*[Aa]utomated SSH Access.*"); assertNull(spec.os64Bit); assertNull(spec.osArchMatches); assertNull(spec.osDescriptionMatches); assertNull(spec.loginUser); assertNull(spec.authenticateSudo); assertNull(spec.locationId); assertTemplateBuilderEquivalence(templateBuilders.get().osVersionMatches(".*[Aa]utomated SSH Access.*"), templateBuilders.get().from(spec)); }
private static void applyImageType(TemplateBuilder builder, CreateJCloudsContainerOptions options) { //Define ImageId if (!Strings.isNullOrEmpty(options.getImageId())) { builder.imageId(options.getImageId()); } //or define Image by OS & Version or By ImageId else if (!Strings.isNullOrEmpty(options.getOsFamily())) { builder.osFamily(OsFamily.fromValue(options.getOsFamily())); if (!Strings.isNullOrEmpty(options.getOsVersion())) { builder.osVersionMatches(options.getOsVersion()); } } else { throw new IllegalArgumentException("Required Image id or Operation System and version predicates."); } }
public void testParse_osVersionMatches() { TemplateBuilderSpec spec = parse("osVersionMatches=.*[Aa]utomated SSH Access.*"); assertNull(spec.hardwareId); assertNull(spec.minCores); assertNull(spec.minRam); assertNull(spec.minDisk); assertNull(spec.hypervisorMatches); assertNull(spec.imageId); assertNull(spec.imageNameMatches); assertEquals(spec.osVersionMatches, ".*[Aa]utomated SSH Access.*"); assertNull(spec.os64Bit); assertNull(spec.osArchMatches); assertNull(spec.osDescriptionMatches); assertNull(spec.loginUser); assertNull(spec.authenticateSudo); assertNull(spec.locationId); assertNull(spec.forceCacheReload); assertTemplateBuilderEquivalence(templateBuilders.get().osVersionMatches(".*[Aa]utomated SSH Access.*"), templateBuilders.get().from(spec)); }
public void testParse_multipleKeys() { TemplateBuilderSpec spec = parse("osFamily=UBUNTU,osVersionMatches=1[012].[01][04],imageNameMatches=.*w/ None.*"); assertNull(spec.hardwareId); assertNull(spec.minCores); assertNull(spec.minRam); assertNull(spec.minDisk); assertNull(spec.hypervisorMatches); assertNull(spec.imageId); assertEquals(spec.imageNameMatches, ".*w/ None.*"); assertEquals(spec.osFamily, OsFamily.UBUNTU); assertEquals(spec.osVersionMatches, "1[012].[01][04]"); assertNull(spec.os64Bit); assertNull(spec.osArchMatches); assertNull(spec.osDescriptionMatches); assertNull(spec.loginUser); assertNull(spec.authenticateSudo); assertNull(spec.locationId); TemplateBuilder expected = templateBuilders.get().osVersionMatches("1[012].[01][04]").imageNameMatches(".*w/ None.*").osFamily(OsFamily.UBUNTU); assertTemplateBuilderEquivalence(expected, templateBuilders.get().from(spec)); }
public void testParse_multipleKeys() { TemplateBuilderSpec spec = parse("osFamily=UBUNTU,osVersionMatches=1[012].[01][04],imageNameMatches=.*w/ None.*"); assertNull(spec.hardwareId); assertNull(spec.minCores); assertNull(spec.minRam); assertNull(spec.minDisk); assertNull(spec.hypervisorMatches); assertNull(spec.imageId); assertEquals(spec.imageNameMatches, ".*w/ None.*"); assertEquals(spec.osFamily, OsFamily.UBUNTU); assertEquals(spec.osVersionMatches, "1[012].[01][04]"); assertNull(spec.os64Bit); assertNull(spec.osArchMatches); assertNull(spec.osDescriptionMatches); assertNull(spec.loginUser); assertNull(spec.authenticateSudo); assertNull(spec.locationId); assertNull(spec.forceCacheReload); TemplateBuilder expected = templateBuilders.get().osVersionMatches("1[012].[01][04]").imageNameMatches(".*w/ None.*").osFamily(OsFamily.UBUNTU); assertTemplateBuilderEquivalence(expected, templateBuilders.get().from(spec)); }
/** * The default template if none is provided. */ @Provides @Named("DEFAULT") protected TemplateBuilder provideTemplateOptionallyFromProperties(Injector injector, TemplateBuilder template, @Provider String provider, ValueOfConfigurationKeyOrNull config) { String templateString = config.apply(provider + ".template"); if (templateString == null) templateString = config.apply(TEMPLATE); if (templateString != null) { template.from(templateString); } else { template.osFamily(UBUNTU).osVersionMatches("1[012].[01][04]").os64Bit(true); } String imageId = config.apply(provider + ".image-id"); if (imageId == null) imageId = config.apply(IMAGE_ID); if (imageId != null) template.imageId(imageId); return template; }
/** * The default template if none is provided. */ @Provides @Named("DEFAULT") protected final TemplateBuilder provideTemplateOptionallyFromProperties(Injector injector, TemplateBuilder template, @Provider String provider, ValueOfConfigurationKeyOrNull config) { String templateString = config.apply(provider + ".template"); if (templateString == null) templateString = config.apply(TEMPLATE); if (templateString != null) { template.from(templateString); } else { template.osFamily(UBUNTU).osVersionMatches("1[012].[01][04]").os64Bit(true); } String imageId = config.apply(provider + ".image-id"); if (imageId == null) imageId = config.apply(IMAGE_ID); if (imageId != null) template.imageId(imageId); return template; }
@Test(dataProvider = "osNotSupported", expectedExceptions = NoSuchElementException.class) public void testTemplateBuilderCannotFind(OsFamilyVersion64Bit matrix) throws InterruptedException { TemplateBuilder builder = view.getComputeService().templateBuilder().osFamily(matrix.family) .os64Bit(matrix.is64Bit); if (!matrix.version.equals("")) builder.osVersionMatches("^" + matrix.version + "$"); builder.build(); }
/** * The default template if none is provided. */ @Provides @Named("DEFAULT") protected TemplateBuilder provideTemplateOptionallyFromProperties(Injector injector, TemplateBuilder template, @Provider String provider, ValueOfConfigurationKeyOrNull config) { String templateString = config.apply(provider + ".template"); if (templateString == null) templateString = config.apply(TEMPLATE); if (templateString != null) { template.from(templateString); } else { template.osFamily(UBUNTU).osVersionMatches("1[012].[01][04]").os64Bit(true); } String imageId = config.apply(provider + ".image-id"); if (imageId == null) imageId = config.apply(IMAGE_ID); if (imageId != null) template.imageId(imageId); return template; }
/** * The default template if none is provided. */ @Provides @Named("DEFAULT") protected final TemplateBuilder provideTemplateOptionallyFromProperties(Injector injector, TemplateBuilder template, @Provider String provider, ValueOfConfigurationKeyOrNull config) { String templateString = config.apply(provider + ".template"); if (templateString == null) templateString = config.apply(TEMPLATE); if (templateString != null) { template.from(templateString); } else { template.osFamily(UBUNTU).osVersionMatches("1[012].[01][04]").os64Bit(true); } String imageId = config.apply(provider + ".image-id"); if (imageId == null) imageId = config.apply(IMAGE_ID); if (imageId != null) template.imageId(imageId); return template; }
@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 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"); }
builder.osVersionMatches(osVersionMatches);
@Test public void testTemplateBuilderM1MEDIUMWithNegativeLookaroundDoesntMatchTestImages() { Template template = view.getComputeService().templateBuilder().hardwareId(InstanceType.M1_MEDIUM) // need to select versions with double-digits so that lexicographic // doesn't end up prefering 9.x vs 11.x .osVersionMatches("1[012].[10][04]") // negative lookahead for daily and testing, but ensure match // ubuntu-images // http://www.regular-expressions.info/lookaround.html .imageDescriptionMatches("^(?!.*(daily|testing)).*ubuntu-images.*$").osFamily(OsFamily.UBUNTU).build(); assert template.getImage().getProviderId().startsWith("ami-") : template; assert template.getImage().getDescription().indexOf("test") == -1 : template; assert template.getImage().getDescription().indexOf("daily") == -1 : template; assertEquals(template.getImage().getVersion(), "20100224"); assertEquals(template.getImage().getOperatingSystem().getVersion(), "10.04"); assertEquals(template.getImage().getOperatingSystem().is64Bit(), false); assertEquals(template.getImage().getOperatingSystem().getFamily(), OsFamily.UBUNTU); assertEquals(template.getImage().getUserMetadata().get("rootDeviceType"), "instance-store"); assertEquals(template.getLocation().getId(), "us-east-1"); assertEquals(getCores(template.getHardware()), 1.0d); assertEquals(template.getHardware().getId(), InstanceType.M1_MEDIUM); assertEquals(template.getImage().getOperatingSystem().getArch(), "paravirtual"); }
@Test public void testUbuntuInstanceStoreGoesM3MediumNegativeLookaroundDoesntMatchTestImages() { Template template = view.getComputeService().templateBuilder() .imageMatches(EC2ImagePredicates.rootDeviceType(RootDeviceType.INSTANCE_STORE)) // need to select versions with double-digits so that lexicographic // doesn't end up prefering 9.x vs 11.x .osVersionMatches("1[012].[10][04]") // negative lookahead for daily and testing, but ensure match // ubuntu-images // http://www.regular-expressions.info/lookaround.html .imageDescriptionMatches("^(?!.*(daily|testing)).*ubuntu-images.*$").osFamily(OsFamily.UBUNTU).build(); assert template.getImage().getProviderId().startsWith("ami-") : template; assert template.getImage().getDescription().indexOf("test") == -1 : template; assert template.getImage().getDescription().indexOf("daily") == -1 : template; assertEquals(template.getImage().getOperatingSystem().getVersion(), "10.04"); assertEquals(template.getImage().getOperatingSystem().is64Bit(), false); assertEquals(template.getImage().getOperatingSystem().getFamily(), OsFamily.UBUNTU); assertEquals(template.getImage().getUserMetadata().get("rootDeviceType"), "instance-store"); assertEquals(template.getLocation().getId(), "us-east-1"); assertEquals(getCores(template.getHardware()), 1.0d); assertEquals(template.getHardware().getId(), InstanceType.M3_MEDIUM); // smallest non-deprecated supporting PV assertEquals(template.getImage().getOperatingSystem().getArch(), "paravirtual"); }
builder.osVersionMatches(osVersionMatches);
builder.osVersionMatches(osVersionMatches);
.hypervisorMatches("OpenVZ").osVersionMatches("1[10].[10][04]").os64Bit(true);
.hypervisorMatches("OpenVZ").osVersionMatches("1[10].[10][04]").os64Bit(true);