private void deleteVersion(Versions versionsCollection, String version) { versionsCollection.setVersions(versionsCollection.getVersions() .stream() .filter(other -> !other.getVersion().equals(version)) .collect(Collectors.toList())); }
private GateProfileFactory getGateProfileFactory(String deploymentName) { String version = getArtifactService().getArtifactVersion(deploymentName, SpinnakerArtifact.GATE); try { if (Versions.lessThan(version, BOOT_UPGRADED_VERSION)) { return boot128ProfileFactory; } } catch (NumberFormatException nfe) { log.warn("Could not resolve Gate version, using `boot154ProfileFactory`."); } return boot154ProfileFactory; }
private ProfileReader pickProfileReader(String version) { if (Versions.isBranch(version)) { return gitProfileReader; } else if (Versions.isLocal(version)) { return localDiskProfileReader; } else if (googleProfileReader != null) { return googleProfileReader; } else { throw new HalException(Problem.Severity.FATAL, "No profile reader exists to read '" + version + "'. Consider setting 'spinnaker.config.input.gcs.enabled: true' in /opt/spinnaker/config/halyard.yml"); } } }
Optional<Versions.IllegalVersion> illegalVersion = versions.getIllegalVersions() .stream() .filter(v -> v.getVersion().equals(version)) if (Versions.isBranch(version) && !localGit) { p.addProblem(Problem.Severity.FATAL, "You can't run Spinnaker from a branch when your deployment type isn't \"LocalGit\".") .setRemediation("Either pick a version (hal version list) or set a different deployment type (hal config deploy edit --type <t>)."); if (!Versions.isBranch(version)) { versionsService.getBillOfMaterials(version); Optional<Versions.Version> releasedVersion = versions.getVersions() .stream() .filter(v -> Objects.equals(v.getVersion(), version)) && !halyardSnapshotRelease && !StringUtils.isEmpty(minimumHalyardVersion) && Versions.lessThan(runningVersion, minimumHalyardVersion)) { p.addProblem(Problem.Severity.ERROR, "Halyard version \"" + runningVersion + "\" is less than Halyard version \"" + minimumHalyardVersion + "\" required for Spinnaker \"" + version + "\""); String majorMinor = Versions.toMajorMinor(version); Optional<Versions.Version> patchVersion = versions.getVersions() .stream() .map(v -> new ImmutablePair<>(v, Versions.toMajorMinor(v.getVersion()))) .filter(v -> v.getRight() != null) .filter(v -> v.getRight().equals(majorMinor))
public void publishLatestSpinnaker(String latestSpinnaker) { if (googleWriteableProfileRegistry == null) { throw new HalException(FATAL, NO_WRITER_ENABLED); } Versions versionsCollection = versionsService.getVersions(); if (versionsCollection == null) { throw new HalException(FATAL, NO_GCS_ENABLED); } boolean hasLatest = versionsCollection.getVersions().stream().anyMatch(v -> v.getVersion().equals(latestSpinnaker)); if (!hasLatest) { throw new HalException(FATAL, "Version " + latestSpinnaker + " does not exist in the list of published versions"); } versionsCollection.setLatestSpinnaker(latestSpinnaker); googleWriteableProfileRegistry.writeVersions(yamlParser.dump(relaxedObjectMapper.convertValue(versionsCollection, Map.class))); }
public void deprecateVersion(Version version, String illegalReason) { if (googleWriteableProfileRegistry == null) { throw new HalException(FATAL, NO_WRITER_ENABLED); } Versions versionsCollection = versionsService.getVersions(); if (versionsCollection == null) { throw new HalException(FATAL, NO_GCS_ENABLED); } deleteVersion(versionsCollection, version.getVersion()); if (!StringUtils.isEmpty(illegalReason)) { List<Versions.IllegalVersion> illegalVersions = versionsCollection.getIllegalVersions(); if (illegalVersions == null) { illegalVersions = new ArrayList<>(); } illegalVersions.add(new Versions.IllegalVersion().setVersion(version.getVersion()).setReason(illegalReason)); versionsCollection.setIllegalVersions(illegalVersions); } googleWriteableProfileRegistry.writeVersions(yamlParser.dump(relaxedObjectMapper.convertValue(versionsCollection, Map.class))); }
protected List<String> versionOptions(ConfigProblemSetBuilder psBuilder) { VersionsService service = psBuilder.getContext().getBean(VersionsService.class); Versions versions = service.getVersions(); if (versions == null) { return Collections.emptyList(); } else { return versions.getVersions().stream().map(Version::getVersion).collect(Collectors.toList()); } } }
String remediation = ""; if (v != null && annotation != null) { if (Versions.lessThan(spinnakerVersion, annotation.lowerBound())) { fieldNotValid = true; invalidFieldMessage = annotation.tooLowMessage(); remediation = "Use at least " + annotation.lowerBound() + " (It may not have been released yet)."; } else if (!StringUtils.equals(annotation.upperBound(), "") && Versions.greaterThanEqual(spinnakerVersion, annotation.upperBound())) { fieldNotValid = true; invalidFieldMessage = annotation.tooHighMessage();
@Override public BillOfMaterials readBom(String version) throws IOException { if (!Versions.isBranch(version)) { throw new IllegalArgumentException("Version must be a branch in the git profile reader"); } String branch = Versions.fromBranch(version); BillOfMaterials.Artifact artifact = new BillOfMaterials.Artifact(); artifact.setCommit(branch); artifact.setVersion(version); BillOfMaterials.Services services = new BillOfMaterials.Services(); services.setDefaultArtifact(artifact); BillOfMaterials.Dependencies dependencies = new BillOfMaterials.Dependencies(); dependencies.setDefaultArtifact(artifact); BillOfMaterials bom = new BillOfMaterials(); bom.setDependencies(dependencies); bom.setVersion(version); bom.setServices(services); return bom; }
static SemVer fromString(String version) { if (isBranch(version)) { return null; } String[] parts = truncateToHyphen(version).split(Pattern.quote(".")); if (parts.length != 3) { throw new IllegalArgumentException("Versions must satisfy the X.Y.Z naming convention"); } List<Integer> intParts = Arrays.stream(parts).map(Integer::parseInt).collect(Collectors.toList()); return new SemVer(intParts.get(0), intParts.get(1), intParts.get(2)); }
public String getLatestHalyardVersion() { String result = concurrentMap.get(latestHalyardKey); if (result == null) { Versions versions = getVersions(); if (versions != null) { result = versions.getLatestHalyard(); concurrentMap.put(latestHalyardKey, result); } else { result = "0.0.0-UNKNOWN"; } } return result; }
public String getLatestSpinnakerVersion() { String result = concurrentMap.get(latestSpinnakerKey); if (result == null) { Versions versions = getVersions(); if (versions != null) { result = versions.getLatestSpinnaker(); } else { result = "0.0.0-UNKNOWN"; } concurrentMap.put(latestSpinnakerKey, result); } return result; } }
Optional<Versions.Version> validatedVersion; if (versions != null) { validatedVersion = versions.getVersion(version); } else { validatedVersion = Optional.empty();
Optional<Versions.IllegalVersion> illegalVersion = versions.getIllegalVersions() .stream() .filter(v -> v.getVersion().equals(version)) if (Versions.isBranch(version) && !localGit) { p.addProblem(Problem.Severity.FATAL, "You can't run Spinnaker from a branch when your deployment type isn't \"LocalGit\".") .setRemediation("Either pick a version (hal version list) or set a different deployment type (hal config deploy edit --type <t>)."); if (!Versions.isBranch(version)) { versionsService.getBillOfMaterials(version); Optional<Versions.Version> releasedVersion = versions.getVersions() .stream() .filter(v -> Objects.equals(v.getVersion(), version)) && !halyardSnapshotRelease && !StringUtils.isEmpty(minimumHalyardVersion) && Versions.lessThan(runningVersion, minimumHalyardVersion)) { p.addProblem(Problem.Severity.ERROR, "Halyard version \"" + runningVersion + "\" is less than Halyard version \"" + minimumHalyardVersion + "\" required for Spinnaker \"" + version + "\""); String majorMinor = Versions.toMajorMinor(version); Optional<Versions.Version> patchVersion = versions.getVersions() .stream() .map(v -> new ImmutablePair<>(v, Versions.toMajorMinor(v.getVersion()))) .filter(v -> v.getRight() != null) .filter(v -> v.getRight().equals(majorMinor))
public void publishLatestSpinnaker(String latestSpinnaker) { if (googleWriteableProfileRegistry == null) { throw new HalException(FATAL, NO_WRITER_ENABLED); } Versions versionsCollection = versionsService.getVersions(); if (versionsCollection == null) { throw new HalException(FATAL, NO_GCS_ENABLED); } boolean hasLatest = versionsCollection.getVersions().stream().anyMatch(v -> v.getVersion().equals(latestSpinnaker)); if (!hasLatest) { throw new HalException(FATAL, "Version " + latestSpinnaker + " does not exist in the list of published versions"); } versionsCollection.setLatestSpinnaker(latestSpinnaker); googleWriteableProfileRegistry.writeVersions(yamlParser.dump(relaxedObjectMapper.convertValue(versionsCollection, Map.class))); }
public void deprecateVersion(Version version, String illegalReason) { if (googleWriteableProfileRegistry == null) { throw new HalException(FATAL, NO_WRITER_ENABLED); } Versions versionsCollection = versionsService.getVersions(); if (versionsCollection == null) { throw new HalException(FATAL, NO_GCS_ENABLED); } deleteVersion(versionsCollection, version.getVersion()); if (!StringUtils.isEmpty(illegalReason)) { List<Versions.IllegalVersion> illegalVersions = versionsCollection.getIllegalVersions(); if (illegalVersions == null) { illegalVersions = new ArrayList<>(); } illegalVersions.add(new Versions.IllegalVersion().setVersion(version.getVersion()).setReason(illegalReason)); versionsCollection.setIllegalVersions(illegalVersions); } googleWriteableProfileRegistry.writeVersions(yamlParser.dump(relaxedObjectMapper.convertValue(versionsCollection, Map.class))); }
protected List<String> versionOptions(ConfigProblemSetBuilder psBuilder) { VersionsService service = psBuilder.getContext().getBean(VersionsService.class); Versions versions = service.getVersions(); if (versions == null) { return Collections.emptyList(); } else { return versions.getVersions().stream().map(Version::getVersion).collect(Collectors.toList()); } } }
public String getLatestHalyardVersion() { String result = concurrentMap.get(latestHalyardKey); if (result == null) { Versions versions = getVersions(); if (versions != null) { result = versions.getLatestHalyard(); concurrentMap.put(latestHalyardKey, result); } else { result = "0.0.0-UNKNOWN"; } } return result; }
public String getLatestSpinnakerVersion() { String result = concurrentMap.get(latestSpinnakerKey); if (result == null) { Versions versions = getVersions(); if (versions != null) { result = versions.getLatestSpinnaker(); } else { result = "0.0.0-UNKNOWN"; } concurrentMap.put(latestSpinnakerKey, result); } return result; } }