diff options
author | Martin Polden <mpolden@mpolden.no> | 2021-11-10 10:31:48 +0100 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2021-11-10 10:44:16 +0100 |
commit | 4717f5350d7be01e0f4787388f6b27c66b198026 (patch) | |
tree | 63847b31957e401d1c8b9913bb857edc9a879d50 /controller-server | |
parent | c87418bae21a7736cf96e515c25b05c856e94825 (diff) |
Only consider declared instances
Diffstat (limited to 'controller-server')
-rw-r--r-- | controller-server/src/main/java/com/yahoo/vespa/hosted/controller/RoutingController.java | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/RoutingController.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/RoutingController.java index 6afee557029..2fa1de7bd8a 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/RoutingController.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/RoutingController.java @@ -49,7 +49,6 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.Optional; import java.util.Set; import java.util.TreeMap; import java.util.stream.Collectors; @@ -118,36 +117,35 @@ public class RoutingController { /** Returns endpoints declared in {@link DeploymentSpec} for given application */ public EndpointList declaredEndpointsOf(Application application) { Set<Endpoint> endpoints = new LinkedHashSet<>(); - for (var instance : application.instances().values()) { - DeploymentSpec deploymentSpec = application.deploymentSpec(); - Optional<DeploymentInstanceSpec> spec = application.deploymentSpec().instance(instance.name()); - if (spec.isEmpty()) return EndpointList.EMPTY; + DeploymentSpec deploymentSpec = application.deploymentSpec(); + for (var spec : deploymentSpec.instances()) { + ApplicationId instance = application.id().instance(spec.name()); // Add endpoint declared with legacy syntax - spec.get().globalServiceId().ifPresent(clusterId -> { - List<DeploymentId> deployments = spec.get().zones().stream() + spec.globalServiceId().ifPresent(clusterId -> { + List<DeploymentId> deployments = spec.zones().stream() .filter(zone -> zone.concerns(Environment.prod)) - .map(zone -> new DeploymentId(instance.id(), ZoneId.from(Environment.prod, zone.region().get()))) + .map(zone -> new DeploymentId(instance, ZoneId.from(Environment.prod, zone.region().get()))) .collect(Collectors.toList()); - RoutingId routingId = RoutingId.of(instance.id(), EndpointId.defaultId()); + RoutingId routingId = RoutingId.of(instance, EndpointId.defaultId()); endpoints.addAll(computeGlobalEndpoints(routingId, ClusterSpec.Id.from(clusterId), deployments, deploymentSpec)); }); // Add endpoints declared with current syntax - spec.get().endpoints().forEach(declaredEndpoint -> { - RoutingId routingId = RoutingId.of(instance.id(), EndpointId.of(declaredEndpoint.endpointId())); + spec.endpoints().forEach(declaredEndpoint -> { + RoutingId routingId = RoutingId.of(instance, EndpointId.of(declaredEndpoint.endpointId())); List<DeploymentId> deployments = declaredEndpoint.regions().stream() - .map(region -> new DeploymentId(instance.id(), + .map(region -> new DeploymentId(instance, ZoneId.from(Environment.prod, region))) .collect(Collectors.toList()); endpoints.addAll(computeGlobalEndpoints(routingId, ClusterSpec.Id.from(declaredEndpoint.containerId()), deployments, deploymentSpec)); }); } // Add application endpoints - for (var declaredEndpoint : application.deploymentSpec().endpoints()) { + for (var declaredEndpoint : deploymentSpec.endpoints()) { Map<DeploymentId, Integer> deployments = declaredEndpoint.targets().stream() .collect(Collectors.toMap(t -> new DeploymentId(application.id().instance(t.instance()), ZoneId.from(Environment.prod, t.region())), t -> t.weight())); - List<RoutingMethod> availableRoutingMethods = routingMethodsOfAll(deployments.keySet(), application.deploymentSpec()); + List<RoutingMethod> availableRoutingMethods = routingMethodsOfAll(deployments.keySet(), deploymentSpec); for (var routingMethod : availableRoutingMethods) { endpoints.add(Endpoint.of(application.id()) .targetApplication(EndpointId.of(declaredEndpoint.endpointId()), |