/** * Update the stream identified by the PackageIdentifier and runtime configuration values. * @param streamName the name of the stream to upgrade * @param packageIdentifier the name of the package in skipper * @param configYml the YML formatted configuration values to use when upgrading * @param force the flag to indicate if the stream update is forced even if there are no differences from the existing stream * @param appNames the app names to update * @return release the upgraded release */ public Release upgradeStream(String streamName, PackageIdentifier packageIdentifier, String configYml, boolean force, List<String> appNames) { UpgradeRequest upgradeRequest = new UpgradeRequest(); upgradeRequest.setPackageIdentifier(packageIdentifier); UpgradeProperties upgradeProperties = new UpgradeProperties(); ConfigValues configValues = new ConfigValues(); configValues.setRaw(configYml); upgradeProperties.setConfigValues(configValues); upgradeProperties.setReleaseName(streamName); upgradeRequest.setUpgradeProperties(upgradeProperties); upgradeRequest.setForce(force); upgradeRequest.setAppNames(appNames); return this.skipperClient.upgrade(upgradeRequest); }
private Release createReleaseForUpgrade(PackageMetadata packageMetadata, Integer newVersion, UpgradeProperties upgradeProperties, String platformName, RollbackRequest rollbackRequest) { Assert.notNull(upgradeProperties, "Upgrade Properties can not be null"); Package packageToInstall = this.packageService.downloadPackage(packageMetadata); Release release = new Release(); release.setName(upgradeProperties.getReleaseName()); release.setPlatformName(platformName); release.setConfigValues(upgradeProperties.getConfigValues()); release.setPkg(packageToInstall); release.setVersion(newVersion); // we simply differentiate between upgrade/rollback if we know there is a rollback request Info info = Info .createNewInfo(rollbackRequest == null ? "Upgrade install underway" : "Rollback install underway"); release.setInfo(info); return release; }
/** * Upgrade release. * * @param upgradeRequest the upgrade request * @return the release */ public Release upgradeRelease(UpgradeRequest upgradeRequest) { String releaseName = upgradeRequest.getUpgradeProperties().getReleaseName(); Message<SkipperEvents> message = MessageBuilder .withPayload(SkipperEvents.UPGRADE) .setHeader(SkipperEventHeaders.UPGRADE_REQUEST, upgradeRequest) .setHeader(SkipperEventHeaders.UPGRADE_TIMEOUT, upgradeRequest.getTimeout()) .build(); return handleMessageAndWait(message, releaseName, SkipperStates.UPGRADE_WAIT_TARGET_APPS); }
/** * Upgrade release. * * @param upgradeRequest the upgrade request * @return the release */ public Release upgradeRelease(UpgradeRequest upgradeRequest) { String releaseName = upgradeRequest.getUpgradeProperties().getReleaseName(); Message<SkipperEvents> message = MessageBuilder .withPayload(SkipperEvents.UPGRADE) .setHeader(SkipperEventHeaders.UPGRADE_REQUEST, upgradeRequest) .setHeader(SkipperEventHeaders.UPGRADE_TIMEOUT, upgradeRequest.getTimeout()) .build(); return handleMessageAndWait(message, releaseName, SkipperStates.UPGRADE_WAIT_TARGET_APPS); }
/** * Update the stream identified by the PackageIdentifier and runtime configuration values. * @param streamName the name of the stream to upgrade * @param packageIdentifier the name of the package in skipper * @param configYml the YML formatted configuration values to use when upgrading * @param force the flag to indicate if the stream update is forced even if there are no differences from the existing stream * @param appNames the app names to update * @return release the upgraded release */ public Release upgradeStream(String streamName, PackageIdentifier packageIdentifier, String configYml, boolean force, List<String> appNames) { UpgradeRequest upgradeRequest = new UpgradeRequest(); upgradeRequest.setPackageIdentifier(packageIdentifier); UpgradeProperties upgradeProperties = new UpgradeProperties(); ConfigValues configValues = new ConfigValues(); configValues.setRaw(configYml); upgradeProperties.setConfigValues(configValues); upgradeProperties.setReleaseName(streamName); upgradeRequest.setUpgradeProperties(upgradeProperties); upgradeRequest.setForce(force); upgradeRequest.setAppNames(appNames); return this.skipperClient.upgrade(upgradeRequest); }
private Release createReleaseForUpgrade(PackageMetadata packageMetadata, Integer newVersion, UpgradeProperties upgradeProperties, String platformName, RollbackRequest rollbackRequest) { Assert.notNull(upgradeProperties, "Upgrade Properties can not be null"); Package packageToInstall = this.packageService.downloadPackage(packageMetadata); Release release = new Release(); release.setName(upgradeProperties.getReleaseName()); release.setPlatformName(platformName); release.setConfigValues(upgradeProperties.getConfigValues()); release.setPkg(packageToInstall); release.setVersion(newVersion); // we simply differentiate between upgrade/rollback if we know there is a rollback request Info info = Info .createNewInfo(rollbackRequest == null ? "Upgrade install underway" : "Rollback install underway"); release.setInfo(info); return release; }
Assert.notNull(upgradeRequest.getPackageIdentifier(), "PackageIdentifier can not be null"); UpgradeProperties upgradeProperties = upgradeRequest.getUpgradeProperties(); Release existingRelease = this.releaseRepository.findLatestReleaseForUpdate(upgradeProperties.getReleaseName()); Release latestRelease = this.releaseRepository.findLatestRelease(upgradeProperties.getReleaseName()); PackageIdentifier packageIdentifier = upgradeRequest.getPackageIdentifier(); PackageMetadata packageMetadata = this.packageMetadataRepository.findByNameAndOptionalVersionRequired( upgradeRequest.getUpgradeProperties().getReleaseName(), latestRelease.getVersion());
private UpgradeRequest getUpgradeRequest(String releaseName, String packageName, String packageVersion, File propertiesFile, String propertiesToOverride, String timeoutExpression, boolean forceUpgrade, String appNames) throws IOException { UpgradeRequest upgradeRequest = new UpgradeRequest(); upgradeRequest.setForce(forceUpgrade); upgradeRequest.setAppNames(new ArrayList<>(StringUtils.commaDelimitedListToSet(appNames))); UpgradeProperties upgradeProperties = new UpgradeProperties(); upgradeProperties.setReleaseName(releaseName); String configValuesYML = YmlUtils.getYamlConfigValues(propertiesFile, propertiesToOverride); if (StringUtils.hasText(configValuesYML)) { ConfigValues configValues = new ConfigValues(); configValues.setRaw(configValuesYML); upgradeProperties.setConfigValues(configValues); } upgradeRequest.setUpgradeProperties(upgradeProperties); PackageIdentifier packageIdentifier = new PackageIdentifier(); packageIdentifier.setPackageName(packageName); packageIdentifier.setPackageVersion(packageVersion); upgradeRequest.setPackageIdentifier(packageIdentifier); upgradeRequest.setPackageIdentifier(packageIdentifier); Duration duration = DurationUtils.convert(timeoutExpression); if (duration != null) { upgradeRequest.setTimeout(duration.toMillis()); } return upgradeRequest; }
Assert.notNull(upgradeRequest.getPackageIdentifier(), "PackageIdentifier can not be null"); UpgradeProperties upgradeProperties = upgradeRequest.getUpgradeProperties(); Release existingRelease = this.releaseRepository.findLatestReleaseForUpdate(upgradeProperties.getReleaseName()); Release latestRelease = this.releaseRepository.findLatestRelease(upgradeProperties.getReleaseName()); PackageIdentifier packageIdentifier = upgradeRequest.getPackageIdentifier(); PackageMetadata packageMetadata = this.packageMetadataRepository.findByNameAndOptionalVersionRequired( upgradeRequest.getUpgradeProperties().getReleaseName(), latestRelease.getVersion());
UpgradeProperties upgradeProperties = new UpgradeProperties(); upgradeProperties.setReleaseName(releaseName); upgradeProperties.setConfigValues(releaseToRollback.getConfigValues()); upgradeRequest.setUpgradeProperties(upgradeProperties); upgradeRequest.setPackageIdentifier(packageIdentifier);
UpgradeProperties upgradeProperties = new UpgradeProperties(); upgradeProperties.setReleaseName(releaseName); upgradeProperties.setConfigValues(releaseToRollback.getConfigValues()); upgradeRequest.setUpgradeProperties(upgradeProperties); upgradeRequest.setPackageIdentifier(packageIdentifier);