private OsFamily parseOsFamily(String from, OsType fallbackValue) { if (from != null) try { // ProfitBricks images names are usually in format: // [osType]-[version]-[subversion]-..-[date-created] String desc = from.toUpperCase().split("-")[0]; OsFamily osFamily = OsFamily.fromValue(desc); checkArgument(osFamily != OsFamily.UNRECOGNIZED); return osFamily; } catch (Exception ex) { // do nothing } return mapOsFamily(fallbackValue); }
private OsFamily parseOsFamily(String from, OsType fallbackValue) { if (from != null) try { // ProfitBricks images names are usually in format: // [osType]-[version]-[subversion]-..-[date-created] String desc = from.toUpperCase().split("-")[0]; OsFamily osFamily = OsFamily.fromValue(desc); checkArgument(osFamily != OsFamily.UNRECOGNIZED); return osFamily; } catch (Exception ex) { // do nothing } return mapOsFamily(fallbackValue); }
public Optional<String> chooseImage(String osFamily, String osVersionRegex) { return chooseImage((osFamily == null ? (OsFamily) null : OsFamily.fromValue(osFamily)), osVersionRegex); }
protected OperatingSystem parseOs(final org.jclouds.rimuhosting.miro.domain.Image from) { OsFamily osFamily = null; String osName = from.getId(); String osArch = null; String osVersion = null; String osDescription = from.getDescription(); boolean is64Bit = from.getId().indexOf("64") != -1; Matcher matcher = RIMU_PATTERN.matcher(osDescription); if (matcher.find()) { try { osFamily = OsFamily.fromValue(matcher.group(1).toLowerCase()); osVersion = matcher.group(2).toLowerCase(); } catch (IllegalArgumentException e) { logger.debug("<< didn't match os(%s)", osDescription); } } return new OperatingSystem(osFamily, osName, osVersion, osArch, osDescription, is64Bit); } }
@Override public OperatingSystem apply(String input) { // Remove the backport prefix before parsing the name String name = input.contains("backports") ? input.substring(input.indexOf("backports-") + 10) : input; OperatingSystem.Builder builder = defaultOperatingSystem(name); List<String> splits = Lists.newArrayList(name.split("-")); if (splits == null || splits.size() == 0 || splits.size() < 3) { return builder.build(); } // GCE namings that don't match the OsFamily enum String os = splits.get(0); if ("opensuse".equals(os) || "sles".equals(os)) { builder.family(OsFamily.SUSE); } else { OsFamily family = OsFamily.fromValue(os); if (family != OsFamily.UNRECOGNIZED) { builder.family(family); } } // TODO: Improve the version parsing so it is more portable String version = on(".").join(limit(skip(splits, 1), splits.size() - 2)); builder.version(version); return builder.build(); }
@Override public OperatingSystem apply(String input) { // Remove the backport prefix before parsing the name String name = input.contains("backports") ? input.substring(input.indexOf("backports-") + 10) : input; OperatingSystem.Builder builder = defaultOperatingSystem(name); List<String> splits = Lists.newArrayList(name.split("-")); if (splits == null || splits.size() == 0 || splits.size() < 3) { return builder.build(); } // GCE namings that don't match the OsFamily enum String os = splits.get(0); if ("opensuse".equals(os) || "sles".equals(os)) { builder.family(OsFamily.SUSE); } else { OsFamily family = OsFamily.fromValue(os); if (family != OsFamily.UNRECOGNIZED) { builder.family(family); } } // TODO: Improve the version parsing so it is more portable String version = on(".").join(limit(skip(splits, 1), splits.size() - 2)); builder.version(version); return builder.build(); }
@Override public OperatingSystem apply(String input) { // Remove the backport prefix before parsing the name String name = input.contains("backports") ? input.substring(input.indexOf("backports-") + 10) : input; OperatingSystem.Builder builder = defaultOperatingSystem(name); List<String> splits = Lists.newArrayList(name.split("-")); if (splits == null || splits.size() == 0 || splits.size() < 3) { return builder.build(); } // GCE namings that don't match the OsFamily enum String os = splits.get(0); if ("opensuse".equals(os) || "sles".equals(os)) { builder.family(OsFamily.SUSE); } else { OsFamily family = OsFamily.fromValue(os); if (family != OsFamily.UNRECOGNIZED) { builder.family(family); } } // TODO: Improve the version parsing so it is more portable String version = on(".").join(limit(skip(splits, 1), splits.size() - 2)); builder.version(version); return builder.build(); }
public OperatingSystem apply(Dataset from) { Builder builder = OperatingSystem.builder(); builder.name(from.getName()); builder.description(from.getUrn()); builder.is64Bit(true);//TODO: verify List<String> pieces = ImmutableList.copyOf(Splitter.on(':').split(from.getUrn())); if (pieces.get(2).indexOf('-') != -1) { List<String> osFamVersion = ImmutableList.copyOf(Splitter.on('-').split(pieces.get(2))); OsFamily family = OsFamily.fromValue(osFamVersion.get(0)); builder.family(family); if (family != OsFamily.UNRECOGNIZED) builder.version(ComputeServiceUtils.parseVersionOrReturnEmptyString(family, osFamVersion.get(1), osVersionMap)); } else { builder.family(OsFamily.fromValue(pieces.get(2))); } return builder.build(); }
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."); } }
protected OperatingSystem parseOs(ServerImage from) { OsFamily osFamily = null; String osName = from.getOs().getName(); String osArch = from.getArchitecture().getDescription(); String osVersion = null; String osDescription = from.getOs().getDescription(); boolean is64Bit = from.getOs().getName().indexOf("64") != -1 || from.getDescription().indexOf("64") != -1; if (osName.startsWith("Windows")) { osFamily = OsFamily.WINDOWS; } else { Matcher matcher = GOGRID_OS_PATTERN.matcher(from.getName()); if (matcher.find()) { try { osFamily = OsFamily.fromValue(matcher.group(1).toLowerCase()); } catch (IllegalArgumentException e) { logger.debug("<< didn't match os(%s)", from.getName()); } } } Matcher matcher = GOGRID_VERSION_PATTERN.matcher(osName); if (matcher.find()) { osVersion = ComputeServiceUtils.parseVersionOrReturnEmptyString(osFamily, matcher.group(1), osVersionMap); } // TODO determine DC images are in return new OperatingSystem(osFamily, osName, osVersion, osArch, osDescription, is64Bit); }
@Override public void reviseParsedImage(org.jclouds.ec2.domain.Image from, ImageBuilder builder, OsFamily family, OperatingSystem.Builder osBuilder) { try { Matcher matcher = getMatcherAndFind(from.getImageLocation()); if (matcher.pattern() == AMZN_PATTERN) { osBuilder.family(OsFamily.AMZN_LINUX); osBuilder.version(matcher.group(2)); builder.version(matcher.group(2)); } else if (matcher.pattern() == AMAZON_PATTERN) { family = OsFamily.fromValue(matcher.group(1)); osBuilder.family(family); osBuilder.version(ComputeServiceUtils.parseVersionOrReturnEmptyString(family, matcher.group(2), osVersionMap)); } else { family = OsFamily.fromValue(matcher.group(1)); osBuilder.family(family); osBuilder.version(ComputeServiceUtils.parseVersionOrReturnEmptyString(family, matcher.group(2), osVersionMap)); builder.version(matcher.group(3).replace(".manifest.xml", "")); } } catch (IllegalArgumentException e) { logger.debug("<< didn't match os(%s)", from.getImageLocation()); } catch (NoSuchElementException e) { logger.trace("<< didn't match at all(%s)", from.getImageLocation()); } }
@Override public void reviseParsedImage(org.jclouds.ec2.domain.Image from, ImageBuilder builder, OsFamily family, OperatingSystem.Builder osBuilder) { try { Matcher matcher = getMatcherAndFind(from.getImageLocation()); if (matcher.pattern() == AMZN_PATTERN) { osBuilder.family(OsFamily.AMZN_LINUX); osBuilder.version(matcher.group(2)); builder.version(matcher.group(2)); } else if (matcher.pattern() == AMAZON_PATTERN) { family = OsFamily.fromValue(matcher.group(1)); osBuilder.family(family); osBuilder.version(ComputeServiceUtils.parseVersionOrReturnEmptyString(family, matcher.group(2), osVersionMap)); } else { family = OsFamily.fromValue(matcher.group(1)); osBuilder.family(family); osBuilder.version(ComputeServiceUtils.parseVersionOrReturnEmptyString(family, matcher.group(2), osVersionMap)); builder.version(matcher.group(3).replace(".manifest.xml", "")); } } catch (IllegalArgumentException e) { logger.debug("<< didn't match os(%s)", from.getImageLocation()); } catch (NoSuchElementException e) { logger.trace("<< didn't match at all(%s)", from.getImageLocation()); } }
public OperatingSystem apply(Template from) { Builder builder = OperatingSystem.builder().description(from.getOSType()); OSType type = osTypes.get().get(from.getOSTypeId()); if (type == null) { logger.warn("Template refers to OS type ID %s but this does not exist. Template=%s Known OS types=%s", from.getOSTypeId(), from, osTypes.get()); return builder.build(); } builder.description(type.getDescription()); builder.is64Bit(type.getDescription().indexOf("64-bit") != -1); String osCategory = osCategories.get().get(type.getOSCategoryId()); if (osCategory == null) { logger.warn("OS type refers to OS category ID %s but this does not exist. OS type=%s Known OS categories=%s", type.getOSCategoryId(), type, osCategories.get()); return builder.build(); } builder.name(osCategory); OsFamily family = OsFamily.fromValue(osCategory.toLowerCase()); builder.family(family); Matcher matcher = DEFAULT_PATTERN.matcher(type.getDescription()); if (matcher.find()) { builder.version(ComputeServiceUtils.parseVersionOrReturnEmptyString(family, matcher.group(1), osVersionMap)); } return builder.build(); } }
public OperatingSystem apply(Template from) { Builder builder = OperatingSystem.builder().description(from.getOSType()); OSType type = osTypes.get().get(from.getOSTypeId()); if (type == null) { logger.warn("Template refers to OS type ID %s but this does not exist. Template=%s Known OS types=%s", from.getOSTypeId(), from, osTypes.get()); return builder.build(); } builder.description(type.getDescription()); builder.is64Bit(type.getDescription().indexOf("64-bit") != -1); String osCategory = osCategories.get().get(type.getOSCategoryId()); if (osCategory == null) { logger.warn("OS type refers to OS category ID %s but this does not exist. OS type=%s Known OS categories=%s", type.getOSCategoryId(), type, osCategories.get()); return builder.build(); } builder.name(osCategory); OsFamily family = OsFamily.fromValue(osCategory.toLowerCase()); builder.family(family); Matcher matcher = DEFAULT_PATTERN.matcher(type.getDescription()); if (matcher.find()) { builder.version(ComputeServiceUtils.parseVersionOrReturnEmptyString(family, matcher.group(1), osVersionMap)); } return builder.build(); } }
@Override public OperatingSystem.Builder apply(final VMImage image) { final String label = checkNotNull(image.offer(), "offer").toLowerCase(); OsFamily family = findInStandardFamilies(label).or(findInOtherOSMap(label)).or(OsFamily.UNRECOGNIZED); // Fallback to generic operating system type if (OsFamily.UNRECOGNIZED == family && image.versionProperties() != null && image.versionProperties().osDiskImage() != null && image.versionProperties().osDiskImage().operatingSystem() != null) { family = OsFamily.fromValue(image.versionProperties().osDiskImage().operatingSystem().toUpperCase()); } // only 64bit OS images are supported by Azure ARM return OperatingSystem.builder().family(family).is64Bit(true) .description(image.custom() ? AzureComputeImageExtension.CUSTOM_IMAGE_OFFER : image.sku()) .version(image.custom() ? "latest" : image.sku()); } };
@Override public OperatingSystem.Builder apply(final VMImage image) { final String label = checkNotNull(image.offer(), "offer").toLowerCase(); OsFamily family = findInStandardFamilies(label).or(findInOtherOSMap(label)).or(OsFamily.UNRECOGNIZED); // Fallback to generic operating system type if (OsFamily.UNRECOGNIZED == family && image.versionProperties() != null && image.versionProperties().osDiskImage() != null && image.versionProperties().osDiskImage().operatingSystem() != null) { family = OsFamily.fromValue(image.versionProperties().osDiskImage().operatingSystem().toUpperCase()); } // only 64bit OS images are supported by Azure ARM return OperatingSystem.builder().family(family).is64Bit(true) .description(image.custom() ? AzureComputeImageExtension.CUSTOM_IMAGE_OFFER : image.sku()) .version(image.custom() ? "latest" : image.sku()); } };
@Override public Image apply(org.jclouds.servermanager.Image from) { ImageBuilder builder = new ImageBuilder(); builder.ids(from.id + ""); builder.name(from.name); builder.description(from.name); OsFamily family = null; try { family = OsFamily.fromValue(from.name); builder.operatingSystem(new OperatingSystem.Builder().name(from.name).family(family).build()); } catch (IllegalArgumentException e) { logger.debug("<< didn't match os(%s)", from); } builder.status(Status.AVAILABLE); return builder.build(); }
@Override public Image apply(org.jclouds.servermanager.Image from) { ImageBuilder builder = new ImageBuilder(); builder.ids(from.id + ""); builder.name(from.name); builder.description(from.name); OsFamily family = null; try { family = OsFamily.fromValue(from.name); builder.operatingSystem(new OperatingSystem.Builder().name(from.name).family(family).build()); } catch (IllegalArgumentException e) { logger.debug("<< didn't match os(%s)", from); } builder.status(Status.AVAILABLE); return builder.build(); }
@Override public Image apply(LibraryDrive libraryDrive) { return new ImageBuilder() .ids(libraryDrive.getUuid()) .userMetadata(libraryDrive.getMeta()) .name(libraryDrive.getName()) .description(libraryDrive.getDescription()) .operatingSystem(OperatingSystem.builder() .name(libraryDrive.getName()) .arch(libraryDrive.getArch()) .is64Bit(libraryDrive.getArch() != null && libraryDrive.getArch().equals("64")) .family(libraryDrive.getOs() == null ? null : OsFamily.fromValue(libraryDrive.getOs())) .version(libraryDrive.getVersion()) .description(libraryDrive.getDescription()) .build()) .status(driveStatusToNodeStatus.get(libraryDrive.getStatus())) .build(); } }
@Override public Image apply(LibraryDrive libraryDrive) { return new ImageBuilder() .ids(libraryDrive.getUuid()) .userMetadata(libraryDrive.getMeta()) .name(libraryDrive.getName()) .description(libraryDrive.getDescription()) .operatingSystem(OperatingSystem.builder() .name(libraryDrive.getName()) .arch(libraryDrive.getArch()) .is64Bit(libraryDrive.getArch() != null && libraryDrive.getArch().equals("64")) .family(libraryDrive.getOs() == null ? null : OsFamily.fromValue(libraryDrive.getOs())) .version(libraryDrive.getVersion()) .description(libraryDrive.getDescription()) .build()) .status(driveStatusToNodeStatus.get(libraryDrive.getStatus())) .build(); } }