@Override public List<Release> findReleaseRevisions(String releaseName, Integer revisions) { int latestVersion = findLatestRelease(releaseName).getVersion(); int lowerVersion = latestVersion - Integer.valueOf(revisions); return this.releaseRepository.findByNameAndVersionBetweenOrderByNameAscVersionDesc(releaseName, lowerVersion + 1, latestVersion); }
private void carryOverAppDeploymentIds(Release existingRelease, Map<String, String> appNameDeploymentIdMap) { AppDeployerData existingAppDeployerData = this.appDeployerDataRepository .findByReleaseNameAndReleaseVersionRequired( existingRelease.getName(), existingRelease.getVersion()); Map<String, String> existingAppNamesAndDeploymentIds = existingAppDeployerData.getDeploymentDataAsMap(); for (Map.Entry<String, String> existingEntry : existingAppNamesAndDeploymentIds.entrySet()) { String existingName = existingEntry.getKey(); if (!appNameDeploymentIdMap.containsKey(existingName)) { appNameDeploymentIdMap.put(existingName, existingEntry.getValue()); } } }
private void carryOverAppDeploymentIds(Release existingRelease, Map<String, String> appNameDeploymentIdMap) { AppDeployerData existingAppDeployerData = this.appDeployerDataRepository .findByReleaseNameAndReleaseVersionRequired( existingRelease.getName(), existingRelease.getVersion()); Map<String, String> existingAppNamesAndDeploymentIds = existingAppDeployerData.getDeploymentDataAsMap(); for (Map.Entry<String, String> existingEntry : existingAppNamesAndDeploymentIds.entrySet()) { String existingName = existingEntry.getKey(); if (!appNameDeploymentIdMap.containsKey(existingName)) { appNameDeploymentIdMap.put(existingName, existingEntry.getValue()); } } }
@Override public List<Release> findReleaseRevisions(String releaseName, Integer revisions) { int latestVersion = findLatestRelease(releaseName).getVersion(); int lowerVersion = latestVersion - Integer.valueOf(revisions); return this.releaseRepository.findByNameAndVersionBetweenOrderByNameAscVersionDesc(releaseName, lowerVersion + 1, latestVersion); }
/** * @return a textual summary of the ReleaseDifference */ public String getReleaseDifferenceSummary() { ReleaseDifferenceSummaryGenerator releaseDifferenceSummaryGenerator = new ReleaseDifferenceSummaryGenerator(); return releaseDifferenceSummaryGenerator.generateSummary(existingRelease.getName(), existingRelease.getVersion(), replacingRelease.getName(), replacingRelease.getVersion(), this.releaseDifference); }
/** * @return a textual summary of the ReleaseDifference */ public String getReleaseDifferenceSummary() { ReleaseDifferenceSummaryGenerator releaseDifferenceSummaryGenerator = new ReleaseDifferenceSummaryGenerator(); return releaseDifferenceSummaryGenerator.generateSummary(existingRelease.getName(), existingRelease.getVersion(), replacingRelease.getName(), replacingRelease.getVersion(), this.releaseDifference); }
@Override public Release findByNameAndVersion(String releaseName, int version) { Iterable<Release> releases = this.releaseRepository.findAll(); Release matchingRelease = null; for (Release release : releases) { if (release.getName().equals(releaseName) && release.getVersion() == version) { matchingRelease = release; break; } } if (matchingRelease == null) { throw new ReleaseNotFoundException(releaseName, version); } return matchingRelease; }
@Override public Release findByNameAndVersion(String releaseName, int version) { Iterable<Release> releases = this.releaseRepository.findAll(); Release matchingRelease = null; for (Release release : releases) { if (release.getName().equals(releaseName) && release.getVersion() == version) { matchingRelease = release; break; } } if (matchingRelease == null) { throw new ReleaseNotFoundException(releaseName, version); } return matchingRelease; }
private void updateReplacingReleaseState(Release replacingRelease, boolean rollback) { // Update Status in DB Status status = new Status(); status.setStatusCode(StatusCode.DEPLOYED); replacingRelease.getInfo().setStatus(status); replacingRelease.getInfo().setDescription(rollback ? "Rollback complete" : "Upgrade complete"); this.releaseRepository.save(replacingRelease); logger.info("Release {}-v{} has been DEPLOYED", replacingRelease.getName(), replacingRelease.getVersion()); logger.info("Apps in release {}-v{} are healthy.", replacingRelease.getName(), replacingRelease.getVersion()); }
private void updateReplacingReleaseState(Release replacingRelease, boolean rollback) { // Update Status in DB Status status = new Status(); status.setStatusCode(StatusCode.DEPLOYED); replacingRelease.getInfo().setStatus(status); replacingRelease.getInfo().setDescription(rollback ? "Rollback complete" : "Upgrade complete"); this.releaseRepository.save(replacingRelease); logger.info("Release {}-v{} has been DEPLOYED", replacingRelease.getName(), replacingRelease.getVersion()); logger.info("Apps in release {}-v{} are healthy.", replacingRelease.getName(), replacingRelease.getVersion()); }
private void updateReplacingReleaseState(Release replacingRelease, boolean rollback) { // Update Status in DB Status status = new Status(); status.setStatusCode(StatusCode.DEPLOYED); replacingRelease.getInfo().setStatus(status); replacingRelease.getInfo().setDescription(rollback ? "Rollback complete" : "Upgrade complete"); this.releaseRepository.save(replacingRelease); logger.info("Release {}-v{} has been DEPLOYED", replacingRelease.getName(), replacingRelease.getVersion()); logger.info("Apps in release {}-v{} are healthy.", replacingRelease.getName(), replacingRelease.getVersion()); }
public static ApplicationManifest updateApplicationName(Release release) { String name = release.getName() + "-v" + release.getVersion(); ApplicationManifest cfApplicationManifest = ApplicationManifest.builder() .name(name) .build(); return cfApplicationManifest; }
protected Release install(PackageMetadata packageMetadata, InstallProperties installProperties) { Assert.notNull(packageMetadata, "Can't download package, PackageMetadata is a null value."); Release existingDeletedRelease = this.releaseRepository .findLatestReleaseIfDeleted(installProperties.getReleaseName()); int releaseVersion; if (existingDeletedRelease != null) { logger.info("Re-using existing release name [{}] of previously deleted release.", installProperties.getReleaseName()); releaseVersion = existingDeletedRelease.getVersion() + 1; } else { releaseVersion = 1; } Release release = createInitialRelease(installProperties, this.packageService.downloadPackage(packageMetadata), releaseVersion); return install(release); }
@ShellMethod(key = "release rollback", value = "Rollback the release to a previous or a specific release.") public String rollback( @ShellOption(help = "the name of the release to rollback") String releaseName, @ShellOption(help = "the specific release version to rollback to. " + "Not specifying the value rolls back to the previous release.", defaultValue = "0") int releaseVersion, @ShellOption(help = "the expression for rollback timeout", defaultValue = NULL) String timeoutExpression) { RollbackRequest rollbackRequest = new RollbackRequest(releaseName, releaseVersion); Duration duration = DurationUtils.convert(timeoutExpression); if (duration != null) { rollbackRequest.setTimeout(duration.toMillis()); } Release release = skipperClient.rollback(rollbackRequest); StringBuilder sb = new StringBuilder(); sb.append(release.getName() + " has been rolled back. Now at version v" + release.getVersion() + "."); return sb.toString(); }
@Override public Release findReleaseToRollback(String releaseName) { Release latestRelease = this.releaseRepository.findLatestReleaseForUpdate(releaseName); List<Release> releases = this.releaseRepository.findByNameOrderByVersionDesc(releaseName); for (Release release : releases) { if ((release.getInfo().getStatus().getStatusCode().equals(StatusCode.DEPLOYED) || release.getInfo().getStatus().getStatusCode().equals(StatusCode.DELETED)) && release.getVersion() != latestRelease.getVersion()) { return release; } } throw new ReleaseNotFoundException(releaseName); }
@Override public Release findReleaseToRollback(String releaseName) { Release latestRelease = this.releaseRepository.findLatestReleaseForUpdate(releaseName); List<Release> releases = this.releaseRepository.findByNameOrderByVersionDesc(releaseName); for (Release release : releases) { if ((release.getInfo().getStatus().getStatusCode().equals(StatusCode.DEPLOYED) || release.getInfo().getStatus().getStatusCode().equals(StatusCode.DELETED)) && release.getVersion() != latestRelease.getVersion()) { return release; } } throw new ReleaseNotFoundException(releaseName); }
private void saveAppDeployerData(Release release, Map<String, String> appNameDeploymentIdMap) { AppDeployerData appDeployerData = new AppDeployerData(); appDeployerData.setReleaseName(release.getName()); appDeployerData.setReleaseVersion(release.getVersion()); appDeployerData.setDeploymentDataUsingMap(appNameDeploymentIdMap); this.appDeployerDataRepository.save(appDeployerData); }
private void saveAppDeployerData(Release release, Map<String, String> appNameDeploymentIdMap) { AppDeployerData appDeployerData = new AppDeployerData(); appDeployerData.setReleaseName(release.getName()); appDeployerData.setReleaseVersion(release.getVersion()); appDeployerData.setDeploymentDataUsingMap(appNameDeploymentIdMap); this.appDeployerDataRepository.save(appDeployerData); }
private void saveAppDeployerData(Release release, Map<String, String> appNameDeploymentIdMap) { AppDeployerData appDeployerData = new AppDeployerData(); appDeployerData.setReleaseName(release.getName()); appDeployerData.setReleaseVersion(release.getVersion()); appDeployerData.setDeploymentDataUsingMap(appNameDeploymentIdMap); this.appDeployerDataRepository.save(appDeployerData); }
@ShellMethod(key = "package install", value = "Install a package.") public String install( @ShellOption(help = "name of the package to install") String packageName, @ShellOption(help = "version of the package to install, if not specified latest version will be used", defaultValue = NULL) String packageVersion, @ShellOption(help = "specify values in a YAML file", defaultValue = NULL) File file, @ShellOption(help = "the comma separated set of properties to override during install", defaultValue = NULL) String properties, @ShellOption(help = "the release name to use") String releaseName, @ShellOption(help = "the platform name to use", defaultValue = "default") String platformName) throws IOException { // Commented out until https://github.com/spring-cloud/spring-cloud-skipper/issues/263 is // addressed // assertMutuallyExclusiveFileAndProperties(file, properties); Release release = skipperClient .install(getInstallRequest(packageName, packageVersion, file, properties, releaseName, platformName)); return "Released " + release.getName() + ". Now at version v" + release.getVersion() + "."; }