diff options
author | Martin Polden <mpolden@mpolden.no> | 2019-08-29 11:17:52 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2019-08-29 11:17:52 +0200 |
commit | 7034e5befdc9ac15cba2149b19ae7176058705ea (patch) | |
tree | e84a414889d62e5605eb80fa65805a9b193d6c49 | |
parent | 79d2330dc2348437e269d833025911ebf54b0f21 (diff) |
Always use constant for empty status
5 files changed, 11 insertions, 7 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/RotationStatusUpdater.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/RotationStatusUpdater.java index 0bb98d7837c..ab818a675b0 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/RotationStatusUpdater.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/RotationStatusUpdater.java @@ -82,7 +82,7 @@ public class RotationStatusUpdater extends Maintainer { .collect(Collectors.toMap(Map.Entry::getKey, (kv) -> from(kv.getValue()))); statusMap.put(assignedRotation.rotationId(), rotationStatus); } - return new RotationStatus(statusMap); + return RotationStatus.from(statusMap); } private static RotationState from(com.yahoo.vespa.hosted.controller.api.integration.routing.RotationStatus status) { 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 421805231a1..d2a27e0c76d 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 @@ -414,7 +414,7 @@ public class ApplicationSerializer { var statusMap = new LinkedHashMap<RotationId, Map<ZoneId, RotationState>>(); object.traverse((ArrayTraverser) (idx, statusObject) -> statusMap.put(new RotationId(statusObject.field(rotationIdField).asString()), singleRotationStatusFromSlime(statusObject.field(statusField)))); - return new RotationStatus(statusMap); + return RotationStatus.from(statusMap); } private Map<ZoneId, RotationState> singleRotationStatusFromSlime(Inspector object) { diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/rotation/RotationStatus.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/rotation/RotationStatus.java index 45ba83712a3..087d07d9c1b 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/rotation/RotationStatus.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/rotation/RotationStatus.java @@ -18,7 +18,7 @@ public class RotationStatus { private final Map<RotationId, Map<ZoneId, RotationState>> status; - public RotationStatus(Map<RotationId, Map<ZoneId, RotationState>> status) { + private RotationStatus(Map<RotationId, Map<ZoneId, RotationState>> status) { this.status = Map.copyOf(Objects.requireNonNull(status)); } @@ -58,4 +58,8 @@ public class RotationStatus { return Objects.hash(status); } + public static RotationStatus from(Map<RotationId, Map<ZoneId, RotationState>> status) { + return status.isEmpty() ? EMPTY : new RotationStatus(status); + } + } 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 353511a017d..d0e18be270a 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 @@ -100,9 +100,9 @@ public class ApplicationSerializerTest { DeploymentJobs deploymentJobs = new DeploymentJobs(projectId, statusList, empty(), true); - var rotationStatus = new RotationStatus(Map.of(new RotationId("my-rotation"), - Map.of(ZoneId.from("prod", "us-west-1"), RotationState.in, - ZoneId.from("prod", "us-east-3"), RotationState.out))); + var rotationStatus = RotationStatus.from(Map.of(new RotationId("my-rotation"), + Map.of(ZoneId.from("prod", "us-west-1"), RotationState.in, + ZoneId.from("prod", "us-east-3"), RotationState.out))); Application original = new Application(ApplicationId.from("t1", "a1", "i1"), Instant.now().truncatedTo(ChronoUnit.MILLIS), diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java index 363522700d1..07c68d738c0 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java @@ -1742,7 +1742,7 @@ public class ApplicationApiTest extends ControllerContainerTest { var rotationStatus = controllerTester.controller().globalRoutingService().getHealthStatus(rotation.name()); var statusMap = new LinkedHashMap<ZoneId, RotationState>(); rotationStatus.forEach((zone, status) -> statusMap.put(zone, RotationState.in)); - return new RotationStatus(Map.of(rotation.id(), statusMap)); + return RotationStatus.from(Map.of(rotation.id(), statusMap)); }) .orElse(RotationStatus.EMPTY); } |