summaryrefslogtreecommitdiffstats
path: root/orchestrator
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@verizonmedia.com>2020-02-28 23:34:16 +0100
committerHåkon Hallingstad <hakon@verizonmedia.com>2020-02-28 23:34:16 +0100
commit159a116ae750968719de8a63052431ea0de11a31 (patch)
tree03cb3b040d1c8fe3693ef522599f90c1fd1f989e /orchestrator
parent7d515c403035aeef430507acb6a166b6cfdba9ee (diff)
Only build part of application instance for host resource
Diffstat (limited to 'orchestrator')
-rw-r--r--orchestrator/src/main/java/com/yahoo/vespa/orchestrator/InstanceLookupService.java9
-rw-r--r--orchestrator/src/main/java/com/yahoo/vespa/orchestrator/OrchestratorImpl.java7
-rw-r--r--orchestrator/src/main/java/com/yahoo/vespa/orchestrator/ServiceMonitorInstanceLookupService.java6
-rw-r--r--orchestrator/src/test/java/com/yahoo/vespa/orchestrator/DummyInstanceLookupService.java10
-rw-r--r--orchestrator/src/test/java/com/yahoo/vespa/orchestrator/resources/HostResourceTest.java4
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();
}
};