diff options
author | Jon Marius Venstad <jonmv@users.noreply.github.com> | 2019-12-13 11:26:33 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-12-13 11:26:33 +0100 |
commit | 49d070d9b6ff69711ab8f669f5d12548a50f0d35 (patch) | |
tree | 1608920ed5cb51a1a78a7483a57440f8dc1f240b | |
parent | b0098c4d582e071dae1957d38ce4dc2b915e5184 (diff) | |
parent | fd72be5dde13ba093fdcb71fde2997a861f9b26b (diff) |
Merge pull request #11560 from vespa-engine/jvenstad/deplorch-cleanup-1
Jvenstad/deplorch cleanup 1
6 files changed, 24 insertions, 12 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/VespaVersion.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/VespaVersion.java index 4ab485a4004..bc6fd093e2f 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/VespaVersion.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/VespaVersion.java @@ -157,8 +157,10 @@ public class VespaVersion implements Comparable<VespaVersion> { if (!target.equalOrHigherThan(normal)) return true; // Confidence can always change to < normal var hourOfDay = instant.atZone(ZoneOffset.UTC).getHour(); - // Confidence can only be raised between 05:00:00 and 11:59:59 UTC - return hourOfDay >= 5 && hourOfDay <= 11; + var dayOfWeek = instant.atZone(ZoneOffset.UTC).getDayOfWeek(); + // Confidence can only be raised between 05:00:00 and 11:59:59 UTC, and not during weekends or Friday. + return hourOfDay >= 5 && hourOfDay <= 11 + && dayOfWeek.getValue() < 5; } } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTester.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTester.java index af58f8e825e..038a2afb306 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTester.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTester.java @@ -26,10 +26,13 @@ import com.yahoo.vespa.hosted.controller.maintenance.OutstandingChangeDeployer; import com.yahoo.vespa.hosted.controller.maintenance.ReadyJobsTrigger; import com.yahoo.vespa.hosted.controller.maintenance.Upgrader; +import java.time.DayOfWeek; import java.time.Duration; import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneOffset; +import java.time.ZonedDateTime; +import java.time.temporal.TemporalAdjusters; import java.util.Collections; import java.util.logging.Logger; @@ -116,11 +119,11 @@ public class DeploymentTester { return nameServiceDispatcher; } - public DeploymentTester atHourOfDay(int hour) { - var dateTime = tester.clock().instant().atZone(ZoneOffset.UTC); - return at(LocalDateTime.of(dateTime.getYear(), dateTime.getMonth(), dateTime.getDayOfMonth(), hour, - dateTime.getMinute(), dateTime.getSecond()) - .toInstant(ZoneOffset.UTC)); + public DeploymentTester atMondayMorning() { + return at(tester.clock().instant().atZone(ZoneOffset.UTC) + .with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY)) + .withHour(5) + .toInstant()); } public DeploymentTester at(Instant instant) { diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java index cfd4610c7b2..c4a3a34a4f6 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java @@ -35,7 +35,7 @@ import static org.junit.Assert.assertTrue; */ public class UpgraderTest { - private final DeploymentTester tester = new DeploymentTester().atHourOfDay(5); + private final DeploymentTester tester = new DeploymentTester().atMondayMorning(); @Test public void testUpgrading() { diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/versions/VersionStatusTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/versions/VersionStatusTest.java index ae81b83ccf0..eb23ccee326 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/versions/VersionStatusTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/versions/VersionStatusTest.java @@ -177,7 +177,7 @@ public class VersionStatusTest { @Test public void testVersionConfidence() { - DeploymentTester tester = new DeploymentTester().atHourOfDay(5); + DeploymentTester tester = new DeploymentTester().atMondayMorning(); Version version0 = new Version("6.2"); tester.controllerTester().upgradeSystem(version0); tester.upgrader().maintain(); @@ -420,7 +420,7 @@ public class VersionStatusTest { @Test public void testConfidenceChangeRespectsTimeWindow() { - DeploymentTester tester = new DeploymentTester().atHourOfDay(5); + DeploymentTester tester = new DeploymentTester().atMondayMorning(); // Canaries and normal application deploys on initial version Version version0 = Version.fromString("7.1"); tester.controllerTester().upgradeSystem(version0); diff --git a/tenant-cd/src/main/java/ai/vespa/hosted/cd/metric/Metric.java b/tenant-cd/src/main/java/ai/vespa/hosted/cd/metric/Metric.java index cb3c8e77a9a..cc9d5d82b2c 100644 --- a/tenant-cd/src/main/java/ai/vespa/hosted/cd/metric/Metric.java +++ b/tenant-cd/src/main/java/ai/vespa/hosted/cd/metric/Metric.java @@ -7,6 +7,7 @@ import java.util.Set; import java.util.StringJoiner; import static java.util.Map.copyOf; +import static java.util.stream.Collectors.reducing; import static java.util.stream.Collectors.toUnmodifiableMap; /** @@ -58,7 +59,8 @@ public class Metric { /** Returns a collapsed version of this, with all statistics aggregated. This does not preserve last, 95 and 99 percentile values. */ public Metric collapse() { - return collapse(statistics.keySet().iterator().next().keySet()); + Map<String, ?> firstStatistic = statistics.keySet().iterator().next(); + return firstStatistic == null ? this : collapse(firstStatistic.keySet()); } /** If this Metric contains a single point, returns the Statistic of that point; otherwise, throws an exception. */ diff --git a/tenant-cd/src/main/java/ai/vespa/hosted/cd/metric/Statistic.java b/tenant-cd/src/main/java/ai/vespa/hosted/cd/metric/Statistic.java index fc52900bdac..f1cb89641b3 100644 --- a/tenant-cd/src/main/java/ai/vespa/hosted/cd/metric/Statistic.java +++ b/tenant-cd/src/main/java/ai/vespa/hosted/cd/metric/Statistic.java @@ -1,6 +1,7 @@ package ai.vespa.hosted.cd.metric; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.NoSuchElementException; import java.util.StringJoiner; @@ -22,6 +23,10 @@ public class Statistic { } public static Statistic of(Map<Type, Double> data) { + for (Type type : List.of(Type.count, Type.rate, Type.average)) + if ( ! data.containsKey(type)) + throw new IllegalArgumentException("Required data type '" + type + "' not present in '" + data + "'"); + return new Statistic(copyOf(data)); } @@ -40,7 +45,7 @@ public class Statistic { Statistic mergedWith(Statistic other) { if (data.keySet().equals(other.data.keySet())) - throw new IllegalArgumentException("Incompatible key sets '" + data.keySet() + "' and '" + other.data.keySet() + "'."); + throw new IllegalArgumentException("Unequal key sets '" + data.keySet() + "' and '" + other.data.keySet() + "'."); Map<Type, Double> merged = new HashMap<>(); double n1 = get(Type.count), n2 = other.get(Type.count); |