summaryrefslogtreecommitdiffstats
path: root/orchestrator/src/main/java/com/yahoo
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 /orchestrator/src/main/java/com/yahoo
parent030425589c31cd4f20343c635251a33a753dc2fa (diff)
Revert "Use ApplicationId instead of ApplicationInstanceReference where possible" (#27472)
Diffstat (limited to 'orchestrator/src/main/java/com/yahoo')
-rw-r--r--orchestrator/src/main/java/com/yahoo/vespa/orchestrator/OrchestratorImpl.java4
-rw-r--r--orchestrator/src/main/java/com/yahoo/vespa/orchestrator/OrchestratorUtil.java12
-rw-r--r--orchestrator/src/main/java/com/yahoo/vespa/orchestrator/resources/InstanceRequestHandler.java35
3 files changed, 17 insertions, 34 deletions
diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/OrchestratorImpl.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/OrchestratorImpl.java
index 99c2fa11825..49fab7522ba 100644
--- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/OrchestratorImpl.java
+++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/OrchestratorImpl.java
@@ -380,7 +380,7 @@ public class OrchestratorImpl implements Orchestrator {
OrchestratorContext context = OrchestratorContext.createContextForSingleAppOp(clock);
ApplicationInstanceReference reference = OrchestratorUtil.toApplicationInstanceReference(appId, serviceMonitor);
- ApplicationInstance application = serviceMonitor.getApplication(appId)
+ ApplicationInstance application = serviceMonitor.getApplication(reference)
.orElseThrow(ApplicationIdNotFoundException::new);
try (ApplicationLock lock = statusService.lockApplication(context, reference)) {
@@ -412,7 +412,7 @@ public class OrchestratorImpl implements Orchestrator {
@Override
public boolean isQuiescent(ApplicationId id) {
try {
- ApplicationInstance application = serviceMonitor.getApplication(id)
+ ApplicationInstance application = serviceMonitor.getApplication(OrchestratorUtil.toApplicationInstanceReference(id, serviceMonitor))
.orElseThrow(ApplicationIdNotFoundException::new);
List<ServiceCluster> contentClusters = application.serviceClusters().stream()
diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/OrchestratorUtil.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/OrchestratorUtil.java
index c232cd95a2f..3093a2a9828 100644
--- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/OrchestratorUtil.java
+++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/OrchestratorUtil.java
@@ -14,10 +14,13 @@ import com.yahoo.vespa.applicationmodel.ServiceInstance;
import com.yahoo.vespa.applicationmodel.TenantId;
import com.yahoo.vespa.service.monitor.ServiceMonitor;
+import java.util.Collection;
import java.util.List;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
import static java.util.stream.Collectors.toSet;
@@ -88,6 +91,7 @@ public class OrchestratorUtil {
}
public static ApplicationId toApplicationId(ApplicationInstanceReference appRef) {
+
String appNameStr = appRef.asString();
String[] appNameParts = appNameStr.split(":");
@@ -95,8 +99,8 @@ public class OrchestratorUtil {
// Assume here that first two are tenant and application name.
if (appNameParts.length == 2) {
return ApplicationId.from(TenantName.from(appNameParts[0]),
- ApplicationName.from(appNameParts[1]),
- InstanceName.defaultName());
+ ApplicationName.from(appNameParts[1]),
+ InstanceName.defaultName());
}
// Other normal application should have 5 parts.
@@ -105,8 +109,8 @@ public class OrchestratorUtil {
}
return ApplicationId.from(TenantName.from(appNameParts[0]),
- ApplicationName.from(appNameParts[1]),
- InstanceName.from(appNameParts[4]));
+ ApplicationName.from(appNameParts[1]),
+ InstanceName.from(appNameParts[4]));
}
}
diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/resources/InstanceRequestHandler.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/resources/InstanceRequestHandler.java
index 3b3e3ce7eea..0964a3f7dd5 100644
--- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/resources/InstanceRequestHandler.java
+++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/resources/InstanceRequestHandler.java
@@ -7,7 +7,6 @@ import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.yahoo.component.annotation.Inject;
import com.yahoo.config.provision.ApplicationId;
-import com.yahoo.config.provision.Zone;
import com.yahoo.container.jdisc.ThreadedHttpRequestHandler;
import com.yahoo.jrt.slobrok.api.Mirror;
import com.yahoo.restapi.RestApi;
@@ -28,7 +27,6 @@ import com.yahoo.vespa.orchestrator.status.HostInfos;
import com.yahoo.vespa.orchestrator.status.StatusService;
import com.yahoo.vespa.service.manager.MonitorManager;
import com.yahoo.vespa.service.manager.UnionMonitorManager;
-import com.yahoo.vespa.service.model.ApplicationInstanceGenerator;
import com.yahoo.vespa.service.monitor.ServiceMonitor;
import com.yahoo.vespa.service.monitor.SlobrokApi;
@@ -56,21 +54,18 @@ public class InstanceRequestHandler extends RestApiRequestHandler<InstanceReques
private final SlobrokApi slobrokApi;
private final MonitorManager rootManager;
private final ServiceMonitor serviceMonitor;
- private final Zone zone;
@Inject
public InstanceRequestHandler(ThreadedHttpRequestHandler.Context context,
ServiceMonitor serviceMonitor,
StatusService statusService,
SlobrokApi slobrokApi,
- UnionMonitorManager rootManager,
- Zone zone) {
+ UnionMonitorManager rootManager) {
super(context, InstanceRequestHandler::createRestApiDefinition);
this.statusService = statusService;
this.slobrokApi = slobrokApi;
this.rootManager = rootManager;
this.serviceMonitor = serviceMonitor;
- this.zone = zone;
}
private static RestApi createRestApiDefinition(InstanceRequestHandler self) {
@@ -94,19 +89,16 @@ public class InstanceRequestHandler extends RestApiRequestHandler<InstanceReques
.build();
}
- private List<ApplicationId> getAllInstances(RestApi.RequestContext context) {
- return serviceMonitor.getAllApplicationInstanceReferences().stream()
- .map(OrchestratorUtil::toApplicationId)
- .sorted()
- .toList();
+ private List<ApplicationInstanceReference> getAllInstances(RestApi.RequestContext context) {
+ return serviceMonitor.getAllApplicationInstanceReferences().stream().sorted().toList();
}
private InstanceStatusResponse getInstance(RestApi.RequestContext context) {
String instanceIdString = context.pathParameters().getStringOrThrow("instanceId");
- ApplicationInstanceReference instanceId = getApplicationInstanceReference(instanceIdString);
+ ApplicationInstanceReference instanceId = parseInstanceId(instanceIdString);
ApplicationInstance applicationInstance
- = serviceMonitor.getApplication(OrchestratorUtil.toApplicationId(instanceId))
+ = serviceMonitor.getApplication(instanceId)
.orElseThrow(RestApiException.NotFound::new);
HostInfos hostInfos = statusService.getHostInfosByApplicationResolver().apply(applicationInstance.reference());
@@ -121,19 +113,6 @@ public class InstanceRequestHandler extends RestApiRequestHandler<InstanceReques
return InstanceStatusResponse.create(applicationInstance, hostStatusMap);
}
- // Gets ApplicationInstanceReference when string might be an ApplicationId (tenant:application:instance) or
- // an ApplicationInstanceReference (tenant:application:instance:environment:region:instance).
- // TODO: Accept only strings on the form tenant:application:instance when all users have been
- // updated and return ApplicationId instead of ApplicationInstanceReference.
- private ApplicationInstanceReference getApplicationInstanceReference(String instanceIdString) {
- try {
- ApplicationId applicationId = ApplicationId.fromSerializedForm(instanceIdString);
- return ApplicationInstanceGenerator.toApplicationInstanceReference(applicationId, zone);
- } catch (IllegalArgumentException e) {
- return parseInstanceId(instanceIdString);
- }
- }
-
private WireHostInfo hostInfoToWire(HostInfo hostInfo) {
String hostStatusString = hostInfo.status().asString();
String suspendedSinceUtcOrNull = hostInfo.suspendedSince().map(Instant::toString).orElse(null);
@@ -143,7 +122,7 @@ public class InstanceRequestHandler extends RestApiRequestHandler<InstanceReques
private List<SlobrokEntryResponse> getSlobrokEntries(RestApi.RequestContext context) {
String instanceId = context.pathParameters().getStringOrThrow("instanceId");
String pattern = context.queryParameters().getString("pattern").orElse(null);
- ApplicationInstanceReference reference = getApplicationInstanceReference(instanceId);
+ ApplicationInstanceReference reference = parseInstanceId(instanceId);
ApplicationId applicationId = OrchestratorUtil.toApplicationId(reference);
if (pattern == null) {
@@ -161,7 +140,7 @@ public class InstanceRequestHandler extends RestApiRequestHandler<InstanceReques
String clusterIdString = context.queryParameters().getStringOrThrow("clusterId");
String serviceTypeString = context.queryParameters().getStringOrThrow("serviceType");
String configIdString = context.queryParameters().getStringOrThrow("configId");
- ApplicationInstanceReference reference = getApplicationInstanceReference(instanceId);
+ ApplicationInstanceReference reference = parseInstanceId(instanceId);
ApplicationId applicationId = OrchestratorUtil.toApplicationId(reference);
ClusterId clusterId = new ClusterId(clusterIdString);