diff options
author | jonmv <venstad@gmail.com> | 2023-05-02 14:27:22 +0200 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2023-05-02 14:27:22 +0200 |
commit | 8fbf45a6ae68b6428023f21f7503803c1e20ce57 (patch) | |
tree | 0fa348675602d752b32e91e3f8460ae0dc0121f8 /controller-server | |
parent | e23486dfb4adaf88242053c9ce27acdc2beeb6ff (diff) |
Log when version status changes
Diffstat (limited to 'controller-server')
-rw-r--r-- | controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Controller.java | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Controller.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Controller.java index c8ec38ec73b..fb437c3258b 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Controller.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Controller.java @@ -40,6 +40,7 @@ import com.yahoo.yolean.concurrent.Sleeper; import java.time.Clock; import java.time.Instant; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Optional; @@ -50,6 +51,9 @@ import java.util.function.Predicate; import java.util.logging.Logger; import java.util.stream.Collectors; +import static java.util.stream.Collectors.toList; +import static java.util.stream.Collectors.toSet; + /** * API to the controller. This contains the object model of everything the controller cares about, mainly tenants and * applications. The object model is persisted to curator. @@ -179,13 +183,23 @@ public class Controller extends AbstractComponent { log.info("Changing system version from " + printableVersion(currentStatus.systemVersion()) + " to " + printableVersion(newStatus.systemVersion())); } + Set<Version> obsoleteVersions = currentStatus.versions().stream().map(VespaVersion::versionNumber).collect(toSet()); + for (VespaVersion version : newStatus.versions()) { + obsoleteVersions.remove(version.versionNumber()); + VespaVersion current = currentStatus.version(version.versionNumber()); + if (current == null) + log.info("New version " + version.versionNumber().toFullString() + " added"); + else if ( ! current.confidence().equals(version.confidence())) + log.info("Confidence for version " + version.versionNumber().toFullString() + + " changed from " + current.confidence() + " to " + version.confidence()); + } + for (Version version : obsoleteVersions) + log.info("Version " + version.toFullString() + " is obsolete, and will be forgotten"); + curator.writeVersionStatus(newStatus); - // Removes confidence overrides for versions that no longer exist in the system - removeConfidenceOverride(version -> newStatus.versions().stream() - .noneMatch(vespaVersion -> vespaVersion.versionNumber() - .equals(version))); + removeConfidenceOverride(obsoleteVersions::contains); } - + /** Returns the latest known version status. Calling this is free but the status may be slightly out of date. */ public VersionStatus readVersionStatus() { return curator.readVersionStatus(); } |