summaryrefslogtreecommitdiffstats
path: root/service-monitor
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2023-06-16 12:46:37 +0200
committerHarald Musum <musum@yahooinc.com>2023-06-16 12:46:37 +0200
commite89ee09abf52b98a6b871065fa1215a15592a34a (patch)
treefcf8c69841438b745ba2182973ef4497565c97cd /service-monitor
parentae3e30955bd9031496d9ef466f1a68223184a376 (diff)
Use ApplicationId instead of ApplicationInstanceReference where possible
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, 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) {