summaryrefslogtreecommitdiffstats
path: root/service-monitor
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2023-06-19 11:14:31 +0200
committerGitHub <noreply@github.com>2023-06-19 11:14:31 +0200
commit4a51e5bf69bd6b2263070f61c66ddb695bbae9aa (patch)
treef3d1ce7a882996c92452d3c853e6fd4e5c57ce94 /service-monitor
parent030425589c31cd4f20343c635251a33a753dc2fa (diff)
Revert "Use ApplicationId instead of ApplicationInstanceReference where possible" (#27472)
Diffstat (limited to 'service-monitor')
-rw-r--r--service-monitor/src/main/java/com/yahoo/vespa/service/model/ApplicationInstanceGenerator.java9
-rw-r--r--service-monitor/src/main/java/com/yahoo/vespa/service/model/ModelGenerator.java2
-rw-r--r--service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceMonitorImpl.java7
-rw-r--r--service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceModel.java14
-rw-r--r--service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceMonitor.java5
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) {