diff options
author | jonmv <venstad@gmail.com> | 2022-10-20 10:06:47 +0200 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2022-10-20 10:08:16 +0200 |
commit | 5ebf9847685fb6ee4879164032cfd244b5a2ca7f (patch) | |
tree | aa7172e4bc40ebb0f9587712bce13b94f12a2a1e /controller-server | |
parent | 0f2271b74221560e61063c13faf92d141e1991c0 (diff) |
Allow confidence to change from normal to high for older versions
Diffstat (limited to 'controller-server')
2 files changed, 11 insertions, 10 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/DeploymentStatistics.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/DeploymentStatistics.java index e3077cb232f..760ae894e37 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/DeploymentStatistics.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/DeploymentStatistics.java @@ -71,7 +71,7 @@ public record DeploymentStatistics(Version version, JobList failing = status.jobs().failingHard(); // Add all unsuccessful runs for failing production jobs as any run may have resulted in an incomplete deployment - // where a subset of nodes have upgraded. + // where a subset of nodes has upgraded. failing.not().failingApplicationChange() .production() .mapToList(JobStatus::runs) diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/VersionStatus.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/VersionStatus.java index 4002da4699a..607b2a1fc1d 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/VersionStatus.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/VersionStatus.java @@ -233,16 +233,17 @@ public record VersionStatus(List<VespaVersion> versions) { // Compute confidence if (!confidenceIsOverridden) { - // Always compute confidence for system and controller - if (isSystemVersion || isControllerVersion) { - confidence = VespaVersion.confidenceFrom(statistics, controller, versionStatus); + Confidence newConfidence = VespaVersion.confidenceFrom(statistics, controller, versionStatus); + Confidence oldConfidence = Optional.ofNullable(versionStatus.version(statistics.version())) + .map(VespaVersion::confidence) + .orElse(newConfidence); + // Always update confidence for system and controller + // Also allow older versions to transition from normal to high confidence + if (isSystemVersion || isControllerVersion || oldConfidence == Confidence.normal && newConfidence == Confidence.high) { + confidence = newConfidence; } else { - // This is an older version, so we preserve the existing confidence, if any - confidence = versionStatus.versions().stream() - .filter(v -> statistics.version().equals(v.versionNumber())) - .map(VespaVersion::confidence) - .findFirst() - .orElseGet(() -> VespaVersion.confidenceFrom(statistics, controller, versionStatus)); + // Otherwise, this is an older version, so we preserve the existing confidence, if any + confidence = oldConfidence; } } |