aboutsummaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2019-08-21 11:40:31 +0200
committerMartin Polden <mpolden@mpolden.no>2019-08-22 12:43:02 +0200
commitc6a86853808d5b350c02c71486e164b4c1cf0b63 (patch)
treed50a8166348fc63097aa88674d9a69d972a68095 /controller-server
parentd4381443417cd250c9037de5130eaa4dd0045929 (diff)
Remove unnecessary getter
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Application.java14
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java17
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedApplication.java2
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java2
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java9
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/rotation/RotationRepository.java31
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java6
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java12
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/rotation/RotationRepositoryTest.java13
9 files changed, 51 insertions, 55 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Application.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Application.java
index bc35b109a76..d5547130438 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Application.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Application.java
@@ -10,9 +10,9 @@ import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.SystemName;
import com.yahoo.config.provision.zone.ZoneId;
-import com.yahoo.vespa.hosted.controller.api.integration.metrics.MetricsService.ApplicationMetrics;
import com.yahoo.vespa.hosted.controller.api.integration.certificates.ApplicationCertificate;
import com.yahoo.vespa.hosted.controller.api.integration.deployment.ApplicationVersion;
+import com.yahoo.vespa.hosted.controller.api.integration.metrics.MetricsService.ApplicationMetrics;
import com.yahoo.vespa.hosted.controller.api.integration.organization.IssueId;
import com.yahoo.vespa.hosted.controller.api.integration.organization.User;
import com.yahoo.vespa.hosted.controller.application.ApplicationActivity;
@@ -23,7 +23,6 @@ import com.yahoo.vespa.hosted.controller.application.DeploymentJobs;
import com.yahoo.vespa.hosted.controller.application.EndpointId;
import com.yahoo.vespa.hosted.controller.application.EndpointList;
import com.yahoo.vespa.hosted.controller.application.RotationStatus;
-import com.yahoo.vespa.hosted.controller.rotation.RotationId;
import java.time.Instant;
import java.util.Collections;
@@ -200,15 +199,8 @@ public class Application {
.min(Comparator.naturalOrder());
}
- /** Returns all rotations for this application */
- public List<RotationId> rotations() {
- return rotations.stream()
- .map(AssignedRotation::rotationId)
- .collect(Collectors.toList());
- }
-
- /** Returns all assigned rotations for this application */
- public List<AssignedRotation> assignedRotations() {
+ /** Returns all rotations assigned to this */
+ public List<AssignedRotation> rotations() {
return rotations;
}
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 9b9c96ee98f..f9315812123 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
@@ -346,9 +346,9 @@ public class ApplicationController {
// Include global DNS names
Application app = application.get();
- app.assignedRotations().stream()
- .filter(assignedRotation -> assignedRotation.regions().contains(zone.region()))
- .map(assignedRotation -> {
+ app.rotations().stream()
+ .filter(assignedRotation -> assignedRotation.regions().contains(zone.region()))
+ .map(assignedRotation -> {
return new ContainerEndpoint(
assignedRotation.clusterId().value(),
Stream.concat(
@@ -357,14 +357,17 @@ public class ApplicationController {
).collect(Collectors.toList())
);
})
- .forEach(endpoints::add);
+ .forEach(endpoints::add);
} else {
application = withRotationLegacy(application, zone);
// Add both the names we have in DNS for each endpoint as well as name of the rotation so healthchecks works
Application app = application.get();
app.endpointsIn(controller.system()).asList().stream().map(Endpoint::dnsName).forEach(legacyRotations::add);
- app.rotations().stream().map(RotationId::asString).forEach(legacyRotations::add);
+ app.rotations().stream()
+ .map(AssignedRotation::rotationId)
+ .map(RotationId::asString)
+ .forEach(legacyRotations::add);
}
// Get application certificate (provisions a new certificate if missing)
@@ -525,7 +528,7 @@ public class ApplicationController {
}
private void registerAssignedRotationCnames(Application application) {
- application.assignedRotations().forEach(assignedRotation -> {
+ application.rotations().forEach(assignedRotation -> {
var endpoints = application.endpointsIn(controller.system(), assignedRotation.endpointId())
.scope(Endpoint.Scope.global);
var maybeRotation = rotationRepository.getRotation(assignedRotation.rotationId());
@@ -693,7 +696,7 @@ public class ApplicationController {
applicationStore.removeAll(id);
applicationStore.removeAll(TesterId.of(id));
- application.get().assignedRotations().forEach(assignedRotation -> {
+ application.get().rotations().forEach(assignedRotation -> {
var endpoints = application.get().endpointsIn(controller.system(), assignedRotation.endpointId());
endpoints.asList().stream()
.map(Endpoint::dnsName)
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedApplication.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedApplication.java
index c7607a7a422..e8cb6621c13 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedApplication.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedApplication.java
@@ -73,7 +73,7 @@ public class LockedApplication {
application.deployments(),
application.deploymentJobs(), application.change(), application.outstandingChange(),
application.ownershipIssueId(), application.owner(), application.majorVersion(), application.metrics(),
- application.pemDeployKey(), application.assignedRotations(), application.rotationStatus(), application.applicationCertificate());
+ application.pemDeployKey(), application.rotations(), application.rotationStatus(), application.applicationCertificate());
}
private LockedApplication(Lock lock, ApplicationId id, Instant createdAt,
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 db959548862..a4b7da2cd50 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
@@ -176,7 +176,7 @@ public class ApplicationSerializer {
root.setDouble(queryQualityField, application.metrics().queryServiceQuality());
root.setDouble(writeQualityField, application.metrics().writeServiceQuality());
application.pemDeployKey().ifPresent(pemDeployKey -> root.setString(pemDeployKeyField, pemDeployKey));
- assignedRotationsToSlime(application.assignedRotations(), root, assignedRotationsField);
+ assignedRotationsToSlime(application.rotations(), root, assignedRotationsField);
toSlime(application.rotationStatus(), root.setArray(rotationStatusField));
application.applicationCertificate().ifPresent(cert -> root.setString(applicationCertificateField, cert.secretsKeyNamePrefix()));
return slime;
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
index 409a93a8f2d..f29ed8a49f0 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
@@ -50,6 +50,7 @@ import com.yahoo.vespa.hosted.controller.api.integration.resource.ResourceAlloca
import com.yahoo.vespa.hosted.controller.api.integration.resource.ResourceSnapshot;
import com.yahoo.vespa.hosted.controller.api.integration.routing.RoutingEndpoint;
import com.yahoo.vespa.hosted.controller.application.ApplicationPackage;
+import com.yahoo.vespa.hosted.controller.application.AssignedRotation;
import com.yahoo.vespa.hosted.controller.application.Change;
import com.yahoo.vespa.hosted.controller.application.ClusterCost;
import com.yahoo.vespa.hosted.controller.application.ClusterUtilization;
@@ -527,8 +528,10 @@ public class ApplicationApiHandler extends LoggingRequestHandler {
.map(URI::toString)
.forEach(globalRotationsArray::addString);
-
- application.rotations().stream().findFirst().ifPresent(rotation -> object.setString("rotationId", rotation.asString()));
+ application.rotations().stream()
+ .map(AssignedRotation::rotationId)
+ .findFirst()
+ .ifPresent(rotation -> object.setString("rotationId", rotation.asString()));
// Per-cluster rotations
Set<RoutingPolicy> routingPolicies = controller.applications().routingPolicies().get(application.id());
@@ -547,7 +550,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler {
for (Deployment deployment : deployments) {
Cursor deploymentObject = instancesArray.addObject();
- if ((! application.rotations().isEmpty()) && deployment.zone().environment() == Environment.prod) {
+ if (!application.rotations().isEmpty() && deployment.zone().environment() == Environment.prod) {
toSlime(application.rotationStatus(deployment), deploymentObject);
}
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/rotation/RotationRepository.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/rotation/RotationRepository.java
index f2bc50ec445..75044328d5f 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/rotation/RotationRepository.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/rotation/RotationRepository.java
@@ -1,9 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.controller.rotation;
-import com.yahoo.collections.Pair;
import com.yahoo.config.application.api.Endpoint;
-import com.yahoo.config.model.api.ContainerEndpoint;
import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.RegionName;
@@ -20,7 +18,6 @@ import java.util.Comparator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.function.Function;
@@ -59,7 +56,10 @@ public class RotationRepository {
/** Get rotation for given application */
public Optional<Rotation> getRotation(Application application) {
- return application.rotations().stream().map(allRotations::get).findFirst();
+ return application.rotations().stream()
+ .map(AssignedRotation::rotationId)
+ .map(allRotations::get)
+ .findFirst();
}
/** Get rotation for the given rotationId */
@@ -78,7 +78,7 @@ public class RotationRepository {
*/
public Rotation getOrAssignRotation(Application application, RotationLock lock) {
if (! application.rotations().isEmpty()) {
- return allRotations.get(application.rotations().get(0));
+ return allRotations.get(application.rotations().get(0).rotationId());
}
if (application.deploymentSpec().globalServiceId().isEmpty()) {
throw new IllegalArgumentException("global-service-id is not set in deployment spec");
@@ -191,15 +191,17 @@ public class RotationRepository {
);
};
- return application.assignedRotations().stream()
- .collect(
- Collectors.toMap(
- AssignedRotation::endpointId,
- assignedRotationWithConfiguredRegions,
- (a, b) -> { throw new IllegalStateException("Duplicate entries: " + a + ", " + b); },
- LinkedHashMap::new
- )
- );
+ return application.rotations().stream()
+ .collect(
+ Collectors.toMap(
+ AssignedRotation::endpointId,
+ assignedRotationWithConfiguredRegions,
+ (a, b) -> {
+ throw new IllegalStateException("Duplicate entries: " + a + ", " + b);
+ },
+ LinkedHashMap::new
+ )
+ );
}
/**
@@ -210,6 +212,7 @@ public class RotationRepository {
List<RotationId> assignedRotations = applications.asList().stream()
.filter(application -> ! application.rotations().isEmpty())
.flatMap(application -> application.rotations().stream())
+ .map(AssignedRotation::rotationId)
.collect(Collectors.toList());
Map<RotationId, Rotation> unassignedRotations = new LinkedHashMap<>(this.allRotations);
assignedRotations.forEach(unassignedRotations::remove);
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java
index 998589dc23c..a8e51f7622a 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java
@@ -452,7 +452,7 @@ public class ControllerTest {
tester.configServer().rotationNames().get(new DeploymentId(application.id(), ZoneId.from("prod", "us-central-1")))
);
- assertEquals(Set.of(RegionName.from("us-west-1")), tester.application(application.id()).assignedRotations().get(0).regions());
+ assertEquals(Set.of(RegionName.from("us-west-1")), tester.application(application.id()).rotations().get(0).regions());
}
@Test
@@ -481,7 +481,7 @@ public class ControllerTest {
assertEquals(
List.of(AssignedRotation.fromStrings("qrs", "default", "rotation-id-01", Set.of())),
- tester.application(application.id()).assignedRotations()
+ tester.application(application.id()).rotations()
);
assertEquals(
@@ -570,7 +570,7 @@ public class ControllerTest {
.build();
tester.deployCompletely(app1, applicationPackage);
app1 = tester.applications().require(app1.id());
- assertEquals("rotation-id-02", app1.rotations().get(0).asString());
+ assertEquals("rotation-id-02", app1.rotations().get(0).rotationId().asString());
// DNS records are created for the newly assigned rotation
assertEquals(2, tester.controllerTester().nameService().records().size());
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 ac7dba2b110..85c87ec5fe2 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
@@ -274,21 +274,11 @@ public class ApplicationSerializerTest {
// Parse and test the output from parsing contains both legacy rotation and multiple rotations
final var application = applicationSerializer.fromSlime(slime);
-
- assertEquals(
- List.of(
- new RotationId("assigned-rotation")
- ),
- application.rotations()
- );
-
- assertEquals(new RotationId("assigned-rotation"), application.rotations().get(0));
-
assertEquals(
List.of(
new AssignedRotation(new ClusterSpec.Id("foobar"), EndpointId.of("nice-endpoint"), new RotationId("assigned-rotation"), Set.of())
),
- application.assignedRotations()
+ application.rotations()
);
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/rotation/RotationRepositoryTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/rotation/RotationRepositoryTest.java
index 8f02fa74c6e..4e93922784e 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/rotation/RotationRepositoryTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/rotation/RotationRepositoryTest.java
@@ -5,6 +5,7 @@ import com.yahoo.config.provision.SystemName;
import com.yahoo.vespa.hosted.controller.Application;
import com.yahoo.vespa.hosted.controller.ControllerTester;
import com.yahoo.vespa.hosted.controller.application.ApplicationPackage;
+import com.yahoo.vespa.hosted.controller.application.AssignedRotation;
import com.yahoo.vespa.hosted.controller.deployment.ApplicationPackageBuilder;
import com.yahoo.vespa.hosted.controller.deployment.DeploymentTester;
import com.yahoo.vespa.hosted.rotation.config.RotationsConfig;
@@ -15,6 +16,7 @@ import org.junit.rules.ExpectedException;
import java.net.URI;
import java.util.List;
+import java.util.stream.Collectors;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -64,7 +66,7 @@ public class RotationRepositoryTest {
Rotation expected = new Rotation(new RotationId("foo-1"), "foo-1.com");
application = tester.applications().require(application.id());
- assertEquals(List.of(expected.id()), application.rotations());
+ assertEquals(List.of(expected.id()), rotationIds(application.rotations()));
assertEquals(URI.create("https://app1--tenant1.global.vespa.oath.cloud:4443/"),
application.endpointsIn(SystemName.main).main().get().url());
try (RotationLock lock = repository.lock()) {
@@ -80,7 +82,7 @@ public class RotationRepositoryTest {
.searchDefinition("search foo { }") // Update application package so there is something to deploy
.build();
tester.deployCompletely(application, applicationPackage, 43);
- assertEquals(List.of(expected.id()), tester.applications().require(application.id()).rotations());
+ assertEquals(List.of(expected.id()), rotationIds(tester.applications().require(application.id()).rotations()));
}
@Test
@@ -99,7 +101,6 @@ public class RotationRepositoryTest {
}
}
-
@Test
public void out_of_rotations() {
// Assigns 1 rotation
@@ -152,9 +153,13 @@ public class RotationRepositoryTest {
Application application = tester.createApplication("app2", "tenant2", 22L,
2L);
tester.deployCompletely(application, applicationPackage);
- assertEquals(List.of(new RotationId("foo-1")), tester.applications().require(application.id()).rotations());
+ assertEquals(List.of(new RotationId("foo-1")), rotationIds(tester.applications().require(application.id()).rotations()));
assertEquals("https://cd--app2--tenant2.global.vespa.oath.cloud:4443/", tester.applications().require(application.id())
.endpointsIn(SystemName.cd).main().get().url().toString());
}
+ private static List<RotationId> rotationIds(List<AssignedRotation> assignedRotations) {
+ return assignedRotations.stream().map(AssignedRotation::rotationId).collect(Collectors.toUnmodifiableList());
+ }
+
}