diff options
author | Valerij Fredriksen <valerij92@gmail.com> | 2019-06-07 19:42:18 +0200 |
---|---|---|
committer | Valerij Fredriksen <valerij92@gmail.com> | 2019-06-07 20:16:36 +0200 |
commit | 22ee83497950a29b71652adc8dd5d3551d839241 (patch) | |
tree | 575c1a0a61e20c2f1003f410aa46bb5462eeaadd /service-monitor | |
parent | 18664b4d1f2f7d8f4e16328d645a5c39aaad911e (diff) |
Simplify ApplicationInstanceGenerator
Diffstat (limited to 'service-monitor')
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 |