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 /service-monitor | |
parent | 7d515c403035aeef430507acb6a166b6cfdba9ee (diff) |
Only build part of application instance for host resource
Diffstat (limited to 'service-monitor')
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() { |