aboutsummaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorJon Marius Venstad <jonmv@users.noreply.github.com>2022-02-02 14:38:03 +0100
committerGitHub <noreply@github.com>2022-02-02 14:38:03 +0100
commit75267de23bf984de82f7412706c9492ec4bca007 (patch)
tree57668308c2590b8b3206b42d1282015168a299a9 /controller-server
parent8cc71f81b36d8f9d293336c6c32799a9f7eb784d (diff)
parent03b3e465d29e925e1d326310fd70d67becd83f9a (diff)
Merge pull request #21025 from vespa-engine/olaa/differentiate-directly-deployed
Differentiate deployment method when clearing old app versions
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java3
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java4
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java4
3 files changed, 8 insertions, 3 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java
index 7156e4ac937..a5a1bb93225 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java
@@ -87,6 +87,7 @@ import java.util.Optional;
import java.util.Set;
import java.util.TreeMap;
import java.util.function.Consumer;
+import java.util.function.Function;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.stream.Collectors;
@@ -451,10 +452,12 @@ public class ApplicationController {
.stream()
.flatMap(instance -> instance.deployments().values().stream())
.map(Deployment::applicationVersion)
+ .filter(version -> !version.isDeployedDirectly())
.sorted()
.findFirst()
.orElse(ApplicationVersion.unknown);
+
var olderVersions = application.get().versions()
.stream()
.filter(version -> version.compareTo(oldestDeployedVersion) < 0)
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java
index 4a3368a7228..7377f9ab1e5 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java
@@ -229,13 +229,15 @@ public class ApplicationSerializer {
}
private void versionsToSlime(Application application, Cursor object) {
- // Add all deployed versions as well
+ // Add all indirectly deployed versions as well
+ // Remove after all apps are updated
application.instances()
.values()
.stream()
.flatMap(instance -> instance.deployments().values().stream())
.map(Deployment::applicationVersion)
.forEach(application.versions()::add);
+ application.versions().removeIf(ApplicationVersion::isDeployedDirectly);
application.versions().forEach(version -> toSlime(version, object.addObject()));
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java
index e7e54828a5d..320cf978e7f 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java
@@ -159,9 +159,9 @@ public class ApplicationSerializerTest {
assertEquals(original.latestVersion().get().sourceUrl(), serialized.latestVersion().get().sourceUrl());
assertEquals(original.latestVersion().get().commit(), serialized.latestVersion().get().commit());
assertEquals(original.latestVersion().get().bundleHash(), serialized.latestVersion().get().bundleHash());
- // Check deployed versions are added
+ // Check indirectly deployed versions are added, directly deployed are removed
assertEquals(original.versions(), serialized.versions());
- assertEquals(serialized.versions(), new TreeSet<>(Set.of(applicationVersion1, applicationVersion2)));
+ assertEquals(serialized.versions(), new TreeSet<>(Set.of(applicationVersion2)));
assertEquals(original.deploymentSpec().xmlForm(), serialized.deploymentSpec().xmlForm());