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 /orchestrator/src/main/java/com/yahoo | |
parent | 030425589c31cd4f20343c635251a33a753dc2fa (diff) |
Revert "Use ApplicationId instead of ApplicationInstanceReference where possible" (#27472)
Diffstat (limited to 'orchestrator/src/main/java/com/yahoo')
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); |