private DeploymentState getDeploymentStateFromStatusInfo(Info info) { switch (info.getStatus().getStatusCode()) { case FAILED: return DeploymentState.failed; case DELETED: return DeploymentState.undeployed; case UNKNOWN: return DeploymentState.unknown; case DEPLOYED: return DeploymentState.deployed; } return DeploymentState.unknown; }
private DeploymentState getDeploymentStateFromStatusInfo(Info info) { switch (info.getStatus().getStatusCode()) { case FAILED: return DeploymentState.failed; case DELETED: return DeploymentState.undeployed; case UNKNOWN: return DeploymentState.unknown; case DEPLOYED: return DeploymentState.deployed; } return DeploymentState.unknown; }
private List<AppStatus> skipperStatus(String streamName) { List<AppStatus> appStatuses = new ArrayList<>(); try { Info info = this.skipperClient.status(streamName); appStatuses.addAll(info.getStatus().getAppStatusList()); } catch (Exception e) { // ignore as we query status for all the streams. } return appStatuses; }
private void updateStatus(StringBuilder sb, Release release) { sb.append("Release Status: " + release.getInfo().getStatus().getStatusCode() + "\n"); if (StringUtils.hasText(release.getInfo().getStatus().getPlatformStatus())) { sb.append("Platform Status: " + release.getInfo().getStatus().getPlatformStatusPrettyPrint()); } else { sb.append("Platform Status: unknown"); } }
private List<AppStatus> skipperStatus(String streamName) { List<AppStatus> appStatuses = new ArrayList<>(); try { Info info = this.skipperClient.status(streamName); appStatuses.addAll(SkipperStreamDeployer.deserializeAppStatus(info.getStatus().getPlatformStatus())); } catch (Exception e) { // ignore as we query status for all the streams. } return appStatuses; }
public Release status(Release release) { release.getInfo().getStatus().setPlatformStatusAsAppStatusList( Collections.singletonList(this.cfManifestApplicationDeployer.status(release))); return release; }
private List<Release> getDeployedOrFailed(Iterable<Release> allReleases) { List<Release> releases = new ArrayList<>(); for (Release release : allReleases) { StatusCode releaseStatusCode = release.getInfo().getStatus().getStatusCode(); if (releaseStatusCode.equals(StatusCode.DEPLOYED) || releaseStatusCode.equals(StatusCode.FAILED)) { releases.add(release); } } return releases; }
private List<Release> getDeployedOrFailed(Iterable<Release> allReleases) { List<Release> releases = new ArrayList<>(); for (Release release : allReleases) { StatusCode releaseStatusCode = release.getInfo().getStatus().getStatusCode(); if (releaseStatusCode.equals(StatusCode.DEPLOYED) || releaseStatusCode.equals(StatusCode.FAILED)) { releases.add(release); } } return releases; }
private DeploymentState getStreamDeploymentState(String streamName) { DeploymentState state = null; try { Info info = this.skipperClient.status(streamName); if (info.getStatus().getPlatformStatus() == null) { return getDeploymentStateFromStatusInfo(info); } List<AppStatus> appStatusList = deserializeAppStatus(info.getStatus().getPlatformStatus()); Set<DeploymentState> deploymentStateList = appStatusList.stream().map(appStatus -> appStatus.getState()) .collect(Collectors.toSet()); DeploymentState aggregateState = StreamDeployerUtil.aggregateState(deploymentStateList); state = aggregateState; } catch (ReleaseNotFoundException e) { // a defined stream but unknown to skipper is considered to be in an undeployed state if (streamDefinitionExists(streamName)) { state = DeploymentState.undeployed; } } return state; }
private DeploymentState getStreamDeploymentState(String streamName) { DeploymentState state = null; try { Info info = this.skipperClient.status(streamName); if (info.getStatus().getPlatformStatus() == null) { return getDeploymentStateFromStatusInfo(info); } List<AppStatus> appStatusList = deserializeAppStatus(info.getStatus().getPlatformStatus()); Set<DeploymentState> deploymentStateList = appStatusList.stream().map(appStatus -> appStatus.getState()) .collect(Collectors.toSet()); DeploymentState aggregateState = StreamDeployerUtil.aggregateState(deploymentStateList); state = aggregateState; } catch (ReleaseNotFoundException e) { // a defined stream but unknown to skipper is considered to be in an undeployed state if (streamDefinitionExists(streamName)) { state = DeploymentState.undeployed; } } return state; }
@Override public Release findLatestReleaseForUpdate(String 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)) { return release; } } throw new ReleaseNotFoundException(releaseName); }
@Override public Release findLatestReleaseForUpdate(String 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)) { return release; } } throw new ReleaseNotFoundException(releaseName); }
@Override public Release findLatestReleaseIfDeleted(String releaseName) { Release latestRelease = this.releaseRepository.findTopByNameOrderByVersionDesc(releaseName); return (latestRelease != null && latestRelease.getInfo().getStatus().getStatusCode().equals(StatusCode.DELETED)) ? latestRelease : null; }
@Override public Release findLatestReleaseIfDeleted(String releaseName) { Release latestRelease = this.releaseRepository.findTopByNameOrderByVersionDesc(releaseName); return (latestRelease != null && latestRelease.getInfo().getStatus().getStatusCode().equals(StatusCode.DELETED)) ? latestRelease : null; }
@Override public Release findLatestDeployedRelease(String releaseName) { List<Release> releases = this.releaseRepository.findByNameOrderByVersionDesc(releaseName); for (Release release : releases) { if (release.getInfo().getStatus().getStatusCode().equals(StatusCode.DEPLOYED)) { return release; } } throw new ReleaseNotFoundException(releaseName); }
@Override public Release findLatestDeployedRelease(String releaseName) { List<Release> releases = this.releaseRepository.findByNameOrderByVersionDesc(releaseName); for (Release release : releases) { if (release.getInfo().getStatus().getStatusCode().equals(StatusCode.DEPLOYED)) { 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 validateInstallRequest(InstallRequest installRequest) { Assert.notNull(installRequest.getInstallProperties(), "Install properties must not be null"); Assert.isTrue(StringUtils.hasText(installRequest.getInstallProperties().getPlatformName()), "Platform name must not be empty"); Assert.isTrue(StringUtils.hasText(installRequest.getInstallProperties().getReleaseName()), "Release name must not be empty"); Assert.notNull(installRequest.getPackageIdentifier(), "Package identifier must not be null"); Assert.isTrue(StringUtils.hasText(installRequest.getPackageIdentifier().getPackageName()), "Package name must not be empty"); try { Release latestRelease = this.releaseRepository.findLatestRelease(installRequest.getInstallProperties() .getReleaseName()); if (latestRelease != null && !latestRelease.getInfo().getStatus().getStatusCode().equals(StatusCode.DELETED)) { throw new SkipperException("Release with the name [" + installRequest.getInstallProperties().getReleaseName() + "] already exists and it is not deleted."); } } catch (ReleaseNotFoundException e) { // ignore as this is expected. } }
@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 validateInstallRequest(InstallRequest installRequest) { Assert.notNull(installRequest.getInstallProperties(), "Install properties must not be null"); Assert.isTrue(StringUtils.hasText(installRequest.getInstallProperties().getPlatformName()), "Platform name must not be empty"); Assert.isTrue(StringUtils.hasText(installRequest.getInstallProperties().getReleaseName()), "Release name must not be empty"); Assert.notNull(installRequest.getPackageIdentifier(), "Package identifier must not be null"); Assert.isTrue(StringUtils.hasText(installRequest.getPackageIdentifier().getPackageName()), "Package name must not be empty"); try { Release latestRelease = this.releaseRepository.findLatestRelease(installRequest.getInstallProperties() .getReleaseName()); if (latestRelease != null && !latestRelease.getInfo().getStatus().getStatusCode().equals(StatusCode.DELETED)) { throw new SkipperException("Release with the name [" + installRequest.getInstallProperties().getReleaseName() + "] already exists and it is not deleted."); } } catch (ReleaseNotFoundException e) { // ignore as this is expected. } }