summaryrefslogtreecommitdiffstats
path: root/service-monitor
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 /service-monitor
parent7d515c403035aeef430507acb6a166b6cfdba9ee (diff)
Only build part of application instance for host resource
Diffstat (limited to 'service-monitor')
-rw-r--r--service-monitor/src/main/java/com/yahoo/vespa/service/model/ModelGenerator.java20
-rw-r--r--service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceModelProvider.java7
-rw-r--r--service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceMonitorImpl.java4
-rw-r--r--service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceMonitor.java14
4 files changed, 12 insertions, 33 deletions
diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/model/ModelGenerator.java b/service-monitor/src/main/java/com/yahoo/vespa/service/model/ModelGenerator.java
index 86bb892b162..cce14c12195 100644
--- a/service-monitor/src/main/java/com/yahoo/vespa/service/model/ModelGenerator.java
+++ b/service-monitor/src/main/java/com/yahoo/vespa/service/model/ModelGenerator.java
@@ -6,7 +6,6 @@ import com.yahoo.config.provision.Zone;
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.ServiceModel;
import com.yahoo.vespa.service.monitor.ServiceStatusProvider;
@@ -55,21 +54,10 @@ public class ModelGenerator {
return generator.makeApplicationInstance(serviceStatusProvider);
}
- public List<ServiceInstance> toServices(ApplicationInfo applicationInfo,
- HostName hostname,
- ServiceStatusProvider serviceStatusProvider) {
+ public ApplicationInstance toApplicationNarrowedToHost(ApplicationInfo applicationInfo,
+ HostName hostname,
+ ServiceStatusProvider serviceStatusProvider) {
var generator = new ApplicationInstanceGenerator(applicationInfo, zone);
- ApplicationInstance applicationInstance = generator.makeApplicationInstanceLimitedTo(
- hostname, serviceStatusProvider);
-
- List<ServiceInstance> serviceInstances = applicationInstance.serviceClusters().stream()
- .flatMap(cluster -> cluster.serviceInstances().stream())
- .collect(Collectors.toList());
-
- if (serviceInstances.size() > 0) {
- return serviceInstances;
- }
-
- return List.of();
+ return generator.makeApplicationInstanceLimitedTo(hostname, serviceStatusProvider);
}
}
diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceModelProvider.java b/service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceModelProvider.java
index d3d7c151a9b..35c72ba03fb 100644
--- a/service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceModelProvider.java
+++ b/service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceModelProvider.java
@@ -72,14 +72,15 @@ public class ServiceModelProvider implements ServiceMonitor {
}
@Override
- public List<ServiceInstance> getServiceInstancesOn(HostName hostname) {
+ public Optional<ApplicationInstance> getApplicationNarrowedTo(HostName hostname) {
Optional<ApplicationInfo> applicationInfo =
duperModelManager.getApplicationInfo(toConfigProvisionHostName(hostname));
if (applicationInfo.isEmpty()) {
- return List.of();
+ return Optional.empty();
}
- return modelGenerator.toServices(applicationInfo.get(), hostname, serviceStatusProvider);
+ return Optional.of(modelGenerator.toApplicationNarrowedToHost(
+ applicationInfo.get(), hostname, serviceStatusProvider));
}
@Override
diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceMonitorImpl.java b/service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceMonitorImpl.java
index a37a52f775e..d3297d711ff 100644
--- a/service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceMonitorImpl.java
+++ b/service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceMonitorImpl.java
@@ -69,8 +69,8 @@ public class ServiceMonitorImpl implements ServiceMonitor {
}
@Override
- public List<ServiceInstance> getServiceInstancesOn(HostName hostname) {
- return delegate.getServiceInstancesOn(hostname);
+ public Optional<ApplicationInstance> getApplicationNarrowedTo(HostName hostname) {
+ return delegate.getApplicationNarrowedTo(hostname);
}
@Override
diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceMonitor.java b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceMonitor.java
index 8ad77213bc1..f3d02992cdc 100644
--- a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceMonitor.java
+++ b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceMonitor.java
@@ -10,7 +10,6 @@ import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
-import java.util.stream.Collectors;
/**
* The service monitor interface. A service monitor provides up to date information about the liveness status
@@ -39,17 +38,8 @@ public interface ServiceMonitor {
return getServiceModelSnapshot().getApplicationInstance(reference);
}
- default List<ServiceInstance> getServiceInstancesOn(HostName hostname) {
- ApplicationInstance application = getServiceModelSnapshot().getApplicationsByHostName().get(hostname);
- if (application == null) {
- return List.of();
- }
-
- return application
- .serviceClusters().stream()
- .flatMap(cluster -> cluster.serviceInstances().stream())
- .filter(serviceInstance -> hostname.equals(serviceInstance.hostName()))
- .collect(Collectors.toList());
+ default Optional<ApplicationInstance> getApplicationNarrowedTo(HostName hostname) {
+ return Optional.ofNullable(getServiceModelSnapshot().getApplicationsByHostName().get(hostname));
}
default Map<HostName, List<ServiceInstance>> getServicesByHostname() {