summaryrefslogtreecommitdiffstats
path: root/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/OsVersionTargetSerializer.java
diff options
context:
space:
mode:
Diffstat (limited to 'controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/OsVersionTargetSerializer.java')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/OsVersionTargetSerializer.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/OsVersionTargetSerializer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/OsVersionTargetSerializer.java
index 7c27533c144..4eac5a64b0c 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/OsVersionTargetSerializer.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/OsVersionTargetSerializer.java
@@ -5,10 +5,12 @@ import com.yahoo.slime.ArrayTraverser;
import com.yahoo.slime.Cursor;
import com.yahoo.slime.Inspector;
import com.yahoo.slime.Slime;
+import com.yahoo.slime.SlimeUtils;
import com.yahoo.vespa.hosted.controller.versions.OsVersion;
import com.yahoo.vespa.hosted.controller.versions.OsVersionTarget;
import java.time.Duration;
+import java.time.Instant;
import java.util.Collections;
import java.util.Set;
import java.util.TreeSet;
@@ -24,6 +26,7 @@ public class OsVersionTargetSerializer {
private static final String versionsField = "versions";
private static final String upgradeBudgetField = "upgradeBudget";
+ private static final String scheduledAtField = "scheduledAt";
public OsVersionTargetSerializer(OsVersionSerializer osVersionSerializer) {
this.osVersionSerializer = osVersionSerializer;
@@ -43,7 +46,10 @@ public class OsVersionTargetSerializer {
array.traverse((ArrayTraverser) (i, inspector) -> {
OsVersion osVersion = osVersionSerializer.fromSlime(inspector);
Duration upgradeBudget = Duration.ofMillis(inspector.field(upgradeBudgetField).asLong());
- osVersionTargets.add(new OsVersionTarget(osVersion, upgradeBudget));
+ // TODO(mpolden): Require after 2021-09-01
+ Instant scheduledAt = SlimeUtils.optionalInstant(inspector.field(scheduledAtField))
+ .orElse(Instant.EPOCH);
+ osVersionTargets.add(new OsVersionTarget(osVersion, upgradeBudget, scheduledAt));
});
return Collections.unmodifiableSet(osVersionTargets);
}
@@ -51,6 +57,7 @@ public class OsVersionTargetSerializer {
private void toSlime(OsVersionTarget target, Cursor object) {
osVersionSerializer.toSlime(target.osVersion(), object);
object.setLong(upgradeBudgetField, target.upgradeBudget().toMillis());
+ object.setLong(scheduledAtField, target.scheduledAt().toEpochMilli());
}
}