summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValerij Fredriksen <valerij92@gmail.com>2019-06-07 19:42:18 +0200
committerValerij Fredriksen <valerij92@gmail.com>2019-06-07 20:16:36 +0200
commit22ee83497950a29b71652adc8dd5d3551d839241 (patch)
tree575c1a0a61e20c2f1003f410aa46bb5462eeaadd
parent18664b4d1f2f7d8f4e16328d645a5c39aaad911e (diff)
Simplify ApplicationInstanceGenerator
-rw-r--r--service-monitor/src/main/java/com/yahoo/vespa/service/model/ApplicationInstanceGenerator.java17
-rw-r--r--service-monitor/src/test/java/com/yahoo/vespa/service/model/ApplicationInstanceGeneratorTest.java77
2 files changed, 2 insertions, 92 deletions
diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/model/ApplicationInstanceGenerator.java b/service-monitor/src/main/java/com/yahoo/vespa/service/model/ApplicationInstanceGenerator.java
index e535aff8b46..5cc2d538c24 100644
--- a/service-monitor/src/main/java/com/yahoo/vespa/service/model/ApplicationInstanceGenerator.java
+++ b/service-monitor/src/main/java/com/yahoo/vespa/service/model/ApplicationInstanceGenerator.java
@@ -4,7 +4,6 @@ package com.yahoo.vespa.service.model;
import com.yahoo.config.model.api.ApplicationInfo;
import com.yahoo.config.model.api.HostInfo;
import com.yahoo.config.model.api.ServiceInfo;
-import com.yahoo.config.model.api.container.ContainerServiceType;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.Zone;
import com.yahoo.vespa.applicationmodel.ApplicationInstance;
@@ -19,7 +18,6 @@ import com.yahoo.vespa.applicationmodel.ServiceStatusInfo;
import com.yahoo.vespa.applicationmodel.ServiceType;
import com.yahoo.vespa.applicationmodel.TenantId;
import com.yahoo.vespa.service.duper.ConfigServerApplication;
-import com.yahoo.vespa.service.duper.ZoneApplication;
import com.yahoo.vespa.service.monitor.ServiceId;
import com.yahoo.vespa.service.monitor.ServiceStatusProvider;
@@ -56,20 +54,9 @@ public class ApplicationInstanceGenerator {
for (HostInfo host : applicationInfo.getModel().getHosts()) {
HostName hostName = new HostName(host.getHostname());
- boolean isTenantHost =
- applicationInfo.getApplicationId().equals(ZoneApplication.getApplicationId()) &&
- host.getServices().stream().anyMatch(serviceInfo ->
- ZoneApplication.isNodeAdminServiceInfo(applicationInfo.getApplicationId(), serviceInfo));
-
for (ServiceInfo serviceInfo : host.getServices()) {
ServiceClusterKey serviceClusterKey = toServiceClusterKey(serviceInfo);
- if (isTenantHost && !ZoneApplication.isNodeAdminServiceInfo(applicationInfo.getApplicationId(), serviceInfo)) {
- // A tenant host only runs the host-admin service, even though the model contains a bunch of
- // standard services like config-sentinel and metrics proxy.
- continue;
- }
-
ServiceInstance serviceInstance =
toServiceInstance(
applicationInfo.getApplicationId(),
@@ -78,9 +65,7 @@ public class ApplicationInstanceGenerator {
hostName,
serviceStatusProvider);
- if (!groupedServiceInstances.containsKey(serviceClusterKey)) {
- groupedServiceInstances.put(serviceClusterKey, new HashSet<>());
- }
+ groupedServiceInstances.putIfAbsent(serviceClusterKey, new HashSet<>());
groupedServiceInstances.get(serviceClusterKey).add(serviceInstance);
}
}
diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/model/ApplicationInstanceGeneratorTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/model/ApplicationInstanceGeneratorTest.java
index e182c9d6468..4810f29b28f 100644
--- a/service-monitor/src/test/java/com/yahoo/vespa/service/model/ApplicationInstanceGeneratorTest.java
+++ b/service-monitor/src/test/java/com/yahoo/vespa/service/model/ApplicationInstanceGeneratorTest.java
@@ -2,32 +2,19 @@
package com.yahoo.vespa.service.model;
import com.yahoo.config.model.api.ApplicationInfo;
-import com.yahoo.config.model.api.HostInfo;
-import com.yahoo.config.model.api.Model;
-import com.yahoo.config.model.api.ServiceInfo;
-import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.HostName;
-import com.yahoo.config.provision.RegionName;
import com.yahoo.config.provision.Zone;
import com.yahoo.vespa.applicationmodel.ApplicationInstance;
-import com.yahoo.vespa.applicationmodel.ClusterId;
-import com.yahoo.vespa.applicationmodel.ServiceCluster;
import com.yahoo.vespa.applicationmodel.ServiceStatus;
import com.yahoo.vespa.applicationmodel.ServiceStatusInfo;
import com.yahoo.vespa.service.duper.ConfigServerApplication;
-import com.yahoo.vespa.service.duper.ZoneApplication;
import com.yahoo.vespa.service.monitor.ServiceStatusProvider;
import org.junit.Test;
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.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
@@ -37,10 +24,7 @@ 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";
- private static final List<String> configServerList = Stream.of(
- configServer1,
- configServer2,
- configServer3).collect(Collectors.toList());
+ private static final List<String> configServerList = List.of(configServer1, configServer2, configServer3);
private static final ConfigServerApplication configServerApplication = new ConfigServerApplication();
private final ServiceStatusProvider statusProvider = mock(ServiceStatusProvider.class);
@@ -84,63 +68,4 @@ public class ApplicationInstanceGeneratorTest {
.hostName()
.toString()));
}
-
- @Test
- public void verifyOnlyNodeAdminServiceIsLeft() {
- when(statusProvider.getStatus(any(), any(), any(), any())).thenReturn(new ServiceStatusInfo(ServiceStatus.NOT_CHECKED));
-
- String host1 = "host1";
- String host2 = "host2";
-
- List<ServiceInfo> serviceInfos1 = List.of(
- makeServiceInfo("metrics", "metricsproxy-container", host1)
- );
-
- List<ServiceInfo> serviceInfos2 = List.of(
- makeServiceInfo("metrics", "metricsproxy-container", host2),
- makeServiceInfo(ZoneApplication.getNodeAdminClusterId().s(),
- ZoneApplication.getNodeAdminServiceType().s(), host2)
- );
-
- List<HostInfo> hostInfos = List.of(
- new HostInfo(host1, serviceInfos1),
- new HostInfo(host2, serviceInfos2)
- );
-
- Model model = mock(Model.class);
- when(model.getHosts()).thenReturn(hostInfos);
-
- ApplicationInfo applicationInfo = new ApplicationInfo(ZoneApplication.getApplicationId(), 0, model);
-
- Zone zone = mock(Zone.class);
- when(zone.environment()).thenReturn(Environment.prod);
- when(zone.region()).thenReturn(RegionName.from("us-east-1"));
-
- ApplicationInstanceGenerator generator = new ApplicationInstanceGenerator(applicationInfo, zone);
- ApplicationInstance applicationInstance = generator.makeApplicationInstance(statusProvider);
-
- Map<ClusterId, List<ServiceCluster>> serviceClusters =
- applicationInstance.serviceClusters().stream().collect(Collectors.groupingBy(ServiceCluster::clusterId));
- assertEquals(2, serviceClusters.size());
- List<ServiceCluster> nodeAdminClusters = serviceClusters.get(ZoneApplication.getNodeAdminClusterId());
- assertNotNull(nodeAdminClusters);
- assertEquals(1, nodeAdminClusters.size());
- ServiceCluster nodeAdminCluster = nodeAdminClusters.iterator().next();
- assertEquals(1, nodeAdminCluster.serviceInstances().size());
- assertEquals(host2, nodeAdminCluster.serviceInstances().iterator().next().hostName().s());
-
- List<ServiceCluster> metricsClusters = serviceClusters.get(new ClusterId("metrics"));
- assertNotNull(metricsClusters);
- assertEquals(1, metricsClusters.size());
- ServiceCluster metricsCluster = metricsClusters.iterator().next();
-
- // The metrics service on the node admin host is ignored
- assertEquals(1, metricsCluster.serviceInstances().size());
- assertEquals(host1, metricsCluster.serviceInstances().iterator().next().hostName().s());
- }
-
- private ServiceInfo makeServiceInfo(String clusterId, String serviceType, String hostname) {
- var properties = Map.of(ApplicationInstanceGenerator.CLUSTER_ID_PROPERTY_NAME, clusterId);
- return new ServiceInfo("servicename", serviceType, List.of(), properties, "configid", hostname);
- }
} \ No newline at end of file