summaryrefslogtreecommitdiffstats
path: root/service-monitor/src/test/java
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@oath.com>2018-06-06 13:13:54 +0200
committerHåkon Hallingstad <hakon@oath.com>2018-06-08 09:22:02 +0200
commit76ec2b9c26c7dfbafa84e38459b47bf33623ea3a (patch)
tree408d30b2f51af2edd72c1bbffcd791dd2c508cc8 /service-monitor/src/test/java
parent82b8b6fbe344e0b9582434a83a1b2df5eab31bf6 (diff)
Revert "Revert "Use HTTP and remove Athenz injection""
Diffstat (limited to 'service-monitor/src/test/java')
-rw-r--r--service-monitor/src/test/java/com/yahoo/vespa/service/monitor/application/ApplicationInstanceGeneratorTest.java (renamed from service-monitor/src/test/java/com/yahoo/vespa/service/monitor/application/ConfigServerAppGeneratorTest.java)18
-rw-r--r--service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/ConfigserverUtil.java44
-rw-r--r--service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/DuperModelTest.java40
-rw-r--r--service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/ModelGeneratorTest.java45
-rw-r--r--service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/SuperModelListenerImplTest.java13
-rw-r--r--service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/UnionMonitorManagerTest.java97
-rw-r--r--service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/health/ApplicationHealthMonitorTest.java24
-rw-r--r--service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/health/HealthMonitorManagerTest.java49
-rw-r--r--service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/health/HealthMonitorTest.java21
-rw-r--r--service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/slobrok/SlobrokMonitorManagerImplTest.java11
10 files changed, 239 insertions, 123 deletions
diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/application/ConfigServerAppGeneratorTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/application/ApplicationInstanceGeneratorTest.java
index 58f99786017..e1d9b728bf8 100644
--- a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/application/ConfigServerAppGeneratorTest.java
+++ b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/application/ApplicationInstanceGeneratorTest.java
@@ -1,22 +1,27 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.service.monitor.application;
+import com.yahoo.cloud.config.ConfigserverConfig;
+import com.yahoo.config.model.api.ApplicationInfo;
+import com.yahoo.config.provision.Zone;
import com.yahoo.vespa.applicationmodel.ApplicationInstance;
import com.yahoo.vespa.applicationmodel.ServiceStatus;
import com.yahoo.vespa.service.monitor.ServiceStatusProvider;
+import com.yahoo.vespa.service.monitor.internal.ConfigserverUtil;
import org.junit.Test;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
+import static com.yahoo.vespa.service.monitor.application.ConfigServerApplication.CONFIG_SERVER_APPLICATION;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-public class ConfigServerAppGeneratorTest {
+public class ApplicationInstanceGeneratorTest {
private static final String configServer1 = "cfg1.yahoo.com";
private static final String configServer2 = "cfg2.yahoo.com";
private static final String configServer3 = "cfg3.yahoo.com";
@@ -28,9 +33,16 @@ public class ConfigServerAppGeneratorTest {
private final ServiceStatusProvider statusProvider = mock(ServiceStatusProvider.class);
@Test
- public void toApplicationInstance() throws Exception {
+ public void toApplicationInstance() {
when(statusProvider.getStatus(any(), any(), any(), any())).thenReturn(ServiceStatus.NOT_CHECKED);
- ApplicationInstance applicationInstance = new ConfigServerAppGenerator(configServerList)
+ ConfigserverConfig config = ConfigserverUtil.create(
+ true,
+ configServer1,
+ configServer2,
+ configServer3);
+ Zone zone = mock(Zone.class);
+ ApplicationInfo configServer = CONFIG_SERVER_APPLICATION.makeApplicationInfo(config);
+ ApplicationInstance applicationInstance = new ApplicationInstanceGenerator(configServer, zone)
.makeApplicationInstance(statusProvider);
assertEquals(
diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/ConfigserverUtil.java b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/ConfigserverUtil.java
new file mode 100644
index 00000000000..68a55d41b19
--- /dev/null
+++ b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/ConfigserverUtil.java
@@ -0,0 +1,44 @@
+// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.vespa.service.monitor.internal;
+
+import com.yahoo.cloud.config.ConfigserverConfig;
+import com.yahoo.config.model.api.ApplicationInfo;
+import com.yahoo.vespa.service.monitor.application.ConfigServerApplication;
+
+/**
+ * @author hakon
+ */
+public class ConfigserverUtil {
+ /** Create a ConfigserverConfig with the given settings. */
+ public static ConfigserverConfig create(
+ boolean nodeAdminInContainer,
+ String configServerHostname1,
+ String configServerHostname2,
+ String configServerHostname3) {
+ return new ConfigserverConfig(
+ new ConfigserverConfig.Builder()
+ .nodeAdminInContainer(nodeAdminInContainer)
+ .zookeeperserver(new ConfigserverConfig.Zookeeperserver.Builder().hostname(configServerHostname1).port(1))
+ .zookeeperserver(new ConfigserverConfig.Zookeeperserver.Builder().hostname(configServerHostname2).port(2))
+ .zookeeperserver(new ConfigserverConfig.Zookeeperserver.Builder().hostname(configServerHostname3).port(3)));
+ }
+
+ public static ConfigserverConfig createExampleConfigserverConfig(boolean nodeAdminInContainer) {
+ return create(nodeAdminInContainer, "cfg1", "cfg2", "cfg3");
+ }
+
+ public static ApplicationInfo makeConfigServerApplicationInfo(
+ String configServerHostname1,
+ String configServerHostname2,
+ String configServerHostname3) {
+ return ConfigServerApplication.CONFIG_SERVER_APPLICATION.makeApplicationInfo(create(
+ true,
+ configServerHostname1,
+ configServerHostname2,
+ configServerHostname3));
+ }
+
+ public static ApplicationInfo makeExampleConfigServer() {
+ return makeConfigServerApplicationInfo("cfg1", "cfg2", "cfg3");
+ }
+}
diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/DuperModelTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/DuperModelTest.java
new file mode 100644
index 00000000000..0a68b4b0ff7
--- /dev/null
+++ b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/DuperModelTest.java
@@ -0,0 +1,40 @@
+// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.vespa.service.monitor.internal;
+
+import com.yahoo.cloud.config.ConfigserverConfig;
+import com.yahoo.config.model.api.ApplicationInfo;
+import com.yahoo.config.model.api.SuperModel;
+import com.yahoo.vespa.applicationmodel.ServiceStatus;
+import com.yahoo.vespa.service.monitor.ServiceStatusProvider;
+import com.yahoo.vespa.service.monitor.application.ConfigServerApplication;
+import org.junit.Test;
+
+import java.util.Collections;
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertSame;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+/**
+ * @author hakon
+ */
+public class DuperModelTest {
+ private final ServiceStatusProvider statusProvider = mock(ServiceStatusProvider.class);
+
+ @Test
+ public void toApplicationInstance() {
+ when(statusProvider.getStatus(any(), any(), any(), any())).thenReturn(ServiceStatus.NOT_CHECKED);
+ ConfigserverConfig config = ConfigserverUtil.createExampleConfigserverConfig(true);
+ DuperModel duperModel = new DuperModel(config);
+ SuperModel superModel = mock(SuperModel.class);
+ ApplicationInfo superModelApplicationInfo = mock(ApplicationInfo.class);
+ when(superModel.getAllApplicationInfos()).thenReturn(Collections.singletonList(superModelApplicationInfo));
+ List<ApplicationInfo> applicationInfos = duperModel.getApplicationInfos(superModel);
+ assertEquals(2, applicationInfos.size());
+ assertEquals(ConfigServerApplication.CONFIG_SERVER_APPLICATION.getApplicationId(), applicationInfos.get(0).getApplicationId());
+ assertSame(superModelApplicationInfo, applicationInfos.get(1));
+ }
+}
diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/ModelGeneratorTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/ModelGeneratorTest.java
index a21691ee4d0..07cfa124434 100644
--- a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/ModelGeneratorTest.java
+++ b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/ModelGeneratorTest.java
@@ -1,6 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.service.monitor.internal;
+import com.yahoo.cloud.config.ConfigserverConfig;
import com.yahoo.config.model.api.SuperModel;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.RegionName;
@@ -15,13 +16,9 @@ import com.yahoo.vespa.service.monitor.application.ConfigServerApplication;
import com.yahoo.vespa.service.monitor.internal.slobrok.SlobrokMonitorManagerImpl;
import org.junit.Test;
-import java.util.Collections;
import java.util.Iterator;
-import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
import static org.junit.Assert.assertEquals;
import static org.mockito.Matchers.any;
@@ -35,13 +32,13 @@ public class ModelGeneratorTest {
private final int PORT = 2;
@Test
- public void toApplicationModelWithConfigServerApplication() throws Exception {
- SuperModel superModel =
- ExampleModel.createExampleSuperModelWithOneRpcPort(HOSTNAME, PORT);
+ public void toApplicationModel() throws Exception {
+ SuperModel superModel = ExampleModel.createExampleSuperModelWithOneRpcPort(HOSTNAME, PORT);
- List<String> configServerHosts = Stream.of("cfg1", "cfg2", "cfg3")
- .collect(Collectors.toList());
- ModelGenerator modelGenerator = new ModelGenerator(configServerHosts);
+ ConfigserverConfig config = ConfigserverUtil.create(
+ true, "cfg1", "cfg2", "cfg3");
+ DuperModel duperModel = new DuperModel(config);
+ ModelGenerator modelGenerator = new ModelGenerator();
Zone zone = new Zone(Environment.from(ENVIRONMENT), RegionName.from(REGION));
@@ -51,7 +48,7 @@ public class ModelGeneratorTest {
ServiceModel serviceModel =
modelGenerator.toServiceModel(
- superModel,
+ duperModel.getApplicationInfos(superModel),
zone,
slobrokMonitorManager);
@@ -78,32 +75,6 @@ public class ModelGeneratorTest {
}
}
- @Test
- public void toApplicationModel() throws Exception {
- SuperModel superModel =
- ExampleModel.createExampleSuperModelWithOneRpcPort(HOSTNAME, PORT);
- ModelGenerator modelGenerator = new ModelGenerator(Collections.emptyList());
-
- Zone zone = new Zone(Environment.from(ENVIRONMENT), RegionName.from(REGION));
-
- SlobrokMonitorManagerImpl slobrokMonitorManager = mock(SlobrokMonitorManagerImpl.class);
- when(slobrokMonitorManager.getStatus(any(), any(), any(), any()))
- .thenReturn(ServiceStatus.UP);
-
- ServiceModel serviceModel =
- modelGenerator.toServiceModel(
- superModel,
- zone,
- slobrokMonitorManager);
-
- Map<ApplicationInstanceReference,
- ApplicationInstance> applicationInstances =
- serviceModel.getAllApplicationInstances();
-
- assertEquals(1, applicationInstances.size());
- verifyOtherApplication(applicationInstances.values().iterator().next());
- }
-
private void verifyOtherApplication(ApplicationInstance applicationInstance) {
assertEquals(String.format("%s:%s:%s:%s:%s",
ExampleModel.TENANT,
diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/SuperModelListenerImplTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/SuperModelListenerImplTest.java
index 83bad0ddb2a..eb6d6d583f7 100644
--- a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/SuperModelListenerImplTest.java
+++ b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/SuperModelListenerImplTest.java
@@ -14,6 +14,7 @@ import java.util.stream.Collectors;
import java.util.stream.Stream;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -22,11 +23,13 @@ public class SuperModelListenerImplTest {
public void sanityCheck() {
SlobrokMonitorManagerImpl slobrokMonitorManager = mock(SlobrokMonitorManagerImpl.class);
ServiceMonitorMetrics metrics = mock(ServiceMonitorMetrics.class);
+ DuperModel duperModel = mock(DuperModel.class);
ModelGenerator modelGenerator = mock(ModelGenerator.class);
Zone zone = mock(Zone.class);
SuperModelListenerImpl listener = new SuperModelListenerImpl(
slobrokMonitorManager,
metrics,
+ duperModel,
modelGenerator,
zone);
@@ -38,13 +41,15 @@ public class SuperModelListenerImplTest {
ApplicationInfo application2 = mock(ApplicationInfo.class);
List<ApplicationInfo> applications = Stream.of(application1, application2)
.collect(Collectors.toList());
- when(superModel.getAllApplicationInfos()).thenReturn(applications);
+ when(duperModel.getApplicationInfos(superModel)).thenReturn(applications);
listener.start(superModelProvider);
- verify(slobrokMonitorManager).applicationActivated(superModel, application1);
- verify(slobrokMonitorManager).applicationActivated(superModel, application2);
+ verify(duperModel, times(1)).getApplicationInfos(superModel);
+ verify(slobrokMonitorManager).applicationActivated(application1);
+ verify(slobrokMonitorManager).applicationActivated(application2);
ServiceModel serviceModel = listener.get();
- verify(modelGenerator).toServiceModel(superModel, zone, slobrokMonitorManager);
+ verify(duperModel, times(2)).getApplicationInfos(superModel);
+ verify(modelGenerator).toServiceModel(applications, zone, slobrokMonitorManager);
}
} \ No newline at end of file
diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/UnionMonitorManagerTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/UnionMonitorManagerTest.java
index b7c3ed8e1e1..79916e43712 100644
--- a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/UnionMonitorManagerTest.java
+++ b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/UnionMonitorManagerTest.java
@@ -1,95 +1,44 @@
// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.service.monitor.internal;
-import com.yahoo.cloud.config.ConfigserverConfig;
-import com.yahoo.config.provision.ApplicationId;
-import com.yahoo.vespa.applicationmodel.ClusterId;
import com.yahoo.vespa.applicationmodel.ConfigId;
-import com.yahoo.vespa.applicationmodel.ServiceType;
+import com.yahoo.vespa.applicationmodel.ServiceStatus;
import com.yahoo.vespa.service.monitor.internal.health.HealthMonitorManager;
import com.yahoo.vespa.service.monitor.internal.slobrok.SlobrokMonitorManagerImpl;
import org.junit.Test;
import static com.yahoo.vespa.applicationmodel.ClusterId.NODE_ADMIN;
+import static com.yahoo.vespa.applicationmodel.ServiceStatus.*;
+import static com.yahoo.vespa.applicationmodel.ServiceStatus.NOT_CHECKED;
+import static com.yahoo.vespa.applicationmodel.ServiceStatus.UP;
import static com.yahoo.vespa.applicationmodel.ServiceType.CONTAINER;
import static com.yahoo.vespa.service.monitor.application.ZoneApplication.ZONE_APPLICATION_ID;
+import static org.junit.Assert.assertSame;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
public class UnionMonitorManagerTest {
- @Test
- public void nodeAdminInContainer() {
- testWith(
- true,
- ZONE_APPLICATION_ID,
- NODE_ADMIN,
- CONTAINER,
- 1,
- 0);
- }
-
- @Test
- public void nodeAdminOutsideContainer() {
- boolean inContainer = false;
-
- // When nodeAdminInContainer is set, then only the node admin cluster should use health
- testWith(
- inContainer,
- ZONE_APPLICATION_ID,
- NODE_ADMIN,
- CONTAINER,
- 0,
- 1);
-
- testWith(
- inContainer,
- ApplicationId.fromSerializedForm("a:b:default"),
- NODE_ADMIN,
- CONTAINER,
- 1,
- 0);
+ private final SlobrokMonitorManagerImpl slobrokMonitorManager = mock(SlobrokMonitorManagerImpl.class);
+ private final HealthMonitorManager healthMonitorManager = mock(HealthMonitorManager.class);
- testWith(
- inContainer,
- ZONE_APPLICATION_ID,
- new ClusterId("foo"),
- CONTAINER,
- 1,
- 0);
+ private final UnionMonitorManager manager = new UnionMonitorManager(
+ slobrokMonitorManager,
+ healthMonitorManager);
- testWith(
- inContainer,
- ZONE_APPLICATION_ID,
- NODE_ADMIN,
- new ServiceType("foo"),
- 1,
- 0);
+ @Test
+ public void verifyHealthTakesPriority() {
+ testWith(UP, DOWN, UP);
+ testWith(NOT_CHECKED, DOWN, DOWN);
+ testWith(NOT_CHECKED, NOT_CHECKED, NOT_CHECKED);
}
- private void testWith(boolean nodeAdminInContainer,
- ApplicationId applicationId,
- ClusterId clusterId,
- ServiceType serviceType,
- int expectedSlobrokCalls,
- int expectedHealthCalls) {
- SlobrokMonitorManagerImpl slobrokMonitorManager = mock(SlobrokMonitorManagerImpl.class);
- HealthMonitorManager healthMonitorManager = mock(HealthMonitorManager.class);
-
- ConfigserverConfig.Builder builder = new ConfigserverConfig.Builder();
- builder.nodeAdminInContainer(nodeAdminInContainer);
- ConfigserverConfig config = new ConfigserverConfig(builder);
-
-
- UnionMonitorManager manager = new UnionMonitorManager(
- slobrokMonitorManager,
- healthMonitorManager,
- config);
-
- manager.getStatus(applicationId, clusterId, serviceType, new ConfigId("config-id"));
-
- verify(slobrokMonitorManager, times(expectedSlobrokCalls)).getStatus(any(), any(), any(), any());
- verify(healthMonitorManager, times(expectedHealthCalls)).getStatus(any(), any(), any(), any());
+ private void testWith(ServiceStatus healthStatus,
+ ServiceStatus slobrokStatus,
+ ServiceStatus expectedStatus) {
+ when(healthMonitorManager.getStatus(any(), any(), any(), any())).thenReturn(healthStatus);
+ when(slobrokMonitorManager.getStatus(any(), any(), any(), any())).thenReturn(slobrokStatus);
+ ServiceStatus status = manager.getStatus(ZONE_APPLICATION_ID, NODE_ADMIN, CONTAINER, new ConfigId("config-id"));
+ assertSame(expectedStatus, status);
}
} \ No newline at end of file
diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/health/ApplicationHealthMonitorTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/health/ApplicationHealthMonitorTest.java
new file mode 100644
index 00000000000..51b0503565f
--- /dev/null
+++ b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/health/ApplicationHealthMonitorTest.java
@@ -0,0 +1,24 @@
+// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.vespa.service.monitor.internal.health;
+
+import com.yahoo.vespa.applicationmodel.ServiceStatus;
+import com.yahoo.vespa.service.monitor.application.ConfigServerApplication;
+import com.yahoo.vespa.service.monitor.internal.ConfigserverUtil;
+import org.junit.Test;
+
+import static com.yahoo.vespa.applicationmodel.ServiceStatus.NOT_CHECKED;
+import static org.junit.Assert.assertEquals;
+
+public class ApplicationHealthMonitorTest {
+ @Test
+ public void sanityCheck() {
+ ApplicationHealthMonitor monitor = ApplicationHealthMonitor.startMonitoring(
+ ConfigserverUtil.makeExampleConfigServer());
+ ServiceStatus status = monitor.getStatus(
+ ConfigServerApplication.CONFIG_SERVER_APPLICATION.getApplicationId(),
+ ConfigServerApplication.CLUSTER_ID,
+ ConfigServerApplication.SERVICE_TYPE,
+ ConfigServerApplication.configIdFrom(0));
+ assertEquals(NOT_CHECKED, status);
+ }
+} \ No newline at end of file
diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/health/HealthMonitorManagerTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/health/HealthMonitorManagerTest.java
new file mode 100644
index 00000000000..97963393268
--- /dev/null
+++ b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/health/HealthMonitorManagerTest.java
@@ -0,0 +1,49 @@
+// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.vespa.service.monitor.internal.health;
+
+import com.yahoo.cloud.config.ConfigserverConfig;
+import com.yahoo.config.model.api.ApplicationInfo;
+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.service.monitor.application.ZoneApplication;
+import com.yahoo.vespa.service.monitor.internal.ConfigserverUtil;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class HealthMonitorManagerTest {
+ @Test
+ public void addRemove() {
+ ConfigserverConfig config = ConfigserverUtil.createExampleConfigserverConfig(true);
+ HealthMonitorManager manager = new HealthMonitorManager(config);
+ ApplicationInfo applicationInfo = ConfigserverUtil.makeExampleConfigServer();
+ manager.applicationActivated(applicationInfo);
+ manager.applicationRemoved(applicationInfo.getApplicationId());
+ }
+
+ @Test
+ public void withNodeAdmin() {
+ ConfigserverConfig config = ConfigserverUtil.createExampleConfigserverConfig(true);
+ HealthMonitorManager manager = new HealthMonitorManager(config);
+ ServiceStatus status = manager.getStatus(
+ ZoneApplication.ZONE_APPLICATION_ID,
+ ClusterId.NODE_ADMIN,
+ ServiceType.CONTAINER,
+ new ConfigId("config-id-1"));
+ assertEquals(ServiceStatus.NOT_CHECKED, status);
+ }
+
+ @Test
+ public void withHostAdmin() {
+ ConfigserverConfig config = ConfigserverUtil.createExampleConfigserverConfig(false);
+ HealthMonitorManager manager = new HealthMonitorManager(config);
+ ServiceStatus status = manager.getStatus(
+ ZoneApplication.ZONE_APPLICATION_ID,
+ ClusterId.NODE_ADMIN,
+ ServiceType.CONTAINER,
+ new ConfigId("config-id-1"));
+ assertEquals(ServiceStatus.UP, status);
+ }
+} \ No newline at end of file
diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/health/HealthMonitorTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/health/HealthMonitorTest.java
new file mode 100644
index 00000000000..cca1530ad97
--- /dev/null
+++ b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/health/HealthMonitorTest.java
@@ -0,0 +1,21 @@
+// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.vespa.service.monitor.internal.health;
+
+import com.yahoo.vespa.applicationmodel.ServiceStatus;
+import org.junit.Test;
+
+import java.net.MalformedURLException;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.mock;
+
+public class HealthMonitorTest {
+ @Test
+ public void basicTests() throws MalformedURLException {
+ HealthClient healthClient = mock(HealthClient.class);
+ try (HealthMonitor monitor = new HealthMonitor(healthClient)) {
+ monitor.startMonitoring();
+ assertEquals(ServiceStatus.NOT_CHECKED, monitor.getStatus());
+ }
+ }
+} \ No newline at end of file
diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/slobrok/SlobrokMonitorManagerImplTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/slobrok/SlobrokMonitorManagerImplTest.java
index 8e4443df83b..a567559980b 100644
--- a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/slobrok/SlobrokMonitorManagerImplTest.java
+++ b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/slobrok/SlobrokMonitorManagerImplTest.java
@@ -2,7 +2,7 @@
package com.yahoo.vespa.service.monitor.internal.slobrok;
import com.yahoo.config.model.api.ApplicationInfo;
-import com.yahoo.config.model.api.SuperModel;
+import com.yahoo.config.provision.ApplicationId;
import com.yahoo.vespa.applicationmodel.ClusterId;
import com.yahoo.vespa.applicationmodel.ConfigId;
import com.yahoo.vespa.applicationmodel.ServiceStatus;
@@ -28,18 +28,19 @@ public class SlobrokMonitorManagerImplTest {
private final SlobrokMonitorManagerImpl slobrokMonitorManager =
new SlobrokMonitorManagerImpl(slobrokMonitorFactory);
private final SlobrokMonitor slobrokMonitor = mock(SlobrokMonitor.class);
- private final SuperModel superModel = mock(SuperModel.class);
+ private final ApplicationId applicationId = ApplicationId.from("tenant", "app", "instance");
private final ApplicationInfo application = mock(ApplicationInfo.class);
private final ClusterId clusterId = new ClusterId("cluster-id");
@Before
public void setup() {
when(slobrokMonitorFactory.get()).thenReturn(slobrokMonitor);
+ when(application.getApplicationId()).thenReturn(applicationId);
}
@Test
public void testActivationOfApplication() {
- slobrokMonitorManager.applicationActivated(superModel, application);
+ slobrokMonitorManager.applicationActivated(application);
verify(slobrokMonitorFactory, times(1)).get();
}
@@ -51,14 +52,14 @@ public class SlobrokMonitorManagerImplTest {
@Test
public void testGetStatus_ApplicationInSlobrok() {
- slobrokMonitorManager.applicationActivated(superModel, application);
+ slobrokMonitorManager.applicationActivated(application);
when(slobrokMonitor.registeredInSlobrok("config.id")).thenReturn(true);
assertEquals(ServiceStatus.UP, getStatus("topleveldispatch"));
}
@Test
public void testGetStatus_ServiceNotInSlobrok() {
- slobrokMonitorManager.applicationActivated(superModel, application);
+ slobrokMonitorManager.applicationActivated(application);
when(slobrokMonitor.registeredInSlobrok("config.id")).thenReturn(false);
assertEquals(ServiceStatus.DOWN, getStatus("topleveldispatch"));
}