diff options
author | Harald Musum <musum@yahooinc.com> | 2023-06-16 12:46:37 +0200 |
---|---|---|
committer | Harald Musum <musum@yahooinc.com> | 2023-06-16 12:46:37 +0200 |
commit | e89ee09abf52b98a6b871065fa1215a15592a34a (patch) | |
tree | fcf8c69841438b745ba2182973ef4497565c97cd /service-monitor | |
parent | ae3e30955bd9031496d9ef466f1a68223184a376 (diff) |
Use ApplicationId instead of ApplicationInstanceReference where possible
Diffstat (limited to 'service-monitor')
5 files changed, 20 insertions, 17 deletions
diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/model/ApplicationInstanceGenerator.java b/service-monitor/src/main/java/com/yahoo/vespa/service/model/ApplicationInstanceGenerator.java index ac62ee4bdab..24677061334 100644 --- a/service-monitor/src/main/java/com/yahoo/vespa/service/model/ApplicationInstanceGenerator.java +++ b/service-monitor/src/main/java/com/yahoo/vespa/service/model/ApplicationInstanceGenerator.java @@ -28,7 +28,6 @@ import com.yahoo.vespa.service.monitor.ServiceStatusProvider; import java.util.HashMap; import java.util.HashSet; import java.util.Map; -import java.util.Objects; import java.util.Set; import java.util.function.Predicate; import java.util.stream.Collectors; @@ -61,18 +60,12 @@ public class ApplicationInstanceGenerator { return toApplicationInstanceReference(applicationInfo.getApplicationId(), zone); } - static ApplicationInstanceReference toApplicationInstanceReference(ApplicationId applicationId, Zone zone) { + public static ApplicationInstanceReference toApplicationInstanceReference(ApplicationId applicationId, Zone zone) { TenantId tenantId = new TenantId(applicationId.tenant().toString()); ApplicationInstanceId applicationInstanceId = toApplicationInstanceId(applicationId, zone); return new ApplicationInstanceReference(tenantId, applicationInstanceId); } - public boolean containsHostname(HostName hostname) { - return applicationInfo.getModel().getHosts().stream() - .map(HostInfo::getHostname) - .anyMatch(hostnameString -> Objects.equals(hostnameString, hostname.s())); - } - public ApplicationInstance makeApplicationInstanceLimitedTo( HostName hostname, ServiceStatusProvider serviceStatusProvider) { return makeApplicationInstanceLimitedToHosts( 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 043e4a186d3..3acd4cd1102 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 @@ -41,7 +41,7 @@ public class ModelGenerator { .makeApplicationInstance(serviceStatusProvider)) .collect(Collectors.toMap(ApplicationInstance::reference, Function.identity())); - return new ServiceModel(applicationInstances); + return new ServiceModel(applicationInstances, zone); } public Set<ApplicationInstanceReference> toApplicationInstanceReferenceSet(List<ApplicationInfo> infos) { 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 53db7cc135c..c4a3123db57 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 @@ -81,8 +81,8 @@ public class ServiceMonitorImpl implements ServiceMonitor, AntiServiceMonitor { } @Override - public Optional<ApplicationInstance> getApplication(ApplicationInstanceReference reference) { - return getApplicationInfo(reference) + public Optional<ApplicationInstance> getApplication(ApplicationId applicationId) { + return getApplicationInfo(applicationId) .map(applicationInfo -> modelGenerator.toApplicationInstance(applicationInfo, serviceStatusProvider)); } @@ -108,8 +108,7 @@ public class ServiceMonitorImpl implements ServiceMonitor, AntiServiceMonitor { return duperModelManager.disallowDuperModelLockAcquisition(regionDescription); } - private Optional<ApplicationInfo> getApplicationInfo(ApplicationInstanceReference reference) { - ApplicationId applicationId = ApplicationInstanceGenerator.toApplicationId(reference); + private Optional<ApplicationInfo> getApplicationInfo(ApplicationId applicationId) { return duperModelManager.getApplicationInfo(applicationId); } diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceModel.java b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceModel.java index 6079c76519f..8e3bee7bc7e 100644 --- a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceModel.java +++ b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceModel.java @@ -2,6 +2,8 @@ package com.yahoo.vespa.service.monitor; import com.yahoo.config.model.api.ApplicationInfo; +import com.yahoo.config.provision.ApplicationId; +import com.yahoo.config.provision.Zone; import com.yahoo.vespa.applicationmodel.ApplicationInstance; import com.yahoo.vespa.applicationmodel.ApplicationInstanceReference; import com.yahoo.vespa.applicationmodel.HostName; @@ -16,6 +18,8 @@ import java.util.List; import java.util.Map; import java.util.Optional; +import static com.yahoo.vespa.service.model.ApplicationInstanceGenerator.toApplicationInstanceReference; + /** * The service model is the union of the duper model and the service monitor, and presented * as classes from the {@code application-model} module. @@ -31,12 +35,14 @@ import java.util.Optional; public class ServiceModel { private final Map<ApplicationInstanceReference, ApplicationInstance> applicationsByReference; + private final Zone zone; private Map<HostName, ApplicationInstance> applicationsByHostName = null; private Map<HostName, List<ServiceInstance>> servicesByHostName = null; - public ServiceModel(Map<ApplicationInstanceReference, ApplicationInstance> applicationsByReference) { - this.applicationsByReference = Collections.unmodifiableMap(Map.copyOf(applicationsByReference)); + public ServiceModel(Map<ApplicationInstanceReference, ApplicationInstance> applicationsByReference, Zone zone) { + this.applicationsByReference = Map.copyOf(applicationsByReference); + this.zone = zone; } public Map<ApplicationInstanceReference, ApplicationInstance> getAllApplicationInstances() { @@ -47,6 +53,10 @@ public class ServiceModel { return Optional.ofNullable(applicationsByReference.get(reference)); } + public Optional<ApplicationInstance> getApplicationInstance(ApplicationId applicationId) { + return Optional.ofNullable(applicationsByReference.get(toApplicationInstanceReference(applicationId, zone))); + } + public Optional<ApplicationInstance> getApplication(HostName hostname) { if (applicationsByHostName == null) { fillMaps(); 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 b3f77b3ef7b..570e0948499 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 @@ -1,6 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.service.monitor; +import com.yahoo.config.provision.ApplicationId; import com.yahoo.vespa.applicationmodel.ApplicationInstance; import com.yahoo.vespa.applicationmodel.ApplicationInstanceReference; import com.yahoo.vespa.applicationmodel.HostName; @@ -36,8 +37,8 @@ public interface ServiceMonitor { return getServiceModelSnapshot().getApplication(hostname); } - default Optional<ApplicationInstance> getApplication(ApplicationInstanceReference reference) { - return getServiceModelSnapshot().getApplicationInstance(reference); + default Optional<ApplicationInstance> getApplication(ApplicationId applicationId) { + return getServiceModelSnapshot().getApplicationInstance(applicationId); } default Optional<ApplicationInstance> getApplicationNarrowedTo(HostName hostname) { |