diff options
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.java | 9 |
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()); } } |