summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2019-02-08 13:16:00 +0100
committerJon Marius Venstad <venstad@gmail.com>2019-02-08 13:16:00 +0100
commit303deeccfef4b0733d7ae8549b9db4262fa512fd (patch)
treeb331ff6efe9b7f948d85e182ba212e017ae07986
parent2a2dde55b7f784b5f5ece703be5f3b84d8c1bf92 (diff)
Replace test usage of InMemoryStatusService
-rw-r--r--orchestrator/src/main/java/com/yahoo/vespa/orchestrator/status/StatusService.java19
-rw-r--r--orchestrator/src/test/java/com/yahoo/vespa/orchestrator/OrchestratorImplTest.java26
-rw-r--r--orchestrator/src/test/java/com/yahoo/vespa/orchestrator/resources/ApplicationSuspensionResourceTest.java3
3 files changed, 27 insertions, 21 deletions
diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/status/StatusService.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/status/StatusService.java
index 99f6c113193..c9e846906e3 100644
--- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/status/StatusService.java
+++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/status/StatusService.java
@@ -2,18 +2,18 @@
package com.yahoo.vespa.orchestrator.status;
import com.yahoo.vespa.applicationmodel.ApplicationInstanceReference;
+import com.yahoo.vespa.applicationmodel.HostName;
import com.yahoo.vespa.orchestrator.OrchestratorContext;
import java.util.Set;
+import java.util.function.Function;
/**
- * Service that can produce registries for the suspension of an application
- * and its hosts.
+ * Service that can produce registries for the suspension of an application and its hosts.
*
- * The registry classes are pr application instance.
- * TODO Remove readonly registry class (replace with actual methods) - only adds complexity.
+ * The registry class is per locked application instance.
*
- * @author oyving
+ * @author Øyvind Grønnesby
* @author Tony Vaagenes
* @author smorgrav
*/
@@ -64,4 +64,13 @@ public interface StatusService {
* @return A Map between the application instance and its status.
*/
Set<ApplicationInstanceReference> getAllSuspendedApplications();
+
+ /**
+ * Returns a not necessarily consistent mapping from applications to their set of suspended hosts.
+ *
+ * If the lock for an application is held when this is acquired, the view of that application's hosts
+ * is consistent and up to date for as long as the lock is held.
+ */
+ Function<ApplicationInstanceReference, Set<HostName>> getSuspendedHostsByApplication();
+
}
diff --git a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/OrchestratorImplTest.java b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/OrchestratorImplTest.java
index 877a5b244b3..89172a831f4 100644
--- a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/OrchestratorImplTest.java
+++ b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/OrchestratorImplTest.java
@@ -33,8 +33,7 @@ import org.mockito.InOrder;
import java.util.Arrays;
import java.util.Iterator;
import java.util.Map;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
+import java.util.Set;
import static com.yahoo.vespa.orchestrator.status.ApplicationInstanceStatus.ALLOWED_TO_BE_DOWN;
import static com.yahoo.vespa.orchestrator.status.ApplicationInstanceStatus.NO_REMARKS;
@@ -53,7 +52,7 @@ import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.spy;
/**
- * Test Orchestrator with a mock backend (the InMemoryStatusService)
+ * Test Orchestrator with a mock backend (the MockCurator)
*
* @author smorgrav
*/
@@ -326,20 +325,17 @@ public class OrchestratorImplTest {
new ApplicationInstance(
tenantId,
applicationInstanceId,
- Stream.of(new ServiceCluster(
+ Set.of(new ServiceCluster(
new ClusterId("clusterId"),
new ServiceType("serviceType"),
- Stream.of(
- new ServiceInstance(
- new ConfigId("configId1"),
- hostName,
- ServiceStatus.UP),
- new ServiceInstance(
- new ConfigId("configId2"),
- hostName,
- ServiceStatus.NOT_CHECKED))
- .collect(Collectors.toSet())))
- .collect(Collectors.toSet()));
+ Set.of(new ServiceInstance(
+ new ConfigId("configId1"),
+ hostName,
+ ServiceStatus.UP),
+ new ServiceInstance(
+ new ConfigId("configId2"),
+ hostName,
+ ServiceStatus.NOT_CHECKED)))));
InstanceLookupService lookupService = new ServiceMonitorInstanceLookupService(
() -> new ServiceModel(Map.of(reference, applicationInstance)));
diff --git a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/resources/ApplicationSuspensionResourceTest.java b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/resources/ApplicationSuspensionResourceTest.java
index c575811fd6d..94df28a6921 100644
--- a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/resources/ApplicationSuspensionResourceTest.java
+++ b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/resources/ApplicationSuspensionResourceTest.java
@@ -158,7 +158,8 @@ public class ApplicationSuspensionResourceTest {
" <config name=\"container.handler.threadpool\">\n" +
" <maxthreads>10</maxthreads>\n" +
" </config>\n" +
- " <component id=\"com.yahoo.vespa.orchestrator.status.InMemoryStatusService\" bundle=\"orchestrator\" />\n" +
+ " <component id=\"com.yahoo.vespa.curator.mock.MockCurator\" bundle=\"zkfacade\" />\n" +
+ " <component id=\"com.yahoo.vespa.orchestrator.status.ZookeeperStatusService\" bundle=\"orchestrator\" />\n" +
" <component id=\"com.yahoo.vespa.orchestrator.DummyInstanceLookupService\" bundle=\"orchestrator\" />\n" +
" <component id=\"com.yahoo.vespa.orchestrator.OrchestratorImpl\" bundle=\"orchestrator\" />\n" +
" <component id=\"com.yahoo.vespa.orchestrator.controller.ClusterControllerClientFactoryMock\" bundle=\"orchestrator\" />\n" +