summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2023-05-02 14:27:22 +0200
committerjonmv <venstad@gmail.com>2023-05-02 14:27:22 +0200
commit8fbf45a6ae68b6428023f21f7503803c1e20ce57 (patch)
tree0fa348675602d752b32e91e3f8460ae0dc0121f8 /controller-server
parente23486dfb4adaf88242053c9ce27acdc2beeb6ff (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.java24
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(); }