aboutsummaryrefslogtreecommitdiffstats
path: root/orchestrator
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@verizonmedia.com>2020-03-03 00:56:44 +0100
committerHåkon Hallingstad <hakon@verizonmedia.com>2020-03-03 00:56:44 +0100
commitfb83b5123cb279a896f9198bbb6f4734d81b278d (patch)
tree34b318ad455a09be4a35cc1a54369dce48df165c /orchestrator
parenta5dd3abdd90978a19cd3c69857c5bc487a1da057 (diff)
Remove InstanceLookupService
The lower-level methods on ServiceMonitor has removed the need for InstanceLookupService.
Diffstat (limited to 'orchestrator')
-rw-r--r--orchestrator/src/main/java/com/yahoo/vespa/orchestrator/InstanceLookupService.java25
-rw-r--r--orchestrator/src/main/java/com/yahoo/vespa/orchestrator/OrchestratorImpl.java36
-rw-r--r--orchestrator/src/main/java/com/yahoo/vespa/orchestrator/OrchestratorUtil.java21
-rw-r--r--orchestrator/src/main/java/com/yahoo/vespa/orchestrator/ServiceMonitorInstanceLookupService.java46
-rw-r--r--orchestrator/src/main/java/com/yahoo/vespa/orchestrator/resources/InstanceResource.java12
-rw-r--r--orchestrator/src/main/java/com/yahoo/vespa/orchestrator/status/ApplicationLock.java2
-rw-r--r--orchestrator/src/main/java/com/yahoo/vespa/orchestrator/status/ZkApplicationLock.java5
-rw-r--r--orchestrator/src/test/java/com/yahoo/vespa/orchestrator/DummyServiceMonitor.java (renamed from orchestrator/src/test/java/com/yahoo/vespa/orchestrator/DummyInstanceLookupService.java)42
-rw-r--r--orchestrator/src/test/java/com/yahoo/vespa/orchestrator/OrchestratorImplTest.java66
-rw-r--r--orchestrator/src/test/java/com/yahoo/vespa/orchestrator/OrchestratorUtilTest.java4
-rw-r--r--orchestrator/src/test/java/com/yahoo/vespa/orchestrator/controller/ClusterControllerClientFactoryMock.java6
-rw-r--r--orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/ModelTestUtils.java5
-rw-r--r--orchestrator/src/test/java/com/yahoo/vespa/orchestrator/resources/ApplicationSuspensionResourceTest.java2
-rw-r--r--orchestrator/src/test/java/com/yahoo/vespa/orchestrator/resources/HostResourceTest.java41
14 files changed, 122 insertions, 191 deletions
diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/InstanceLookupService.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/InstanceLookupService.java
deleted file mode 100644
index 2978b091548..00000000000
--- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/InstanceLookupService.java
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.vespa.orchestrator;
-
-import com.yahoo.vespa.applicationmodel.ApplicationInstance;
-import com.yahoo.vespa.applicationmodel.ApplicationInstanceReference;
-import com.yahoo.vespa.applicationmodel.HostName;
-
-import java.util.Optional;
-import java.util.Set;
-
-/**
- * @author oyving
- */
-public interface InstanceLookupService {
-
- Optional<ApplicationInstance> findInstanceById(ApplicationInstanceReference applicationInstanceReference);
- Optional<ApplicationInstance> findInstanceByHost(HostName hostName);
- Set<ApplicationInstanceReference> knownInstances();
-
- /**
- * Returns an application instance that may not contain more services and clusters than
- * those related to the host.
- */
- Optional<ApplicationInstance> findInstancePossiblyNarrowedToHost(HostName hostname);
-}
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 be1f83da094..d4b55e92271 100644
--- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/OrchestratorImpl.java
+++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/OrchestratorImpl.java
@@ -31,11 +31,12 @@ import com.yahoo.vespa.orchestrator.policy.HostedVespaClusterPolicy;
import com.yahoo.vespa.orchestrator.policy.HostedVespaPolicy;
import com.yahoo.vespa.orchestrator.policy.Policy;
import com.yahoo.vespa.orchestrator.status.ApplicationInstanceStatus;
+import com.yahoo.vespa.orchestrator.status.ApplicationLock;
import com.yahoo.vespa.orchestrator.status.HostInfo;
import com.yahoo.vespa.orchestrator.status.HostInfos;
import com.yahoo.vespa.orchestrator.status.HostStatus;
-import com.yahoo.vespa.orchestrator.status.ApplicationLock;
import com.yahoo.vespa.orchestrator.status.StatusService;
+import com.yahoo.vespa.service.monitor.ServiceMonitor;
import java.io.IOException;
import java.time.Clock;
@@ -59,7 +60,7 @@ public class OrchestratorImpl implements Orchestrator {
private final Policy policy;
private final StatusService statusService;
- private final InstanceLookupService instanceLookupService;
+ private final ServiceMonitor serviceMonitor;
private final int serviceMonitorConvergenceLatencySeconds;
private final ClusterControllerClientFactory clusterControllerClientFactory;
private final Clock clock;
@@ -70,7 +71,7 @@ public class OrchestratorImpl implements Orchestrator {
public OrchestratorImpl(ClusterControllerClientFactory clusterControllerClientFactory,
StatusService statusService,
OrchestratorConfig orchestratorConfig,
- InstanceLookupService instanceLookupService,
+ ServiceMonitor serviceMonitor,
ConfigserverConfig configServerConfig,
FlagSource flagSource)
{
@@ -79,7 +80,7 @@ public class OrchestratorImpl implements Orchestrator {
new ApplicationApiFactory(configServerConfig.zookeeperserver().size())),
clusterControllerClientFactory,
statusService,
- instanceLookupService,
+ serviceMonitor,
orchestratorConfig.serviceMonitorConvergenceLatencySeconds(),
Clock.systemUTC(),
new ApplicationApiFactory(configServerConfig.zookeeperserver().size()),
@@ -89,7 +90,7 @@ public class OrchestratorImpl implements Orchestrator {
public OrchestratorImpl(Policy policy,
ClusterControllerClientFactory clusterControllerClientFactory,
StatusService statusService,
- InstanceLookupService instanceLookupService,
+ ServiceMonitor serviceMonitor,
int serviceMonitorConvergenceLatencySeconds,
Clock clock,
ApplicationApiFactory applicationApiFactory,
@@ -99,7 +100,7 @@ public class OrchestratorImpl implements Orchestrator {
this.clusterControllerClientFactory = clusterControllerClientFactory;
this.statusService = statusService;
this.serviceMonitorConvergenceLatencySeconds = serviceMonitorConvergenceLatencySeconds;
- this.instanceLookupService = instanceLookupService;
+ this.serviceMonitor = serviceMonitor;
this.clock = clock;
this.applicationApiFactory = applicationApiFactory;
this.retireWithPermanentlyDownFlag = Flags.RETIRE_WITH_PERMANENTLY_DOWN.bindTo(flagSource);
@@ -107,8 +108,8 @@ public class OrchestratorImpl implements Orchestrator {
@Override
public Host getHost(HostName hostName) throws HostNameNotFoundException {
- ApplicationInstance applicationInstance = instanceLookupService
- .findInstancePossiblyNarrowedToHost(hostName)
+ ApplicationInstance applicationInstance = serviceMonitor
+ .getApplicationNarrowedTo(hostName)
.orElseThrow(() -> new HostNameNotFoundException(hostName));
List<ServiceInstance> serviceInstances = applicationInstance
@@ -129,8 +130,8 @@ public class OrchestratorImpl implements Orchestrator {
@Override
public Function<HostName, Optional<HostInfo>> getHostResolver() {
- return hostName -> instanceLookupService
- .findInstanceByHost(hostName)
+ return hostName -> serviceMonitor
+ .getApplication(hostName)
.map(application -> statusService.getHostInfo(application.reference(), hostName));
}
@@ -233,7 +234,7 @@ public class OrchestratorImpl implements Orchestrator {
@Override
public ApplicationInstanceStatus getApplicationInstanceStatus(ApplicationId appId) throws ApplicationIdNotFoundException {
- ApplicationInstanceReference reference = OrchestratorUtil.toApplicationInstanceReference(appId, instanceLookupService);
+ ApplicationInstanceReference reference = OrchestratorUtil.toApplicationInstanceReference(appId, serviceMonitor);
return statusService.getApplicationInstanceStatus(reference);
}
@@ -351,15 +352,15 @@ public class OrchestratorImpl implements Orchestrator {
private void setApplicationStatus(ApplicationId appId, ApplicationInstanceStatus status)
throws ApplicationStateChangeDeniedException, ApplicationIdNotFoundException{
OrchestratorContext context = OrchestratorContext.createContextForSingleAppOp(clock);
- ApplicationInstanceReference appRef = OrchestratorUtil.toApplicationInstanceReference(appId, instanceLookupService);
- try (ApplicationLock lock = statusService.lockApplication(context, appRef)) {
+ ApplicationInstanceReference reference = OrchestratorUtil.toApplicationInstanceReference(appId, serviceMonitor);
+ try (ApplicationLock lock = statusService.lockApplication(context, reference)) {
// Short-circuit if already in wanted state
if (status == lock.getApplicationInstanceStatus()) return;
// Set content clusters for this application in maintenance on suspend
if (status == ApplicationInstanceStatus.ALLOWED_TO_BE_DOWN) {
- ApplicationInstance application = getApplicationInstance(appRef);
+ ApplicationInstance application = getApplicationInstance(reference);
HostInfos hostInfosSnapshot = lock.getHostInfos();
@@ -416,12 +417,13 @@ public class OrchestratorImpl implements Orchestrator {
}
private ApplicationInstance getApplicationInstance(HostName hostName) throws HostNameNotFoundException{
- return instanceLookupService.findInstanceByHost(hostName).orElseThrow(
+ return serviceMonitor.getApplication(hostName).orElseThrow(
() -> new HostNameNotFoundException(hostName));
}
- private ApplicationInstance getApplicationInstance(ApplicationInstanceReference appRef) throws ApplicationIdNotFoundException {
- return instanceLookupService.findInstanceById(appRef).orElseThrow(ApplicationIdNotFoundException::new);
+ private ApplicationInstance getApplicationInstance(ApplicationInstanceReference reference)
+ throws ApplicationIdNotFoundException {
+ return serviceMonitor.getApplication(reference).orElseThrow(ApplicationIdNotFoundException::new);
}
private static void sleep(long time, TimeUnit timeUnit) {
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 5294a841412..40a45627f4d 100644
--- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/OrchestratorUtil.java
+++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/OrchestratorUtil.java
@@ -12,6 +12,7 @@ import com.yahoo.vespa.applicationmodel.HostName;
import com.yahoo.vespa.applicationmodel.ServiceCluster;
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;
@@ -84,26 +85,26 @@ public class OrchestratorUtil {
return applicationInstanceReference.tenantId() + ":" + applicationInstanceReference.applicationInstanceId();
}
-
- public static ApplicationInstanceReference toApplicationInstanceReference(ApplicationId appId,
- InstanceLookupService instanceLookupService)
+ public static ApplicationInstanceReference toApplicationInstanceReference(
+ ApplicationId applicationid,
+ ServiceMonitor serviceMonitor)
throws ApplicationIdNotFoundException {
- Set<ApplicationInstanceReference> appRefs = instanceLookupService.knownInstances();
- List<ApplicationInstanceReference> appRefList = appRefs.stream()
- .filter(a -> OrchestratorUtil.toApplicationId(a).equals(appId))
+ Set<ApplicationInstanceReference> references = serviceMonitor.getAllApplicationInstanceReferences();
+ List<ApplicationInstanceReference> referencesWithId = references.stream()
+ .filter(a -> OrchestratorUtil.toApplicationId(a).equals(applicationid))
.collect(Collectors.toList());
- if (appRefList.size() > 1) {
- String msg = String.format("ApplicationId '%s' was not unique but mapped to '%s'", appId, appRefList);
+ if (referencesWithId.size() > 1) {
+ String msg = String.format("ApplicationId '%s' was not unique but mapped to '%s'", applicationid, referencesWithId);
throw new ApplicationIdNotFoundException(msg);
}
- if (appRefList.size() == 0) {
+ if (referencesWithId.size() == 0) {
throw new ApplicationIdNotFoundException();
}
- return appRefList.get(0);
+ return referencesWithId.get(0);
}
public static ApplicationId toApplicationId(ApplicationInstanceReference appRef) {
diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/ServiceMonitorInstanceLookupService.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/ServiceMonitorInstanceLookupService.java
deleted file mode 100644
index d7a630707b8..00000000000
--- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/ServiceMonitorInstanceLookupService.java
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.vespa.orchestrator;
-
-import com.google.inject.Inject;
-import com.yahoo.vespa.applicationmodel.ApplicationInstance;
-import com.yahoo.vespa.applicationmodel.ApplicationInstanceReference;
-import com.yahoo.vespa.applicationmodel.HostName;
-import com.yahoo.vespa.service.monitor.ServiceMonitor;
-
-import java.util.Optional;
-import java.util.Set;
-
-/**
- * Uses slobrok data (a.k.a. heartbeat) to implement {@link InstanceLookupService}.
- *
- * @author bakksjo
- */
-public class ServiceMonitorInstanceLookupService implements InstanceLookupService {
-
- private final ServiceMonitor serviceMonitor;
-
- @Inject
- public ServiceMonitorInstanceLookupService(ServiceMonitor serviceMonitor) {
- this.serviceMonitor = serviceMonitor;
- }
-
- @Override
- public Optional<ApplicationInstance> findInstanceById(ApplicationInstanceReference applicationInstanceReference) {
- return serviceMonitor.getApplication(applicationInstanceReference);
- }
-
- @Override
- public Optional<ApplicationInstance> findInstanceByHost(HostName hostname) {
- return serviceMonitor.getApplication(hostname);
- }
-
- @Override
- public Set<ApplicationInstanceReference> knownInstances() {
- return serviceMonitor.getAllApplicationInstanceReferences();
- }
-
- @Override
- public Optional<ApplicationInstance> findInstancePossiblyNarrowedToHost(HostName hostname) {
- return serviceMonitor.getApplicationNarrowedTo(hostname);
- }
-}
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 2ade81ff0f5..1cf2a2a4965 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
@@ -11,7 +11,6 @@ import com.yahoo.vespa.applicationmodel.ConfigId;
import com.yahoo.vespa.applicationmodel.HostName;
import com.yahoo.vespa.applicationmodel.ServiceStatusInfo;
import com.yahoo.vespa.applicationmodel.ServiceType;
-import com.yahoo.vespa.orchestrator.InstanceLookupService;
import com.yahoo.vespa.orchestrator.OrchestratorUtil;
import com.yahoo.vespa.orchestrator.restapi.wire.SlobrokEntryResponse;
import com.yahoo.vespa.orchestrator.restapi.wire.WireHostInfo;
@@ -20,6 +19,7 @@ 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.monitor.ServiceMonitor;
import com.yahoo.vespa.service.monitor.SlobrokApi;
import javax.inject.Inject;
@@ -54,14 +54,14 @@ public class InstanceResource {
private final StatusService statusService;
private final SlobrokApi slobrokApi;
private final MonitorManager rootManager;
- private final InstanceLookupService instanceLookupService;
+ private final ServiceMonitor serviceMonitor;
@Inject
- public InstanceResource(@Component InstanceLookupService instanceLookupService,
+ public InstanceResource(@Component ServiceMonitor serviceMonitor,
@Component StatusService statusService,
@Component SlobrokApi slobrokApi,
@Component UnionMonitorManager rootManager) {
- this.instanceLookupService = instanceLookupService;
+ this.serviceMonitor = serviceMonitor;
this.statusService = statusService;
this.slobrokApi = slobrokApi;
this.rootManager = rootManager;
@@ -70,7 +70,7 @@ public class InstanceResource {
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<ApplicationInstanceReference> getAllInstances() {
- return instanceLookupService.knownInstances().stream().sorted().collect(Collectors.toList());
+ return serviceMonitor.getAllApplicationInstanceReferences().stream().sorted().collect(Collectors.toList());
}
@GET
@@ -80,7 +80,7 @@ public class InstanceResource {
ApplicationInstanceReference instanceId = parseInstanceId(instanceIdString);
ApplicationInstance applicationInstance
- = instanceLookupService.findInstanceById(instanceId)
+ = serviceMonitor.getApplication(instanceId)
.orElseThrow(() -> new WebApplicationException(Response.status(Response.Status.NOT_FOUND).build()));
HostInfos hostInfos = statusService.getHostInfosByApplicationResolver().apply(applicationInstance.reference());
diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/status/ApplicationLock.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/status/ApplicationLock.java
index 4f6c0547ed6..8883f78b693 100644
--- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/status/ApplicationLock.java
+++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/status/ApplicationLock.java
@@ -29,7 +29,7 @@ public interface ApplicationLock extends AutoCloseable {
/** Sets the orchestration status for the application instance. */
void setApplicationInstanceStatus(ApplicationInstanceStatus applicationInstanceStatus);
- /** implNote: Must not throw an exception. */
+ /** WARNING: Must not throw an exception. */
@Override
void close();
diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/status/ZkApplicationLock.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/status/ZkApplicationLock.java
index 08cbe1f45d7..479dc5062a8 100644
--- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/status/ZkApplicationLock.java
+++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/status/ZkApplicationLock.java
@@ -10,6 +10,11 @@ import org.apache.zookeeper.KeeperException;
import java.util.logging.Logger;
+/**
+ * ZooKeeper implementation of {@link ApplicationLock}.
+ *
+ * @author hakonhall
+ */
class ZkApplicationLock implements ApplicationLock {
private static final Logger log = Logger.getLogger(ZkApplicationLock.class.getName());
diff --git a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/DummyInstanceLookupService.java b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/DummyServiceMonitor.java
index 7a62a29dff2..09fb6296866 100644
--- a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/DummyInstanceLookupService.java
+++ b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/DummyServiceMonitor.java
@@ -15,8 +15,12 @@ import com.yahoo.vespa.applicationmodel.ServiceType;
import com.yahoo.vespa.applicationmodel.TenantId;
import com.yahoo.vespa.orchestrator.model.NodeGroup;
import com.yahoo.vespa.orchestrator.model.VespaModelUtil;
+import com.yahoo.vespa.service.monitor.ServiceModel;
+import com.yahoo.vespa.service.monitor.ServiceMonitor;
import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
@@ -27,7 +31,7 @@ import java.util.stream.Collectors;
* @author oyving
* @author smorgrav
*/
-public class DummyInstanceLookupService implements InstanceLookupService {
+public class DummyServiceMonitor implements ServiceMonitor {
public static final HostName TEST1_HOST_NAME = new HostName("test1.hostname.tld");
public static final HostName TEST3_HOST_NAME = new HostName("test3.hostname.tld");
@@ -121,26 +125,27 @@ public class DummyInstanceLookupService implements InstanceLookupService {
}
// A node group is tied to an application, so we need to define them after we have populated the above applications.
- public final static NodeGroup TEST1_NODE_GROUP = new NodeGroup(new DummyInstanceLookupService().findInstanceByHost(TEST1_HOST_NAME).get(), TEST1_HOST_NAME);
- public final static NodeGroup TEST3_NODE_GROUP = new NodeGroup(new DummyInstanceLookupService().findInstanceByHost(TEST3_HOST_NAME).get(), TEST3_HOST_NAME);
- public final static NodeGroup TEST6_NODE_GROUP = new NodeGroup(new DummyInstanceLookupService().findInstanceByHost(TEST6_HOST_NAME).get(), TEST6_HOST_NAME);
+ public final static NodeGroup TEST1_NODE_GROUP = new NodeGroup(new DummyServiceMonitor().getApplication(TEST1_HOST_NAME).get(), TEST1_HOST_NAME);
+ public final static NodeGroup TEST3_NODE_GROUP = new NodeGroup(new DummyServiceMonitor().getApplication(TEST3_HOST_NAME).get(), TEST3_HOST_NAME);
+ public final static NodeGroup TEST6_NODE_GROUP = new NodeGroup(new DummyServiceMonitor().getApplication(TEST6_HOST_NAME).get(), TEST6_HOST_NAME);
+ @Override
+ public ServiceModel getServiceModelSnapshot() {
+ throw new UnsupportedOperationException();
+ }
@Override
- public Optional<ApplicationInstance> findInstanceById(
- final ApplicationInstanceReference applicationInstanceReference) {
- for (ApplicationInstance app : apps) {
- if (app.reference().equals(applicationInstanceReference)) return Optional.of(app);
- }
- return Optional.empty();
+ public Set<ApplicationInstanceReference> getAllApplicationInstanceReferences() {
+ return apps.stream().map(a ->
+ new ApplicationInstanceReference(a.tenantId(),a.applicationInstanceId())).collect(Collectors.toSet());
}
@Override
- public Optional<ApplicationInstance> findInstanceByHost(HostName hostName) {
+ public Optional<ApplicationInstance> getApplication(HostName hostname) {
for (ApplicationInstance app : apps) {
for (ServiceCluster cluster : app.serviceClusters()) {
for (ServiceInstance service : cluster.serviceInstances()) {
- if (hostName.equals(service.hostName())) return Optional.of(app);
+ if (hostname.equals(service.hostName())) return Optional.of(app);
}
}
}
@@ -148,15 +153,16 @@ public class DummyInstanceLookupService implements InstanceLookupService {
}
@Override
- public Set<ApplicationInstanceReference> knownInstances() {
- return apps.stream().map(a ->
- new ApplicationInstanceReference(a.tenantId(),a.applicationInstanceId())).collect(Collectors.toSet());
-
+ public Optional<ApplicationInstance> getApplication(ApplicationInstanceReference reference) {
+ for (ApplicationInstance app : apps) {
+ if (app.reference().equals(reference)) return Optional.of(app);
+ }
+ return Optional.empty();
}
@Override
- public Optional<ApplicationInstance> findInstancePossiblyNarrowedToHost(HostName hostname) {
- return findInstanceByHost(hostname);
+ public Map<HostName, List<ServiceInstance>> getServicesByHostname() {
+ throw new UnsupportedOperationException();
}
public static Set<HostName> getContentHosts(ApplicationInstanceReference appRef) {
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 f7c5ab15927..9bcbdba074e 100644
--- a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/OrchestratorImplTest.java
+++ b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/OrchestratorImplTest.java
@@ -26,12 +26,13 @@ import com.yahoo.vespa.orchestrator.policy.BatchHostStateChangeDeniedException;
import com.yahoo.vespa.orchestrator.policy.HostStateChangeDeniedException;
import com.yahoo.vespa.orchestrator.policy.HostedVespaClusterPolicy;
import com.yahoo.vespa.orchestrator.policy.HostedVespaPolicy;
-import com.yahoo.vespa.orchestrator.status.HostStatus;
import com.yahoo.vespa.orchestrator.status.ApplicationLock;
+import com.yahoo.vespa.orchestrator.status.HostStatus;
import com.yahoo.vespa.orchestrator.status.StatusService;
import com.yahoo.vespa.orchestrator.status.ZkStatusService;
import com.yahoo.vespa.service.model.ServiceModelCache;
import com.yahoo.vespa.service.monitor.ServiceModel;
+import com.yahoo.vespa.service.monitor.ServiceMonitor;
import org.junit.Before;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
@@ -86,17 +87,17 @@ public class OrchestratorImplTest {
@Before
public void setUp() {
// Extract applications and hosts from dummy instance lookup service
- Iterator<ApplicationInstance> iterator = DummyInstanceLookupService.getApplications().iterator();
+ Iterator<ApplicationInstance> iterator = DummyServiceMonitor.getApplications().iterator();
ApplicationInstanceReference app1_ref = iterator.next().reference();
app1 = OrchestratorUtil.toApplicationId(app1_ref);
- app1_host1 = DummyInstanceLookupService.getContentHosts(app1_ref).iterator().next();
+ app1_host1 = DummyServiceMonitor.getContentHosts(app1_ref).iterator().next();
app2 = OrchestratorUtil.toApplicationId(iterator.next().reference());
clustercontroller = new ClusterControllerClientFactoryMock();
orchestrator = new OrchestratorImpl(new HostedVespaPolicy(new HostedVespaClusterPolicy(), clustercontroller, applicationApiFactory),
clustercontroller,
new ZkStatusService(new MockCurator(), mock(Metric.class), new TestTimer()),
- new DummyInstanceLookupService(),
+ new DummyServiceMonitor(),
0,
new ManualClock(),
applicationApiFactory,
@@ -242,8 +243,8 @@ public class OrchestratorImplTest {
@Test
public void applicationReferenceHasTenantAndAppInstance() {
- InstanceLookupService service = new DummyInstanceLookupService();
- String applicationInstanceId = service.findInstanceByHost(DummyInstanceLookupService.TEST1_HOST_NAME).get()
+ ServiceMonitor service = new DummyServiceMonitor();
+ String applicationInstanceId = service.getApplication(DummyServiceMonitor.TEST1_HOST_NAME).get()
.reference().toString();
assertEquals("test-tenant-id:application:prod:utopia-1:instance", applicationInstanceId);
}
@@ -265,21 +266,21 @@ public class OrchestratorImplTest {
orchestrator.suspendAll(
new HostName("parentHostname"),
Arrays.asList(
- DummyInstanceLookupService.TEST1_HOST_NAME,
- DummyInstanceLookupService.TEST3_HOST_NAME,
- DummyInstanceLookupService.TEST6_HOST_NAME));
+ DummyServiceMonitor.TEST1_HOST_NAME,
+ DummyServiceMonitor.TEST3_HOST_NAME,
+ DummyServiceMonitor.TEST6_HOST_NAME));
// As of 2016-06-07 the order of the node groups are as follows:
// TEST3: mediasearch:imagesearch:default
// TEST6: tenant-id-3:application-instance-3:default
// TEST1: test-tenant-id:application:instance
InOrder order = inOrder(orchestrator);
- verifySuspendGroup(order, orchestrator, DummyInstanceLookupService.TEST3_NODE_GROUP, true);
- verifySuspendGroup(order, orchestrator, DummyInstanceLookupService.TEST6_NODE_GROUP, true);
- verifySuspendGroup(order, orchestrator, DummyInstanceLookupService.TEST1_NODE_GROUP, true);
- verifySuspendGroup(order, orchestrator, DummyInstanceLookupService.TEST3_NODE_GROUP, false);
- verifySuspendGroup(order, orchestrator, DummyInstanceLookupService.TEST6_NODE_GROUP, false);
- verifySuspendGroup(order, orchestrator, DummyInstanceLookupService.TEST1_NODE_GROUP, false);
+ verifySuspendGroup(order, orchestrator, DummyServiceMonitor.TEST3_NODE_GROUP, true);
+ verifySuspendGroup(order, orchestrator, DummyServiceMonitor.TEST6_NODE_GROUP, true);
+ verifySuspendGroup(order, orchestrator, DummyServiceMonitor.TEST1_NODE_GROUP, true);
+ verifySuspendGroup(order, orchestrator, DummyServiceMonitor.TEST3_NODE_GROUP, false);
+ verifySuspendGroup(order, orchestrator, DummyServiceMonitor.TEST6_NODE_GROUP, false);
+ verifySuspendGroup(order, orchestrator, DummyServiceMonitor.TEST1_NODE_GROUP, false);
order.verifyNoMoreInteractions();
}
@@ -296,18 +297,18 @@ public class OrchestratorImplTest {
OrchestratorImpl orchestrator = spy(this.orchestrator);
Throwable supensionFailure = new HostStateChangeDeniedException(
- DummyInstanceLookupService.TEST6_HOST_NAME,
+ DummyServiceMonitor.TEST6_HOST_NAME,
"some-constraint",
"error message");
- doThrow(supensionFailure).when(orchestrator).suspendGroup(any(), eq(DummyInstanceLookupService.TEST6_NODE_GROUP));
+ doThrow(supensionFailure).when(orchestrator).suspendGroup(any(), eq(DummyServiceMonitor.TEST6_NODE_GROUP));
try {
orchestrator.suspendAll(
new HostName("parentHostname"),
Arrays.asList(
- DummyInstanceLookupService.TEST1_HOST_NAME,
- DummyInstanceLookupService.TEST3_HOST_NAME,
- DummyInstanceLookupService.TEST6_HOST_NAME));
+ DummyServiceMonitor.TEST1_HOST_NAME,
+ DummyServiceMonitor.TEST3_HOST_NAME,
+ DummyServiceMonitor.TEST6_HOST_NAME));
fail();
} catch (BatchHostStateChangeDeniedException e) {
assertEquals("Failed to suspend NodeGroup{application=tenant-id-3:application-instance-3:prod:utopia-1:default, " +
@@ -318,8 +319,8 @@ public class OrchestratorImplTest {
}
InOrder order = inOrder(orchestrator);
- order.verify(orchestrator).suspendGroup(any(), eq(DummyInstanceLookupService.TEST3_NODE_GROUP));
- order.verify(orchestrator).suspendGroup(any(), eq(DummyInstanceLookupService.TEST6_NODE_GROUP));
+ order.verify(orchestrator).suspendGroup(any(), eq(DummyServiceMonitor.TEST3_NODE_GROUP));
+ order.verify(orchestrator).suspendGroup(any(), eq(DummyServiceMonitor.TEST6_NODE_GROUP));
order.verifyNoMoreInteractions();
}
@@ -331,14 +332,14 @@ public class OrchestratorImplTest {
var policy = mock(HostedVespaPolicy.class);
var zookeeperStatusService = mock(ZkStatusService.class);
- var instanceLookupService = mock(InstanceLookupService.class);
+ var serviceMonitor = mock(ServiceMonitor.class);
var applicationInstance = mock(ApplicationInstance.class);
var clusterControllerClientFactory = mock(ClusterControllerClientFactory.class);
var clock = new ManualClock();
var applicationApiFactory = mock(ApplicationApiFactory.class);
var lock = mock(ApplicationLock.class);
- when(instanceLookupService.findInstanceByHost(any())).thenReturn(Optional.of(applicationInstance));
+ when(serviceMonitor.getApplication(any(HostName.class))).thenReturn(Optional.of(applicationInstance));
when(applicationInstance.reference()).thenReturn(applicationInstanceReference);
when(zookeeperStatusService.lockApplication(any(), any())).thenReturn(lock);
when(lock.getApplicationInstanceStatus()).thenReturn(NO_REMARKS);
@@ -347,7 +348,7 @@ public class OrchestratorImplTest {
policy,
clusterControllerClientFactory,
zookeeperStatusService,
- instanceLookupService,
+ serviceMonitor,
20,
clock,
applicationApiFactory,
@@ -370,7 +371,7 @@ public class OrchestratorImplTest {
verify(applicationApiFactory, times(2)).create(any(), any(), any());
verify(policy, times(2)).grantSuspensionRequest(any(), any());
- verify(instanceLookupService, atLeastOnce()).findInstanceByHost(any());
+ verify(serviceMonitor, atLeastOnce()).getApplication(any(HostName.class));
verify(lock, times(2)).getApplicationInstanceStatus();
// Each zookeeperStatusService that is created, is closed.
@@ -382,7 +383,7 @@ public class OrchestratorImplTest {
clusterControllerClientFactory,
zookeeperStatusService,
lock,
- instanceLookupService,
+ serviceMonitor,
applicationApiFactory);
}
@@ -415,13 +416,14 @@ public class OrchestratorImplTest {
hostName,
ServiceStatus.NOT_CHECKED)))));
- InstanceLookupService lookupService = new ServiceMonitorInstanceLookupService(
- new ServiceModelCache(() -> new ServiceModel(Map.of(reference, applicationInstance)), new TestTimer()));
+ ServiceMonitor serviceMonitor = new ServiceModelCache(
+ () -> new ServiceModel(Map.of(reference, applicationInstance)),
+ new TestTimer());
orchestrator = new OrchestratorImpl(new HostedVespaPolicy(new HostedVespaClusterPolicy(), clusterControllerClientFactory, applicationApiFactory),
clusterControllerClientFactory,
statusService,
- lookupService,
+ serviceMonitor,
0,
new ManualClock(),
applicationApiFactory,
@@ -438,8 +440,8 @@ public class OrchestratorImplTest {
}
private boolean isInMaintenance(ApplicationId appId, HostName hostName) throws ApplicationIdNotFoundException {
- for (ApplicationInstance app : DummyInstanceLookupService.getApplications()) {
- if (app.reference().equals(OrchestratorUtil.toApplicationInstanceReference(appId, new DummyInstanceLookupService()))) {
+ for (ApplicationInstance app : DummyServiceMonitor.getApplications()) {
+ if (app.reference().equals(OrchestratorUtil.toApplicationInstanceReference(appId, new DummyServiceMonitor()))) {
return clustercontroller.isInMaintenance(app, hostName);
}
}
diff --git a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/OrchestratorUtilTest.java b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/OrchestratorUtilTest.java
index 230048f505d..76fbb5c9fe2 100644
--- a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/OrchestratorUtilTest.java
+++ b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/OrchestratorUtilTest.java
@@ -39,14 +39,14 @@ public class OrchestratorUtilTest {
public void applicationid_conversion_are_symmetric() throws Exception {
// From appId to appRef and back
- ApplicationInstanceReference appRef = OrchestratorUtil.toApplicationInstanceReference(APPID_1, new DummyInstanceLookupService());
+ ApplicationInstanceReference appRef = OrchestratorUtil.toApplicationInstanceReference(APPID_1, new DummyServiceMonitor());
ApplicationId appIdRoundTrip = OrchestratorUtil.toApplicationId(appRef);
Assert.assertEquals(APPID_1, appIdRoundTrip);
// From appRef to appId and back
ApplicationId appId = OrchestratorUtil.toApplicationId(APPREF_1);
- ApplicationInstanceReference appRefRoundTrip = OrchestratorUtil.toApplicationInstanceReference(appId, new DummyInstanceLookupService());
+ ApplicationInstanceReference appRefRoundTrip = OrchestratorUtil.toApplicationInstanceReference(appId, new DummyServiceMonitor());
Assert.assertEquals(APPREF_1, appRefRoundTrip);
}
diff --git a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/controller/ClusterControllerClientFactoryMock.java b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/controller/ClusterControllerClientFactoryMock.java
index 5c5ee7d2260..502e42481aa 100644
--- a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/controller/ClusterControllerClientFactoryMock.java
+++ b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/controller/ClusterControllerClientFactoryMock.java
@@ -4,7 +4,7 @@ package com.yahoo.vespa.orchestrator.controller;
import com.yahoo.vespa.applicationmodel.ApplicationInstance;
import com.yahoo.vespa.applicationmodel.ClusterId;
import com.yahoo.vespa.applicationmodel.HostName;
-import com.yahoo.vespa.orchestrator.DummyInstanceLookupService;
+import com.yahoo.vespa.orchestrator.DummyServiceMonitor;
import com.yahoo.vespa.orchestrator.OrchestratorContext;
import com.yahoo.vespa.orchestrator.model.VespaModelUtil;
@@ -37,8 +37,8 @@ public class ClusterControllerClientFactoryMock implements ClusterControllerClie
}
public void setAllDummyNodesAsUp() {
- for (ApplicationInstance app : DummyInstanceLookupService.getApplications()) {
- Set<HostName> hosts = DummyInstanceLookupService.getContentHosts(app.reference());
+ for (ApplicationInstance app : DummyServiceMonitor.getApplications()) {
+ Set<HostName> hosts = DummyServiceMonitor.getContentHosts(app.reference());
for (HostName host : hosts) {
ClusterId clusterName = VespaModelUtil.getContentClusterName(app, host);
int storageNodeIndex = VespaModelUtil.getStorageNodeIndex(app, host);
diff --git a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/ModelTestUtils.java b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/ModelTestUtils.java
index 24a85bfa244..3d0746e5a36 100644
--- a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/ModelTestUtils.java
+++ b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/ModelTestUtils.java
@@ -21,15 +21,14 @@ import com.yahoo.vespa.orchestrator.OrchestrationException;
import com.yahoo.vespa.orchestrator.Orchestrator;
import com.yahoo.vespa.orchestrator.OrchestratorContext;
import com.yahoo.vespa.orchestrator.OrchestratorImpl;
-import com.yahoo.vespa.orchestrator.ServiceMonitorInstanceLookupService;
import com.yahoo.vespa.orchestrator.controller.ClusterControllerClientFactory;
import com.yahoo.vespa.orchestrator.controller.ClusterControllerClientFactoryMock;
import com.yahoo.vespa.orchestrator.policy.HostedVespaClusterPolicy;
import com.yahoo.vespa.orchestrator.policy.HostedVespaPolicy;
+import com.yahoo.vespa.orchestrator.status.ApplicationLock;
import com.yahoo.vespa.orchestrator.status.HostInfo;
import com.yahoo.vespa.orchestrator.status.HostInfos;
import com.yahoo.vespa.orchestrator.status.HostStatus;
-import com.yahoo.vespa.orchestrator.status.ApplicationLock;
import com.yahoo.vespa.orchestrator.status.StatusService;
import com.yahoo.vespa.orchestrator.status.ZkStatusService;
import com.yahoo.vespa.service.model.ServiceModelCache;
@@ -65,7 +64,7 @@ class ModelTestUtils {
private final Orchestrator orchestrator = new OrchestratorImpl(new HostedVespaPolicy(new HostedVespaClusterPolicy(), clusterControllerClientFactory, applicationApiFactory()),
clusterControllerClientFactory,
statusService,
- new ServiceMonitorInstanceLookupService(serviceMonitor),
+ serviceMonitor,
0,
new ManualClock(),
applicationApiFactory(),
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 cedddf19d9e..1fff8f976bb 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
@@ -162,7 +162,7 @@ public class ApplicationSuspensionResourceTest {
" <component id=\"com.yahoo.vespa.flags.InMemoryFlagSource\" bundle=\"flags\" />\n" +
" <component id=\"com.yahoo.vespa.curator.mock.MockCurator\" bundle=\"zkfacade\" />\n" +
" <component id=\"com.yahoo.vespa.orchestrator.status.ZkStatusService\" bundle=\"orchestrator\" />\n" +
- " <component id=\"com.yahoo.vespa.orchestrator.DummyInstanceLookupService\" bundle=\"orchestrator\" />\n" +
+ " <component id=\"com.yahoo.vespa.orchestrator.DummyServiceMonitor\" bundle=\"orchestrator\" />\n" +
" <component id=\"com.yahoo.vespa.orchestrator.OrchestratorImpl\" bundle=\"orchestrator\" />\n" +
" <component id=\"com.yahoo.vespa.orchestrator.controller.ClusterControllerClientFactoryMock\" bundle=\"orchestrator\" />\n" +
"\n" +
diff --git a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/resources/HostResourceTest.java b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/resources/HostResourceTest.java
index 9133a3bbf2c..b620b0798be 100644
--- a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/resources/HostResourceTest.java
+++ b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/resources/HostResourceTest.java
@@ -21,7 +21,6 @@ import com.yahoo.vespa.orchestrator.BatchHostNameNotFoundException;
import com.yahoo.vespa.orchestrator.BatchInternalErrorException;
import com.yahoo.vespa.orchestrator.Host;
import com.yahoo.vespa.orchestrator.HostNameNotFoundException;
-import com.yahoo.vespa.orchestrator.InstanceLookupService;
import com.yahoo.vespa.orchestrator.OrchestrationException;
import com.yahoo.vespa.orchestrator.Orchestrator;
import com.yahoo.vespa.orchestrator.OrchestratorContext;
@@ -37,11 +36,13 @@ import com.yahoo.vespa.orchestrator.restapi.wire.GetHostResponse;
import com.yahoo.vespa.orchestrator.restapi.wire.PatchHostRequest;
import com.yahoo.vespa.orchestrator.restapi.wire.PatchHostResponse;
import com.yahoo.vespa.orchestrator.restapi.wire.UpdateHostResponse;
+import com.yahoo.vespa.orchestrator.status.ApplicationLock;
import com.yahoo.vespa.orchestrator.status.HostInfo;
import com.yahoo.vespa.orchestrator.status.HostStatus;
-import com.yahoo.vespa.orchestrator.status.ApplicationLock;
import com.yahoo.vespa.orchestrator.status.StatusService;
import com.yahoo.vespa.orchestrator.status.ZkStatusService;
+import com.yahoo.vespa.service.monitor.ServiceModel;
+import com.yahoo.vespa.service.monitor.ServiceMonitor;
import org.junit.Before;
import org.junit.Test;
@@ -56,8 +57,8 @@ import java.time.Instant;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
+import java.util.Map;
import java.util.Optional;
-import java.util.Set;
import static com.yahoo.vespa.orchestrator.TestUtil.makeServiceClusterSet;
import static org.junit.Assert.assertEquals;
@@ -82,9 +83,9 @@ public class HostResourceTest {
new MockCurator(), mock(Metric.class), new TestTimer());
private static final ApplicationApiFactory applicationApiFactory = new ApplicationApiFactory(3);
- private static final InstanceLookupService mockInstanceLookupService = mock(InstanceLookupService.class);
+ private static final ServiceMonitor serviceMonitor = mock(ServiceMonitor.class);
static {
- when(mockInstanceLookupService.findInstanceByHost(any()))
+ when(serviceMonitor.getApplication(any(HostName.class)))
.thenReturn(Optional.of(
new ApplicationInstance(
TENANT_ID,
@@ -94,26 +95,12 @@ public class HostResourceTest {
private final InMemoryFlagSource flagSource = new InMemoryFlagSource();
- private static final InstanceLookupService alwaysEmptyInstanceLookUpService = new InstanceLookupService() {
- @Override
- public Optional<ApplicationInstance> findInstanceById(
- final ApplicationInstanceReference applicationInstanceReference) {
- return Optional.empty();
- }
-
- @Override
- public Optional<ApplicationInstance> findInstanceByHost(final HostName hostName) {
- return Optional.empty();
- }
-
- @Override
- public Set<ApplicationInstanceReference> knownInstances() {
- return Collections.emptySet();
- }
+ private static final ServiceMonitor alwaysEmptyServiceMonitor = new ServiceMonitor() {
+ private final ServiceModel emptyServiceModel = new ServiceModel(Map.of());
@Override
- public Optional<ApplicationInstance> findInstancePossiblyNarrowedToHost(HostName hostname) {
- return Optional.empty();
+ public ServiceModel getServiceModelSnapshot() {
+ return emptyServiceModel;
}
};
@@ -141,7 +128,7 @@ public class HostResourceTest {
private final OrchestratorImpl alwaysAllowOrchestrator = new OrchestratorImpl(
new AlwaysAllowPolicy(),
new ClusterControllerClientFactoryMock(),
- EVERY_HOST_IS_UP_HOST_STATUS_SERVICE, mockInstanceLookupService,
+ EVERY_HOST_IS_UP_HOST_STATUS_SERVICE, serviceMonitor,
SERVICE_MONITOR_CONVERGENCE_LATENCY_SECONDS,
clock,
applicationApiFactory,
@@ -150,7 +137,7 @@ public class HostResourceTest {
private final OrchestratorImpl hostNotFoundOrchestrator = new OrchestratorImpl(
new AlwaysAllowPolicy(),
new ClusterControllerClientFactoryMock(),
- EVERY_HOST_IS_UP_HOST_STATUS_SERVICE, alwaysEmptyInstanceLookUpService,
+ EVERY_HOST_IS_UP_HOST_STATUS_SERVICE, alwaysEmptyServiceMonitor,
SERVICE_MONITOR_CONVERGENCE_LATENCY_SECONDS,
clock,
applicationApiFactory,
@@ -253,7 +240,7 @@ public class HostResourceTest {
final OrchestratorImpl alwaysRejectResolver = new OrchestratorImpl(
new AlwaysFailPolicy(),
new ClusterControllerClientFactoryMock(),
- EVERY_HOST_IS_UP_HOST_STATUS_SERVICE,mockInstanceLookupService,
+ EVERY_HOST_IS_UP_HOST_STATUS_SERVICE, serviceMonitor,
SERVICE_MONITOR_CONVERGENCE_LATENCY_SECONDS,
clock,
applicationApiFactory,
@@ -274,7 +261,7 @@ public class HostResourceTest {
new AlwaysFailPolicy(),
new ClusterControllerClientFactoryMock(),
EVERY_HOST_IS_UP_HOST_STATUS_SERVICE,
- mockInstanceLookupService,
+ serviceMonitor,
SERVICE_MONITOR_CONVERGENCE_LATENCY_SECONDS,
clock,
applicationApiFactory,