@Override public String manifest(String releaseName) { ParameterizedTypeReference<Resource<Manifest>> typeReference = new ParameterizedTypeReference<Resource<Manifest>>() { }; Map<String, String> uriVariables = new HashMap<String, String>(); uriVariables.put("releaseName", releaseName); ResponseEntity<Resource<Manifest>> resourceResponseEntity = restTemplate.exchange(baseUri + "/release/manifest/{releaseName}", HttpMethod.GET, null, typeReference, uriVariables); return resourceResponseEntity.getBody().getContent().getData(); }
public Release install(Release release) { Map<String, Object> mergedMap = ConfigValueUtils.mergeConfigValues(release.getPkg(), release.getConfigValues()); // Render yaml resources String manifestData = ManifestUtils.createManifest(release.getPkg(), mergedMap); logger.debug("Manifest = " + ArgumentSanitizer.sanitizeYml(manifestData)); Manifest manifest = new Manifest(); manifest.setData(manifestData); release.setManifest(manifest); // Deployment String kind = ManifestUtils.resolveKind(release.getManifest().getData()); ReleaseManager releaseManager = this.releaseManagerFactory.getReleaseManager(kind); Release releaseToReturn = releaseManager.install(release); return releaseToReturn; }
@Override public ReleaseAnalysisReport createReport(Release existingRelease, Release replacingRelease, boolean initial, boolean isForceUpdate, List<String> appNamesToUpgrade) { ReleaseAnalysisReport releaseAnalysisReport = this.releaseAnalyzer .analyze(existingRelease, replacingRelease, isForceUpdate, appNamesToUpgrade); List<String> applicationNamesToUpgrade = releaseAnalysisReport.getApplicationNamesToUpgrade(); if (releaseAnalysisReport.getReleaseDifference().areEqual() && !isForceUpdate) { throw new SkipperException( "Package to upgrade has no difference than existing deployed/deleted package. Not upgrading."); } AppDeployerData existingAppDeployerData = this.appDeployerDataRepository .findByReleaseNameAndReleaseVersionRequired( existingRelease.getName(), existingRelease.getVersion()); Map<String, String> existingAppNamesAndDeploymentIds = existingAppDeployerData.getDeploymentDataAsMap(); List<AppStatus> appStatuses = status(existingRelease).getInfo().getStatus().getAppStatusList(); Map<String, Object> model = calculateAppCountsForRelease(replacingRelease, existingAppNamesAndDeploymentIds, applicationNamesToUpgrade, appStatuses); String manifestData = ManifestUtils.createManifest(replacingRelease.getPkg(), model); Manifest manifest = new Manifest(); manifest.setData(manifestData); replacingRelease.setManifest(manifest); if (initial) { this.releaseRepository.save(replacingRelease); } return releaseAnalysisReport; }
@Override public ReleaseAnalysisReport createReport(Release existingRelease, Release replacingRelease, boolean initial, boolean isForceUpdate, List<String> appNamesToUpgrade) { ReleaseAnalysisReport releaseAnalysisReport = this.releaseAnalyzer .analyze(existingRelease, replacingRelease, isForceUpdate, appNamesToUpgrade); List<String> applicationNamesToUpgrade = releaseAnalysisReport.getApplicationNamesToUpgrade(); if (releaseAnalysisReport.getReleaseDifference().areEqual() && !isForceUpdate) { throw new SkipperException( "Package to upgrade has no difference than existing deployed/deleted package. Not upgrading."); } AppDeployerData existingAppDeployerData = this.appDeployerDataRepository .findByReleaseNameAndReleaseVersionRequired( existingRelease.getName(), existingRelease.getVersion()); Map<String, String> existingAppNamesAndDeploymentIds = existingAppDeployerData.getDeploymentDataAsMap(); List<AppStatus> appStatuses = status(existingRelease).getInfo().getStatus().getAppStatusList(); Map<String, Object> model = calculateAppCountsForRelease(replacingRelease, existingAppNamesAndDeploymentIds, applicationNamesToUpgrade, appStatuses); String manifestData = ManifestUtils.createManifest(replacingRelease.getPkg(), model); Manifest manifest = new Manifest(); manifest.setData(manifestData); replacingRelease.setManifest(manifest); if (initial) { this.releaseRepository.save(replacingRelease); } return releaseAnalysisReport; }
@Override public String manifest(String releaseName) { ParameterizedTypeReference<Resource<Manifest>> typeReference = new ParameterizedTypeReference<Resource<Manifest>>() { }; Map<String, String> uriVariables = new HashMap<String, String>(); uriVariables.put("releaseName", releaseName); ResponseEntity<Resource<Manifest>> resourceResponseEntity = restTemplate.exchange(baseUri + "/release/manifest/{releaseName}", HttpMethod.GET, null, typeReference, uriVariables); return resourceResponseEntity.getBody().getContent().getData(); }
public Release install(Release release) { Map<String, Object> mergedMap = ConfigValueUtils.mergeConfigValues(release.getPkg(), release.getConfigValues()); // Render yaml resources String manifestData = ManifestUtils.createManifest(release.getPkg(), mergedMap); logger.debug("Manifest = " + ArgumentSanitizer.sanitizeYml(manifestData)); Manifest manifest = new Manifest(); manifest.setData(manifestData); release.setManifest(manifest); // Deployment String kind = ManifestUtils.resolveKind(release.getManifest().getData()); ReleaseManager releaseManager = this.releaseManagerFactory.getReleaseManager(kind); Release releaseToReturn = releaseManager.install(release); return releaseToReturn; }
@Override public String manifest(String releaseName, int releaseVersion) { ParameterizedTypeReference<Resource<Manifest>> typeReference = new ParameterizedTypeReference<Resource<Manifest>>() { }; Map<String, String> uriVariables = new HashMap<String, String>(); uriVariables.put("releaseName", releaseName); uriVariables.put("releaseVersion", Integer.toString(releaseVersion)); ResponseEntity<Resource<Manifest>> resourceResponseEntity = restTemplate.exchange(baseUri + "/release/manifest/{releaseName}/{releaseVersion}", HttpMethod.GET, null, typeReference, uriVariables); return resourceResponseEntity.getBody().getContent().getData(); }
Manifest manifest = new Manifest(); manifest.setData(manifestData); replacingRelease.setManifest(manifest); String kind = ManifestUtils.resolveKind(existingRelease.getManifest().getData()); ReleaseManager releaseManager = this.releaseManagerFactory.getReleaseManager(kind); return releaseManager.createReport(existingRelease, replacingRelease, initial, upgradeRequest.isForce(),
@Override public String manifest(String releaseName, int releaseVersion) { ParameterizedTypeReference<Resource<Manifest>> typeReference = new ParameterizedTypeReference<Resource<Manifest>>() { }; Map<String, String> uriVariables = new HashMap<String, String>(); uriVariables.put("releaseName", releaseName); uriVariables.put("releaseVersion", Integer.toString(releaseVersion)); ResponseEntity<Resource<Manifest>> resourceResponseEntity = restTemplate.exchange(baseUri + "/release/manifest/{releaseName}/{releaseVersion}", HttpMethod.GET, null, typeReference, uriVariables); return resourceResponseEntity.getBody().getContent().getData(); }
Manifest manifest = new Manifest(); manifest.setData(manifestData); replacingRelease.setManifest(manifest); String kind = ManifestUtils.resolveKind(existingRelease.getManifest().getData()); ReleaseManager releaseManager = this.releaseManagerFactory.getReleaseManager(kind); return releaseManager.createReport(existingRelease, replacingRelease, initial, upgradeRequest.isForce(),
public List<String> getAllApplicationNames(Release release) { List<String> appNames = new ArrayList<>(); List<? extends SpringCloudDeployerApplicationManifest> applicationSpecList = this.applicationManifestReader .read(release.getManifest().getData()); if (release.getPkg().getDependencies().size() == 0) { appNames.add(applicationSpecList.get(0).getApplicationName()); } else { for (SpringCloudDeployerApplicationManifest applicationManifestSpec : applicationSpecList) { appNames.add(applicationManifestSpec.getApplicationName()); } } return appNames; }
public List<String> getAllApplicationNames(Release release) { List<String> appNames = new ArrayList<>(); List<? extends SpringCloudDeployerApplicationManifest> applicationSpecList = this.applicationManifestReader .read(release.getManifest().getData()); if (release.getPkg().getDependencies().size() == 0) { appNames.add(applicationSpecList.get(0).getApplicationName()); } else { for (SpringCloudDeployerApplicationManifest applicationManifestSpec : applicationSpecList) { appNames.add(applicationManifestSpec.getApplicationName()); } } return appNames; }
@Override public void rollbackStream(String streamName, int releaseVersion) { Assert.isTrue(StringUtils.hasText(streamName), "Stream name must not be null"); Release release = this.skipperStreamDeployer.rollbackStream(streamName, releaseVersion); if (release != null && release.getManifest() != null) { updateStreamDefinitionFromReleaseManifest(streamName, release.getManifest().getData()); } this.auditRecordService.populateAndSaveAuditRecord(AuditOperationType.STREAM, AuditActionType.ROLLBACK, streamName, "Rollback to version: " + releaseVersion); }
@Override public void rollbackStream(String streamName, int releaseVersion) { Assert.isTrue(StringUtils.hasText(streamName), "Stream name must not be null"); Release release = this.skipperStreamDeployer.rollbackStream(streamName, releaseVersion); if (release != null && release.getManifest() != null) { updateStreamDefinitionFromReleaseManifest(streamName, release.getManifest().getData()); } this.auditRecordService.populateAndSaveAuditRecord(AuditOperationType.STREAM, AuditActionType.ROLLBACK, streamName, "Rollback to version: " + releaseVersion); }
@Transactional public ReleaseAnalysisReport createReport(Release existingRelease, Release replacingRelease) { String kind = ManifestUtils.resolveKind(existingRelease.getManifest().getData()); ReleaseManager releaseManager = this.releaseManagerFactory.getReleaseManager(kind); return releaseManager.createReport(existingRelease, replacingRelease, true, false, null); }
@Transactional public ReleaseAnalysisReport createReport(Release existingRelease, Release replacingRelease) { String kind = ManifestUtils.resolveKind(existingRelease.getManifest().getData()); ReleaseManager releaseManager = this.releaseManagerFactory.getReleaseManager(kind); return releaseManager.createReport(existingRelease, replacingRelease, true, false, null); }
private Release status(Release release) { String kind = ManifestUtils.resolveKind(release.getManifest().getData()); ReleaseManager releaseManager = this.releaseManagerFactory.getReleaseManager(kind); return releaseManager.status(release); }
public void updateStream(String streamName, String releaseName, PackageIdentifier packageIdentifier, Map<String, String> updateProperties, boolean force, List<String> appNames) { StreamDefinition streamDefinition = this.streamDefinitionRepository.findById(streamName) .orElseThrow(() -> new NoSuchStreamDefinitionException(streamName)); String updateYaml = convertPropertiesToSkipperYaml(streamDefinition, updateProperties); Release release = this.skipperStreamDeployer.upgradeStream(releaseName, packageIdentifier, updateYaml, force, appNames); if (release != null) { updateStreamDefinitionFromReleaseManifest(streamName, release.getManifest().getData()); final String sanatizedUpdateYaml = convertPropertiesToSkipperYaml(streamDefinition, this.auditServiceUtils.sanitizeProperties(updateProperties)); final Map<String, Object> auditedData = new HashMap<>(3); auditedData.put("releaseName", releaseName); auditedData.put("packageIdentifier", packageIdentifier); auditedData.put("updateYaml", sanatizedUpdateYaml); this.auditRecordService.populateAndSaveAuditRecordUsingMapData( AuditOperationType.STREAM, AuditActionType.UPDATE, streamName, auditedData); } else { logger.error("Missing release after Stream Update!"); } }
private Release status(Release release) { String kind = ManifestUtils.resolveKind(release.getManifest().getData()); ReleaseManager releaseManager = this.releaseManagerFactory.getReleaseManager(kind); return releaseManager.status(release); }
private Map<String, String> deploy(Release replacingRelease, List<String> applicationNamesToUpgrade, AppDeployer appDeployer) { List<? extends SpringCloudDeployerApplicationManifest> applicationSpecList = this.applicationManifestReader .read(replacingRelease .getManifest().getData()); Map<String, String> appNameDeploymentIdMap = new HashMap<>(); for (SpringCloudDeployerApplicationManifest applicationManifest : applicationSpecList) { if (applicationNamesToUpgrade.contains(applicationManifest.getApplicationName())) { AppDeploymentRequest appDeploymentRequest = appDeploymentRequestFactory.createAppDeploymentRequest( applicationManifest, replacingRelease.getName(), String.valueOf(replacingRelease.getVersion())); // ============= // DEPLOY DEPLOY // ============= String deploymentId = appDeployer.deploy(appDeploymentRequest); appNameDeploymentIdMap.put(applicationManifest.getApplicationName(), deploymentId); } } return appNameDeploymentIdMap; } }