diff options
author | Håkon Hallingstad <hakon@verizonmedia.com> | 2020-02-28 23:34:16 +0100 |
---|---|---|
committer | Håkon Hallingstad <hakon@verizonmedia.com> | 2020-02-28 23:34:16 +0100 |
commit | 159a116ae750968719de8a63052431ea0de11a31 (patch) | |
tree | 03cb3b040d1c8fe3693ef522599f90c1fd1f989e /orchestrator | |
parent | 7d515c403035aeef430507acb6a166b6cfdba9ee (diff) |
Only build part of application instance for host resource
Diffstat (limited to 'orchestrator')
5 files changed, 16 insertions, 20 deletions
diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/InstanceLookupService.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/InstanceLookupService.java index acf3fe7f9b2..2978b091548 100644 --- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/InstanceLookupService.java +++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/InstanceLookupService.java @@ -4,9 +4,7 @@ package com.yahoo.vespa.orchestrator; import com.yahoo.vespa.applicationmodel.ApplicationInstance; import com.yahoo.vespa.applicationmodel.ApplicationInstanceReference; import com.yahoo.vespa.applicationmodel.HostName; -import com.yahoo.vespa.applicationmodel.ServiceInstance; -import java.util.List; import java.util.Optional; import java.util.Set; @@ -18,5 +16,10 @@ public interface InstanceLookupService { Optional<ApplicationInstance> findInstanceById(ApplicationInstanceReference applicationInstanceReference); Optional<ApplicationInstance> findInstanceByHost(HostName hostName); Set<ApplicationInstanceReference> knownInstances(); - List<ServiceInstance> findServicesOnHost(HostName hostName); + + /** + * Returns an application instance that may not contain more services and clusters than + * those related to the host. + */ + Optional<ApplicationInstance> findInstancePossiblyNarrowedToHost(HostName hostname); } diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/OrchestratorImpl.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/OrchestratorImpl.java index 6639a3032dc..d9d41cdaecc 100644 --- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/OrchestratorImpl.java +++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/OrchestratorImpl.java @@ -105,8 +105,10 @@ public class OrchestratorImpl implements Orchestrator { @Override public Host getHost(HostName hostName) throws HostNameNotFoundException { - ApplicationInstance applicationInstance = getApplicationInstance(hostName); - instanceLookupService.findServicesOnHost(hostName); + ApplicationInstance applicationInstance = instanceLookupService + .findInstancePossiblyNarrowedToHost(hostName) + .orElseThrow(() -> new HostNameNotFoundException(hostName)); + List<ServiceInstance> serviceInstances = applicationInstance .serviceClusters().stream() .flatMap(cluster -> cluster.serviceInstances().stream()) @@ -114,7 +116,6 @@ public class OrchestratorImpl implements Orchestrator { .collect(Collectors.toList()); HostInfo hostInfo = statusService.getHostInfo(applicationInstance.reference(), hostName); - HostStatus hostStatus = getNodeStatus(applicationInstance.reference(), hostName); return new Host(hostName, hostInfo, applicationInstance.reference(), serviceInstances); } diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/ServiceMonitorInstanceLookupService.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/ServiceMonitorInstanceLookupService.java index 30f5233d0c6..d7a630707b8 100644 --- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/ServiceMonitorInstanceLookupService.java +++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/ServiceMonitorInstanceLookupService.java @@ -5,10 +5,8 @@ import com.google.inject.Inject; import com.yahoo.vespa.applicationmodel.ApplicationInstance; import com.yahoo.vespa.applicationmodel.ApplicationInstanceReference; import com.yahoo.vespa.applicationmodel.HostName; -import com.yahoo.vespa.applicationmodel.ServiceInstance; import com.yahoo.vespa.service.monitor.ServiceMonitor; -import java.util.List; import java.util.Optional; import java.util.Set; @@ -42,7 +40,7 @@ public class ServiceMonitorInstanceLookupService implements InstanceLookupServic } @Override - public List<ServiceInstance> findServicesOnHost(HostName hostName) { - return serviceMonitor.getServiceInstancesOn(hostName); + public Optional<ApplicationInstance> findInstancePossiblyNarrowedToHost(HostName hostname) { + return serviceMonitor.getApplicationNarrowedTo(hostname); } } diff --git a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/DummyInstanceLookupService.java b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/DummyInstanceLookupService.java index 07acc0dad81..7a62a29dff2 100644 --- a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/DummyInstanceLookupService.java +++ b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/DummyInstanceLookupService.java @@ -17,7 +17,6 @@ import com.yahoo.vespa.orchestrator.model.NodeGroup; import com.yahoo.vespa.orchestrator.model.VespaModelUtil; import java.util.HashSet; -import java.util.List; import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; @@ -156,13 +155,8 @@ public class DummyInstanceLookupService implements InstanceLookupService { } @Override - public List<ServiceInstance> findServicesOnHost(HostName hostName) { - return apps.stream() - .flatMap(application -> application.serviceClusters().stream()) - .flatMap(cluster -> cluster.serviceInstances().stream()) - .filter(service -> service.hostName().equals(hostName)) - .sorted() - .collect(Collectors.toList()); + public Optional<ApplicationInstance> findInstancePossiblyNarrowedToHost(HostName hostname) { + return findInstanceByHost(hostname); } public static Set<HostName> getContentHosts(ApplicationInstanceReference appRef) { diff --git a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/resources/HostResourceTest.java b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/resources/HostResourceTest.java index a84f99dff34..4a7be5f3ab6 100644 --- a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/resources/HostResourceTest.java +++ b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/resources/HostResourceTest.java @@ -112,8 +112,8 @@ public class HostResourceTest { } @Override - public List<ServiceInstance> findServicesOnHost(HostName hostName) { - return List.of(); + public Optional<ApplicationInstance> findInstancePossiblyNarrowedToHost(HostName hostname) { + return Optional.empty(); } }; |