diff options
author | Harald Musum <musum@verizonmedia.com> | 2023-06-19 11:14:31 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-19 11:14:31 +0200 |
commit | 4a51e5bf69bd6b2263070f61c66ddb695bbae9aa (patch) | |
tree | f3d1ce7a882996c92452d3c853e6fd4e5c57ce94 /service-monitor | |
parent | 030425589c31cd4f20343c635251a33a753dc2fa (diff) |
Revert "Use ApplicationId instead of ApplicationInstanceReference where possible" (#27472)
Diffstat (limited to 'service-monitor')
5 files changed, 19 insertions, 18 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 24677061334..ac62ee4bdab 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,6 +28,7 @@ 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; @@ -60,12 +61,18 @@ public class ApplicationInstanceGenerator { return toApplicationInstanceReference(applicationInfo.getApplicationId(), zone); } - public static ApplicationInstanceReference toApplicationInstanceReference(ApplicationId applicationId, Zone zone) { + 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 3acd4cd1102..043e4a186d3 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, zone); + return new ServiceModel(applicationInstances); } 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 c4a3123db57..53db7cc135c 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(ApplicationId applicationId) { - return getApplicationInfo(applicationId) + public Optional<ApplicationInstance> getApplication(ApplicationInstanceReference reference) { + return getApplicationInfo(reference) .map(applicationInfo -> modelGenerator.toApplicationInstance(applicationInfo, serviceStatusProvider)); } @@ -108,7 +108,8 @@ public class ServiceMonitorImpl implements ServiceMonitor, AntiServiceMonitor { return duperModelManager.disallowDuperModelLockAcquisition(regionDescription); } - private Optional<ApplicationInfo> getApplicationInfo(ApplicationId applicationId) { + private Optional<ApplicationInfo> getApplicationInfo(ApplicationInstanceReference reference) { + ApplicationId applicationId = ApplicationInstanceGenerator.toApplicationId(reference); 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 e8bbaa4b670..6079c76519f 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,8 +2,6 @@ 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; @@ -18,8 +16,6 @@ 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. @@ -35,22 +31,20 @@ import static com.yahoo.vespa.service.model.ApplicationInstanceGenerator.toAppli 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, Zone zone) { - this.applicationsByReference = Map.copyOf(applicationsByReference); - this.zone = zone; + public ServiceModel(Map<ApplicationInstanceReference, ApplicationInstance> applicationsByReference) { + this.applicationsByReference = Collections.unmodifiableMap(Map.copyOf(applicationsByReference)); } public Map<ApplicationInstanceReference, ApplicationInstance> getAllApplicationInstances() { return applicationsByReference; } - public Optional<ApplicationInstance> getApplicationInstance(ApplicationId applicationId) { - return Optional.ofNullable(applicationsByReference.get(toApplicationInstanceReference(applicationId, zone))); + public Optional<ApplicationInstance> getApplicationInstance(ApplicationInstanceReference reference) { + return Optional.ofNullable(applicationsByReference.get(reference)); } public Optional<ApplicationInstance> getApplication(HostName hostname) { 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 570e0948499..b3f77b3ef7b 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,7 +1,6 @@ // 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; @@ -37,8 +36,8 @@ public interface ServiceMonitor { return getServiceModelSnapshot().getApplication(hostname); } - default Optional<ApplicationInstance> getApplication(ApplicationId applicationId) { - return getServiceModelSnapshot().getApplicationInstance(applicationId); + default Optional<ApplicationInstance> getApplication(ApplicationInstanceReference reference) { + return getServiceModelSnapshot().getApplicationInstance(reference); } default Optional<ApplicationInstance> getApplicationNarrowedTo(HostName hostname) { |