diff options
Diffstat (limited to 'orchestrator/src')
2 files changed, 24 insertions, 14 deletions
diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/resources/InstanceResource.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/resources/InstanceResource.java index c16256df73d..7f0227df4c5 100644 --- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/resources/InstanceResource.java +++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/resources/InstanceResource.java @@ -6,6 +6,7 @@ import com.yahoo.container.jaxrs.annotation.Component; import com.yahoo.jrt.slobrok.api.Mirror; import com.yahoo.vespa.applicationmodel.ApplicationInstance; import com.yahoo.vespa.applicationmodel.ApplicationInstanceReference; +import com.yahoo.vespa.applicationmodel.ClusterId; import com.yahoo.vespa.applicationmodel.ConfigId; import com.yahoo.vespa.applicationmodel.HostName; import com.yahoo.vespa.applicationmodel.ServiceStatus; @@ -15,7 +16,7 @@ import com.yahoo.vespa.orchestrator.OrchestratorUtil; import com.yahoo.vespa.orchestrator.restapi.wire.SlobrokEntryResponse; import com.yahoo.vespa.orchestrator.status.HostStatus; import com.yahoo.vespa.orchestrator.status.StatusService; -import com.yahoo.vespa.service.monitor.SlobrokMonitorManager; +import com.yahoo.vespa.service.monitor.SlobrokApi; import javax.inject.Inject; import javax.ws.rs.GET; @@ -48,16 +49,16 @@ public class InstanceResource { public static final String DEFAULT_SLOBROK_PATTERN = "**"; private final StatusService statusService; - private final SlobrokMonitorManager slobrokMonitorManager; + private final SlobrokApi slobrokApi; private final InstanceLookupService instanceLookupService; @Inject public InstanceResource(@Component InstanceLookupService instanceLookupService, @Component StatusService statusService, - @Component SlobrokMonitorManager slobrokMonitorManager) { + @Component SlobrokApi slobrokApi) { this.instanceLookupService = instanceLookupService; this.statusService = statusService; - this.slobrokMonitorManager = slobrokMonitorManager; + this.slobrokApi = slobrokApi; } @GET @@ -96,7 +97,7 @@ public class InstanceResource { pattern = DEFAULT_SLOBROK_PATTERN; } - List<Mirror.Entry> entries = slobrokMonitorManager.lookup(applicationId, pattern); + List<Mirror.Entry> entries = slobrokApi.lookup(applicationId, pattern); return entries.stream() .map(entry -> new SlobrokEntryResponse(entry.getName(), entry.getSpec())) .collect(Collectors.toList()); @@ -107,11 +108,16 @@ public class InstanceResource { @Produces(MediaType.APPLICATION_JSON) public ServiceStatus getServiceStatus( @PathParam("instanceId") String instanceId, + @QueryParam("clusterId") String clusterIdString, @QueryParam("serviceType") String serviceTypeString, @QueryParam("configId") String configIdString) { ApplicationInstanceReference reference = parseInstanceId(instanceId); ApplicationId applicationId = OrchestratorUtil.toApplicationId(reference); + if (clusterIdString == null) { + throwBadRequest("Missing clusterId query parameter"); + } + if (serviceTypeString == null) { throwBadRequest("Missing serviceType query parameter"); } @@ -120,10 +126,11 @@ public class InstanceResource { throwBadRequest("Missing configId query parameter"); } + ClusterId clusterId = new ClusterId(clusterIdString); ServiceType serviceType = new ServiceType(serviceTypeString); ConfigId configId = new ConfigId(configIdString); - return slobrokMonitorManager.getStatus(applicationId, serviceType, configId); + return slobrokApi.getStatus(applicationId, clusterId, serviceType, configId); } static ApplicationInstanceReference parseInstanceId(String instanceIdString) { diff --git a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/resources/InstanceResourceTest.java b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/resources/InstanceResourceTest.java index 42b5b70ab55..d7255327ba6 100644 --- a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/resources/InstanceResourceTest.java +++ b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/resources/InstanceResourceTest.java @@ -4,11 +4,12 @@ package com.yahoo.vespa.orchestrator.resources; import com.fasterxml.jackson.databind.ObjectMapper; import com.yahoo.config.provision.ApplicationId; import com.yahoo.jrt.slobrok.api.Mirror; +import com.yahoo.vespa.applicationmodel.ClusterId; import com.yahoo.vespa.applicationmodel.ConfigId; import com.yahoo.vespa.applicationmodel.ServiceStatus; import com.yahoo.vespa.applicationmodel.ServiceType; import com.yahoo.vespa.orchestrator.restapi.wire.SlobrokEntryResponse; -import com.yahoo.vespa.service.monitor.SlobrokMonitorManager; +import com.yahoo.vespa.service.monitor.SlobrokApi; import org.junit.Test; import javax.ws.rs.WebApplicationException; @@ -27,12 +28,13 @@ public class InstanceResourceTest { private static final List<Mirror.Entry> ENTRIES = Arrays.asList( new Mirror.Entry("name1", "spec1"), new Mirror.Entry("name2", "spec2")); + private static final ClusterId CLUSTER_ID = new ClusterId("cluster-id"); - private final SlobrokMonitorManager slobrokMonitorManager = mock(SlobrokMonitorManager.class); + private final SlobrokApi slobrokApi = mock(SlobrokApi.class); private final InstanceResource resource = new InstanceResource( null, null, - slobrokMonitorManager); + slobrokApi); @Test public void testGetSlobrokEntries() throws Exception { @@ -49,31 +51,32 @@ public class InstanceResourceTest { ServiceType serviceType = new ServiceType("serviceType"); ConfigId configId = new ConfigId("configId"); ServiceStatus serviceStatus = ServiceStatus.UP; - when(slobrokMonitorManager.getStatus(APPLICATION_ID, serviceType, configId)) + when(slobrokApi.getStatus(APPLICATION_ID, CLUSTER_ID, serviceType, configId)) .thenReturn(serviceStatus); ServiceStatus actualServiceStatus = resource.getServiceStatus( APPLICATION_INSTANCE_REFERENCE, + CLUSTER_ID.s(), serviceType.s(), configId.s()); - verify(slobrokMonitorManager).getStatus(APPLICATION_ID, serviceType, configId); + verify(slobrokApi).getStatus(APPLICATION_ID, CLUSTER_ID, serviceType, configId); assertEquals(serviceStatus, actualServiceStatus); } @Test(expected = WebApplicationException.class) public void testBadRequest() { - resource.getServiceStatus(APPLICATION_INSTANCE_REFERENCE, null, null); + resource.getServiceStatus(APPLICATION_INSTANCE_REFERENCE, CLUSTER_ID.s(), null, null); } private void testGetSlobrokEntriesWith(String pattern, String expectedLookupPattern) throws Exception{ - when(slobrokMonitorManager.lookup(APPLICATION_ID, expectedLookupPattern)) + when(slobrokApi.lookup(APPLICATION_ID, expectedLookupPattern)) .thenReturn(ENTRIES); List<SlobrokEntryResponse> response = resource.getSlobrokEntries( APPLICATION_INSTANCE_REFERENCE, pattern); - verify(slobrokMonitorManager).lookup(APPLICATION_ID, expectedLookupPattern); + verify(slobrokApi).lookup(APPLICATION_ID, expectedLookupPattern); ObjectMapper mapper = new ObjectMapper(); String actualJson = mapper.writeValueAsString(response); |