From 5c85415772637b3f160a8f3a26306053630fee96 Mon Sep 17 00:00:00 2001 From: HÃ¥kon Hallingstad Date: Sun, 22 Oct 2017 00:34:57 +0200 Subject: Remove status type parameter in application model classes --- .../applicationmodel/ApplicationInstance.java | 10 +-- .../vespa/applicationmodel/ServiceCluster.java | 10 +-- .../vespa/applicationmodel/ServiceInstance.java | 10 +-- .../vespa/applicationmodel/ServiceStatus.java | 11 +++ .../hosted/provision/maintenance/NodeFailer.java | 12 ++-- .../provision/testutils/ServiceMonitorStub.java | 32 ++++----- .../vespa/orchestrator/InstanceLookupService.java | 5 +- .../yahoo/vespa/orchestrator/OrchestratorImpl.java | 17 +++-- .../yahoo/vespa/orchestrator/OrchestratorUtil.java | 10 +-- .../ServiceMonitorInstanceLookupService.java | 13 ++-- .../orchestrator/model/ApplicationApiImpl.java | 15 ++-- .../vespa/orchestrator/model/ClusterApiImpl.java | 24 +++---- .../yahoo/vespa/orchestrator/model/NodeGroup.java | 7 +- .../vespa/orchestrator/model/StorageNodeImpl.java | 9 ++- .../vespa/orchestrator/model/VespaModelUtil.java | 36 +++++----- .../orchestrator/policy/HostedVespaPolicy.java | 5 +- .../yahoo/vespa/orchestrator/policy/Policy.java | 5 +- .../policy/ServiceClusterSuspendPolicy.java | 2 +- .../orchestrator/resources/InstanceResource.java | 3 +- .../resources/InstanceStatusResponse.java | 9 ++- .../orchestrator/DummyInstanceLookupService.java | 72 +++++++++---------- .../vespa/orchestrator/OrchestratorImplTest.java | 5 +- .../com/yahoo/vespa/orchestrator/TestUtil.java | 8 +-- .../ClusterControllerClientFactoryMock.java | 5 +- .../orchestrator/model/ApplicationApiImplTest.java | 82 +++++++++++----------- .../orchestrator/model/ClusterApiImplTest.java | 34 ++++----- .../vespa/orchestrator/model/ModelTestUtils.java | 26 +++---- .../vespa/orchestrator/model/NodeGroupTest.java | 3 +- .../orchestrator/model/VespaModelUtilTest.java | 70 +++++++++--------- .../orchestrator/resources/HostResourceTest.java | 15 ++-- .../service/monitor/ConfigServerApplication.java | 15 ++-- .../vespa/service/monitor/ModelGenerator.java | 26 +++---- .../yahoo/vespa/service/monitor/ServiceModel.java | 10 +-- .../vespa/service/monitor/ServiceMonitor.java | 2 +- .../vespa/service/monitor/ServiceMonitorImpl.java | 2 +- .../service/monitor/ServiceMonitorStatus.java | 11 --- .../service/monitor/SlobrokMonitorManager.java | 13 ++-- .../monitor/ConfigServerApplicationTest.java | 5 +- .../vespa/service/monitor/ModelGeneratorTest.java | 31 ++++---- .../vespa/service/monitor/SlobrokMonitor2Test.java | 2 +- .../service/monitor/SlobrokMonitorManagerTest.java | 13 ++-- 41 files changed, 343 insertions(+), 352 deletions(-) create mode 100644 application-model/src/main/java/com/yahoo/vespa/applicationmodel/ServiceStatus.java delete mode 100644 service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceMonitorStatus.java diff --git a/application-model/src/main/java/com/yahoo/vespa/applicationmodel/ApplicationInstance.java b/application-model/src/main/java/com/yahoo/vespa/applicationmodel/ApplicationInstance.java index d2796f600c6..3363ddb040f 100644 --- a/application-model/src/main/java/com/yahoo/vespa/applicationmodel/ApplicationInstance.java +++ b/application-model/src/main/java/com/yahoo/vespa/applicationmodel/ApplicationInstance.java @@ -9,13 +9,13 @@ import java.util.Set; /** * @author bjorncs */ -public class ApplicationInstance { +public class ApplicationInstance { private final TenantId tenantId; private final ApplicationInstanceId applicationInstanceId; - private final Set> serviceClusters; + private final Set serviceClusters; - public ApplicationInstance(TenantId tenantId, ApplicationInstanceId applicationInstanceId, Set> serviceClusters) { + public ApplicationInstance(TenantId tenantId, ApplicationInstanceId applicationInstanceId, Set serviceClusters) { this.tenantId = tenantId; this.applicationInstanceId = applicationInstanceId; this.serviceClusters = serviceClusters; @@ -32,7 +32,7 @@ public class ApplicationInstance { } @JsonProperty("serviceClusters") - public Set> serviceClusters() { + public Set serviceClusters() { return serviceClusters; } @@ -45,7 +45,7 @@ public class ApplicationInstance { public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; - ApplicationInstance that = (ApplicationInstance) o; + ApplicationInstance that = (ApplicationInstance) o; return Objects.equals(tenantId, that.tenantId) && Objects.equals(applicationInstanceId, that.applicationInstanceId) && Objects.equals(serviceClusters, that.serviceClusters); diff --git a/application-model/src/main/java/com/yahoo/vespa/applicationmodel/ServiceCluster.java b/application-model/src/main/java/com/yahoo/vespa/applicationmodel/ServiceCluster.java index 84d1b44bbf2..d18ced478f1 100644 --- a/application-model/src/main/java/com/yahoo/vespa/applicationmodel/ServiceCluster.java +++ b/application-model/src/main/java/com/yahoo/vespa/applicationmodel/ServiceCluster.java @@ -11,13 +11,13 @@ import java.util.Set; * * @author bjorncs */ -public class ServiceCluster { +public class ServiceCluster { private final ClusterId clusterId; private final ServiceType serviceType; - private final Set> serviceInstances; + private final Set serviceInstances; - public ServiceCluster(ClusterId clusterId, ServiceType serviceType, Set> serviceInstances) { + public ServiceCluster(ClusterId clusterId, ServiceType serviceType, Set serviceInstances) { this.clusterId = clusterId; this.serviceType = serviceType; this.serviceInstances = serviceInstances; @@ -34,7 +34,7 @@ public class ServiceCluster { } @JsonProperty("serviceInstances") - public Set> serviceInstances() { + public Set serviceInstances() { return serviceInstances; } @@ -51,7 +51,7 @@ public class ServiceCluster { public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; - ServiceCluster that = (ServiceCluster) o; + ServiceCluster that = (ServiceCluster) o; return Objects.equals(clusterId, that.clusterId) && Objects.equals(serviceType, that.serviceType) && Objects.equals(serviceInstances, that.serviceInstances); diff --git a/application-model/src/main/java/com/yahoo/vespa/applicationmodel/ServiceInstance.java b/application-model/src/main/java/com/yahoo/vespa/applicationmodel/ServiceInstance.java index cb3e6f5e077..2b31bb11ff7 100644 --- a/application-model/src/main/java/com/yahoo/vespa/applicationmodel/ServiceInstance.java +++ b/application-model/src/main/java/com/yahoo/vespa/applicationmodel/ServiceInstance.java @@ -8,13 +8,13 @@ import java.util.Objects; /** * @author bjorncs */ -public class ServiceInstance { +public class ServiceInstance { private final ConfigId configId; private final HostName hostName; - private final STATUS serviceStatus; + private final ServiceStatus serviceStatus; - public ServiceInstance(ConfigId configId, HostName hostName, STATUS serviceStatus) { + public ServiceInstance(ConfigId configId, HostName hostName, ServiceStatus serviceStatus) { this.configId = configId; this.hostName = hostName; this.serviceStatus = serviceStatus; @@ -31,7 +31,7 @@ public class ServiceInstance { } @JsonProperty("serviceStatus") - public STATUS serviceStatus() { + public ServiceStatus serviceStatus() { return serviceStatus; } @@ -48,7 +48,7 @@ public class ServiceInstance { public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; - ServiceInstance that = (ServiceInstance) o; + ServiceInstance that = (ServiceInstance) o; return Objects.equals(configId, that.configId) && Objects.equals(hostName, that.hostName) && Objects.equals(serviceStatus, that.serviceStatus); diff --git a/application-model/src/main/java/com/yahoo/vespa/applicationmodel/ServiceStatus.java b/application-model/src/main/java/com/yahoo/vespa/applicationmodel/ServiceStatus.java new file mode 100644 index 00000000000..a30ae29e1b6 --- /dev/null +++ b/application-model/src/main/java/com/yahoo/vespa/applicationmodel/ServiceStatus.java @@ -0,0 +1,11 @@ +// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.applicationmodel; + +/** + * @author oyving + */ +public enum ServiceStatus { + UP, + DOWN, + NOT_CHECKED; +} diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java index d90b558a6eb..2dc9f515e7e 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java @@ -10,6 +10,7 @@ import com.yahoo.transaction.Mutex; import com.yahoo.vespa.applicationmodel.ApplicationInstance; import com.yahoo.vespa.applicationmodel.ServiceCluster; import com.yahoo.vespa.applicationmodel.ServiceInstance; +import com.yahoo.vespa.applicationmodel.ServiceStatus; import com.yahoo.vespa.hosted.provision.Node; import com.yahoo.vespa.hosted.provision.NodeRepository; import com.yahoo.vespa.hosted.provision.node.Agent; @@ -18,7 +19,6 @@ import com.yahoo.vespa.orchestrator.ApplicationIdNotFoundException; import com.yahoo.vespa.orchestrator.Orchestrator; import com.yahoo.vespa.orchestrator.status.ApplicationInstanceStatus; import com.yahoo.vespa.service.monitor.ServiceMonitor; -import com.yahoo.vespa.service.monitor.ServiceMonitorStatus; import java.time.Clock; import java.time.Duration; @@ -187,15 +187,15 @@ public class NodeFailer extends Maintainer { */ private List determineActiveNodeDownStatus() { List downNodes = new ArrayList<>(); - for (ApplicationInstance application : serviceMonitor.queryStatusOfAllApplicationInstances().values()) { - for (ServiceCluster cluster : application.serviceClusters()) { - for (ServiceInstance service : cluster.serviceInstances()) { + for (ApplicationInstance application : serviceMonitor.queryStatusOfAllApplicationInstances().values()) { + for (ServiceCluster cluster : application.serviceClusters()) { + for (ServiceInstance service : cluster.serviceInstances()) { Optional node = nodeRepository().getNode(service.hostName().s(), Node.State.active); if ( ! node.isPresent()) continue; // we also get status from infrastructure nodes, which are not in the repo. TODO: remove when proxy nodes are in node repo everywhere - if (service.serviceStatus().equals(ServiceMonitorStatus.DOWN)) + if (service.serviceStatus().equals(ServiceStatus.DOWN)) downNodes.add(recordAsDown(node.get())); - else if (service.serviceStatus().equals(ServiceMonitorStatus.UP)) + else if (service.serviceStatus().equals(ServiceStatus.UP)) clearDownRecord(node.get()); // else: we don't know current status; don't take any action until we have positive information } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/ServiceMonitorStub.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/ServiceMonitorStub.java index e38802234bf..2a00724de28 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/ServiceMonitorStub.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/ServiceMonitorStub.java @@ -11,12 +11,12 @@ import com.yahoo.vespa.applicationmodel.ConfigId; import com.yahoo.vespa.applicationmodel.HostName; import com.yahoo.vespa.applicationmodel.ServiceCluster; import com.yahoo.vespa.applicationmodel.ServiceInstance; +import com.yahoo.vespa.applicationmodel.ServiceStatus; import com.yahoo.vespa.applicationmodel.ServiceType; import com.yahoo.vespa.applicationmodel.TenantId; import com.yahoo.vespa.hosted.provision.Node; import com.yahoo.vespa.hosted.provision.NodeRepository; import com.yahoo.vespa.service.monitor.ServiceMonitor; -import com.yahoo.vespa.service.monitor.ServiceMonitorStatus; import java.util.Collections; import java.util.HashMap; @@ -60,31 +60,31 @@ public class ServiceMonitorStub implements ServiceMonitor { this.statusIsKnown = statusIsKnown; } - private ServiceMonitorStatus getHostStatus(String hostname) { - if (!statusIsKnown) return ServiceMonitorStatus.NOT_CHECKED; - if (downHosts.contains(hostname)) return ServiceMonitorStatus.DOWN; - return ServiceMonitorStatus.UP; + private ServiceStatus getHostStatus(String hostname) { + if (!statusIsKnown) return ServiceStatus.NOT_CHECKED; + if (downHosts.contains(hostname)) return ServiceStatus.DOWN; + return ServiceStatus.UP; } @Override - public Map> queryStatusOfAllApplicationInstances() { + public Map queryStatusOfAllApplicationInstances() { // Convert apps information to the response payload to return - Map> status = new HashMap<>(); + Map status = new HashMap<>(); for (Map.Entry app : apps.entrySet()) { - Set> serviceInstances = new HashSet<>(); + Set serviceInstances = new HashSet<>(); for (Node node : nodeRepository.getNodes(app.getValue().id(), Node.State.active)) { - serviceInstances.add(new ServiceInstance<>(new ConfigId("configid"), - new HostName(node.hostname()), - getHostStatus(node.hostname()))); + serviceInstances.add(new ServiceInstance(new ConfigId("configid"), + new HostName(node.hostname()), + getHostStatus(node.hostname()))); } - Set> serviceClusters = new HashSet<>(); - serviceClusters.add(new ServiceCluster<>(new ClusterId(app.getValue().clusterContexts().get(0).cluster().id().value()), - new ServiceType("serviceType"), - serviceInstances)); + Set serviceClusters = new HashSet<>(); + serviceClusters.add(new ServiceCluster(new ClusterId(app.getValue().clusterContexts().get(0).cluster().id().value()), + new ServiceType("serviceType"), + serviceInstances)); TenantId tenantId = new TenantId(app.getKey().tenant().value()); ApplicationInstanceId applicationInstanceId = new ApplicationInstanceId(app.getKey().application().value()); status.put(new ApplicationInstanceReference(tenantId, applicationInstanceId), - new ApplicationInstance<>(tenantId, applicationInstanceId, serviceClusters)); + new ApplicationInstance(tenantId, applicationInstanceId, serviceClusters)); } return status; } diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/InstanceLookupService.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/InstanceLookupService.java index a18957989ba..554b6e11501 100644 --- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/InstanceLookupService.java +++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/InstanceLookupService.java @@ -4,7 +4,6 @@ package com.yahoo.vespa.orchestrator; import com.yahoo.vespa.applicationmodel.ApplicationInstanceReference; import com.yahoo.vespa.applicationmodel.ApplicationInstance; import com.yahoo.vespa.applicationmodel.HostName; -import com.yahoo.vespa.service.monitor.ServiceMonitorStatus; import java.util.Optional; import java.util.Set; @@ -14,8 +13,8 @@ import java.util.Set; */ public interface InstanceLookupService { - Optional> findInstanceById(ApplicationInstanceReference applicationInstanceReference); - Optional> findInstanceByHost(HostName hostName); + Optional findInstanceById(ApplicationInstanceReference applicationInstanceReference); + Optional findInstanceByHost(HostName hostName); Set knownInstances(); } 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 e88e8a7dd4a..ef81a45fefe 100644 --- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/OrchestratorImpl.java +++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/OrchestratorImpl.java @@ -27,7 +27,6 @@ import com.yahoo.vespa.orchestrator.status.ApplicationInstanceStatus; import com.yahoo.vespa.orchestrator.status.HostStatus; import com.yahoo.vespa.orchestrator.status.MutableStatusRegistry; import com.yahoo.vespa.orchestrator.status.StatusService; -import com.yahoo.vespa.service.monitor.ServiceMonitorStatus; import java.io.IOException; import java.util.HashMap; @@ -106,7 +105,7 @@ public class OrchestratorImpl implements Orchestrator { */ sleep(serviceMonitorConvergenceLatencySeconds, TimeUnit.SECONDS); - ApplicationInstance appInstance = getApplicationInstance(hostName); + ApplicationInstance appInstance = getApplicationInstance(hostName); try (MutableStatusRegistry statusRegistry = statusService.lockApplicationInstance_forCurrentThreadOnly(appInstance.reference())) { final HostStatus currentHostState = statusRegistry.getHostStatus(hostName); @@ -124,14 +123,14 @@ public class OrchestratorImpl implements Orchestrator { @Override public void suspend(HostName hostName) throws HostStateChangeDeniedException, HostNameNotFoundException { - ApplicationInstance appInstance = getApplicationInstance(hostName); + ApplicationInstance appInstance = getApplicationInstance(hostName); NodeGroup nodeGroup = new NodeGroup(appInstance, hostName); suspendGroup(nodeGroup); } @Override public void acquirePermissionToRemove(HostName hostName) throws OrchestrationException { - ApplicationInstance appInstance = getApplicationInstance(hostName); + ApplicationInstance appInstance = getApplicationInstance(hostName); NodeGroup nodeGroup = new NodeGroup(appInstance, hostName); try (MutableStatusRegistry statusRegistry = statusService.lockApplicationInstance_forCurrentThreadOnly(appInstance.reference())) { @@ -242,7 +241,7 @@ public class OrchestratorImpl implements Orchestrator { private List nodeGroupsOrderedForSuspend(List hostNames) throws HostNameNotFoundException { Map nodeGroupMap = new HashMap<>(hostNames.size()); for (HostName hostName : hostNames) { - ApplicationInstance application = getApplicationInstance(hostName); + ApplicationInstance application = getApplicationInstance(hostName); NodeGroup nodeGroup = nodeGroupMap.get(application.reference()); if (nodeGroup == null) { @@ -281,7 +280,7 @@ public class OrchestratorImpl implements Orchestrator { // Set content clusters for this application in maintenance on suspend if (status == ApplicationInstanceStatus.ALLOWED_TO_BE_DOWN) { - ApplicationInstance application = getApplicationInstance(appRef); + ApplicationInstance application = getApplicationInstance(appRef); // Mark it allowed to be down before we manipulate the clustercontroller OrchestratorUtil.getHostsUsedByApplicationInstance(application) @@ -296,7 +295,7 @@ public class OrchestratorImpl implements Orchestrator { } } - private void setClusterStateInController(ApplicationInstance application, + private void setClusterStateInController(ApplicationInstance application, ClusterControllerNodeState state) throws ApplicationStateChangeDeniedException, ApplicationIdNotFoundException { // Get all content clusters for this application @@ -326,12 +325,12 @@ public class OrchestratorImpl implements Orchestrator { } } - private ApplicationInstance getApplicationInstance(HostName hostName) throws HostNameNotFoundException{ + private ApplicationInstance getApplicationInstance(HostName hostName) throws HostNameNotFoundException{ return instanceLookupService.findInstanceByHost(hostName).orElseThrow( () -> new HostNameNotFoundException(hostName)); } - private ApplicationInstance getApplicationInstance(ApplicationInstanceReference appRef) throws ApplicationIdNotFoundException { + private ApplicationInstance getApplicationInstance(ApplicationInstanceReference appRef) throws ApplicationIdNotFoundException { return instanceLookupService.findInstanceById(appRef).orElseThrow(ApplicationIdNotFoundException::new); } 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 716be8e2f9c..79506d042e2 100644 --- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/OrchestratorUtil.java +++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/OrchestratorUtil.java @@ -38,19 +38,19 @@ public class OrchestratorUtil { // Utility class, not to be instantiated. private OrchestratorUtil() {} - public static Set getHostsUsedByApplicationInstance(ApplicationInstance applicationInstance) { + public static Set getHostsUsedByApplicationInstance(ApplicationInstance applicationInstance) { return applicationInstance.serviceClusters().stream() .flatMap(serviceCluster -> getHostsUsedByServiceCluster(serviceCluster).stream()) .collect(toSet()); } - public static Set getHostsUsedByServiceCluster(ServiceCluster serviceCluster) { + public static Set getHostsUsedByServiceCluster(ServiceCluster serviceCluster) { return serviceCluster.serviceInstances().stream() .map(ServiceInstance::hostName) .collect(toSet()); } - public static Set> getServiceClustersUsingHost(Collection> serviceClusters, + public static Set getServiceClustersUsingHost(Collection serviceClusters, HostName hostName) { return serviceClusters.stream() .filter(serviceCluster -> hasServiceInstanceOnHost(serviceCluster, hostName)) @@ -65,11 +65,11 @@ public class OrchestratorUtil { hostName -> hostStatusService.getHostStatus(hostName))); } - private static boolean hasServiceInstanceOnHost(ServiceCluster serviceCluster, HostName hostName) { + private static boolean hasServiceInstanceOnHost(ServiceCluster serviceCluster, HostName hostName) { return serviceInstancesOnHost(serviceCluster, hostName).count() > 0; } - public static Stream> serviceInstancesOnHost(ServiceCluster serviceCluster, + public static Stream serviceInstancesOnHost(ServiceCluster serviceCluster, HostName hostName) { return serviceCluster.serviceInstances().stream() .filter(instance -> instance.hostName().equals(hostName)); diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/ServiceMonitorInstanceLookupService.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/ServiceMonitorInstanceLookupService.java index 31f4f1430d3..78271632989 100644 --- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/ServiceMonitorInstanceLookupService.java +++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/ServiceMonitorInstanceLookupService.java @@ -6,7 +6,6 @@ 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 com.yahoo.vespa.service.monitor.ServiceMonitorStatus; import java.util.List; import java.util.Map; @@ -29,17 +28,17 @@ public class ServiceMonitorInstanceLookupService implements InstanceLookupServic } @Override - public Optional> findInstanceById(ApplicationInstanceReference applicationInstanceReference) { - Map> instanceMap + public Optional findInstanceById(ApplicationInstanceReference applicationInstanceReference) { + Map instanceMap = serviceMonitor.queryStatusOfAllApplicationInstances(); return Optional.ofNullable(instanceMap.get(applicationInstanceReference)); } @Override - public Optional> findInstanceByHost(HostName hostName) { - Map> instanceMap + public Optional findInstanceByHost(HostName hostName) { + Map instanceMap = serviceMonitor.queryStatusOfAllApplicationInstances(); - List> applicationInstancesUsingHost = instanceMap.entrySet().stream() + List applicationInstancesUsingHost = instanceMap.entrySet().stream() .filter(entry -> applicationInstanceUsesHost(entry.getValue(), hostName)) .map(Map.Entry::getValue) .collect(Collectors.toList()); @@ -59,7 +58,7 @@ public class ServiceMonitorInstanceLookupService implements InstanceLookupServic return serviceMonitor.queryStatusOfAllApplicationInstances().keySet(); } - private static boolean applicationInstanceUsesHost(ApplicationInstance applicationInstance, + private static boolean applicationInstanceUsesHost(ApplicationInstance applicationInstance, HostName hostName) { return applicationInstance.serviceClusters().stream() .anyMatch(serviceCluster -> diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/ApplicationApiImpl.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/ApplicationApiImpl.java index 6d45b2397b8..e280341d02c 100644 --- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/ApplicationApiImpl.java +++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/ApplicationApiImpl.java @@ -10,7 +10,6 @@ import com.yahoo.vespa.orchestrator.status.ApplicationInstanceStatus; import com.yahoo.vespa.orchestrator.status.HostStatus; import com.yahoo.vespa.orchestrator.status.MutableStatusRegistry; import com.yahoo.vespa.orchestrator.status.ReadOnlyStatusRegistry; -import com.yahoo.vespa.service.monitor.ServiceMonitorStatus; import java.util.Collection; import java.util.Comparator; @@ -24,7 +23,7 @@ import java.util.stream.Collectors; import static com.yahoo.vespa.orchestrator.OrchestratorUtil.getHostsUsedByApplicationInstance; public class ApplicationApiImpl implements ApplicationApi { - private final ApplicationInstance applicationInstance; + private final ApplicationInstance applicationInstance; private final NodeGroup nodeGroup; private final MutableStatusRegistry hostStatusService; private final List clusterInOrder; @@ -118,7 +117,7 @@ public class ApplicationApiImpl implements ApplicationApi { (NodeGroup nodeGroup, Map hostStatusMap, ClusterControllerClientFactory clusterControllerClientFactory) { - Set> clustersInGroup = getServiceClustersInGroup(nodeGroup); + Set clustersInGroup = getServiceClustersInGroup(nodeGroup); return clustersInGroup.stream() .map(serviceCluster -> new ClusterApiImpl( serviceCluster, @@ -138,12 +137,12 @@ public class ApplicationApiImpl implements ApplicationApi { return lhs.clusterId().toString().compareTo(rhs.clusterId().toString()); } - private static Set> getServiceClustersInGroup(NodeGroup nodeGroup) { - ApplicationInstance applicationInstance = nodeGroup.getApplication(); + private static Set getServiceClustersInGroup(NodeGroup nodeGroup) { + ApplicationInstance applicationInstance = nodeGroup.getApplication(); - Set> serviceClustersInGroup = new HashSet<>(); - for (ServiceCluster cluster : applicationInstance.serviceClusters()) { - for (ServiceInstance instance : cluster.serviceInstances()) { + Set serviceClustersInGroup = new HashSet<>(); + for (ServiceCluster cluster : applicationInstance.serviceClusters()) { + for (ServiceInstance instance : cluster.serviceInstances()) { if (nodeGroup.contains(instance.hostName())) { serviceClustersInGroup.add(cluster); break; diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/ClusterApiImpl.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/ClusterApiImpl.java index 42a711c91ca..dfa2610a130 100644 --- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/ClusterApiImpl.java +++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/ClusterApiImpl.java @@ -8,7 +8,7 @@ import com.yahoo.vespa.applicationmodel.ServiceInstance; import com.yahoo.vespa.applicationmodel.ServiceType; import com.yahoo.vespa.orchestrator.controller.ClusterControllerClientFactory; import com.yahoo.vespa.orchestrator.status.HostStatus; -import com.yahoo.vespa.service.monitor.ServiceMonitorStatus; +import com.yahoo.vespa.applicationmodel.ServiceStatus; import java.util.Collections; import java.util.HashSet; @@ -19,16 +19,16 @@ import java.util.function.Predicate; import java.util.stream.Collectors; class ClusterApiImpl implements ClusterApi { - private final ServiceCluster serviceCluster; + private final ServiceCluster serviceCluster; private final NodeGroup nodeGroup; private final Map hostStatusMap; private final ClusterControllerClientFactory clusterControllerClientFactory; - private final Set> servicesInGroup; - private final Set> servicesDownInGroup; - private final Set> servicesNotInGroup; - private final Set> servicesDownAndNotInGroup; + private final Set servicesInGroup; + private final Set servicesDownInGroup; + private final Set servicesNotInGroup; + private final Set servicesDownAndNotInGroup; - public ClusterApiImpl(ServiceCluster serviceCluster, + public ClusterApiImpl(ServiceCluster serviceCluster, NodeGroup nodeGroup, Map hostStatusMap, ClusterControllerClientFactory clusterControllerClientFactory) { @@ -37,7 +37,7 @@ class ClusterApiImpl implements ClusterApi { this.hostStatusMap = hostStatusMap; this.clusterControllerClientFactory = clusterControllerClientFactory; - Map>> serviceInstancesByLocality = + Map> serviceInstancesByLocality = serviceCluster.serviceInstances().stream() .collect( Collectors.groupingBy( @@ -114,14 +114,14 @@ class ClusterApiImpl implements ClusterApi { } private Optional storageNodeInGroup( - Predicate> storageServicePredicate) { + Predicate storageServicePredicate) { if (!VespaModelUtil.isStorage(serviceCluster)) { return Optional.empty(); } Set storageNodes = new HashSet<>(); - for (ServiceInstance serviceInstance : servicesInGroup) { + for (ServiceInstance serviceInstance : servicesInGroup) { if (!storageServicePredicate.test(serviceInstance)) { continue; } @@ -172,12 +172,12 @@ class ClusterApiImpl implements ClusterApi { return hostStatusMap.getOrDefault(hostName, HostStatus.NO_REMARKS); } - private boolean serviceEffectivelyDown(ServiceInstance service) { + private boolean serviceEffectivelyDown(ServiceInstance service) { if (hostStatus(service.hostName()) == HostStatus.ALLOWED_TO_BE_DOWN) { return true; } - if (service.serviceStatus() == ServiceMonitorStatus.DOWN) { + if (service.serviceStatus() == ServiceStatus.DOWN) { return true; } diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/NodeGroup.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/NodeGroup.java index 56d2a00f5f5..ed506c82079 100644 --- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/NodeGroup.java +++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/NodeGroup.java @@ -4,7 +4,6 @@ package com.yahoo.vespa.orchestrator.model; import com.yahoo.vespa.applicationmodel.ApplicationInstance; import com.yahoo.vespa.applicationmodel.ApplicationInstanceReference; import com.yahoo.vespa.applicationmodel.HostName; -import com.yahoo.vespa.service.monitor.ServiceMonitorStatus; import java.util.Arrays; import java.util.HashSet; @@ -17,10 +16,10 @@ import java.util.stream.Collectors; * A group of nodes belonging to the same application instance. */ public class NodeGroup { - private final ApplicationInstance application; + private final ApplicationInstance application; private final Set hostNames = new HashSet<>(); - public NodeGroup(ApplicationInstance application, HostName... hostNames) { + public NodeGroup(ApplicationInstance application, HostName... hostNames) { this.application = application; this.hostNames.addAll(Arrays.asList(hostNames)); } @@ -35,7 +34,7 @@ public class NodeGroup { return application.reference(); } - ApplicationInstance getApplication() { + ApplicationInstance getApplication() { return application; } diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/StorageNodeImpl.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/StorageNodeImpl.java index a5ecb443f3f..109acbc6486 100644 --- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/StorageNodeImpl.java +++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/StorageNodeImpl.java @@ -13,7 +13,6 @@ import com.yahoo.vespa.orchestrator.controller.ClusterControllerNodeState; import com.yahoo.vespa.orchestrator.controller.ClusterControllerStateResponse; import com.yahoo.vespa.orchestrator.policy.HostStateChangeDeniedException; import com.yahoo.vespa.orchestrator.policy.HostedVespaPolicy; -import com.yahoo.vespa.service.monitor.ServiceMonitorStatus; import java.io.IOException; import java.util.List; @@ -23,14 +22,14 @@ import java.util.logging.Logger; public class StorageNodeImpl implements StorageNode { private static final Logger logger = Logger.getLogger(StorageNodeImpl.class.getName()); - private final ApplicationInstance applicationInstance; + private final ApplicationInstance applicationInstance; private final ClusterId clusterId; - private final ServiceInstance storageService; + private final ServiceInstance storageService; private final ClusterControllerClientFactory clusterControllerClientFactory; - StorageNodeImpl(ApplicationInstance applicationInstance, + StorageNodeImpl(ApplicationInstance applicationInstance, ClusterId clusterId, - ServiceInstance storageService, + ServiceInstance storageService, ClusterControllerClientFactory clusterControllerClientFactory) { this.applicationInstance = applicationInstance; this.clusterId = clusterId; diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/VespaModelUtil.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/VespaModelUtil.java index 12cbd71e232..40556eb2f40 100644 --- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/VespaModelUtil.java +++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/VespaModelUtil.java @@ -40,11 +40,11 @@ public class VespaModelUtil { public static final ServiceType SEARCHNODE_SERVICE_TYPE = new ServiceType("searchnode"); public static final ServiceType STORAGENODE_SERVICE_TYPE = new ServiceType("storagenode"); - private static final Comparator> CLUSTER_CONTROLLER_INDEX_COMPARATOR = + private static final Comparator CLUSTER_CONTROLLER_INDEX_COMPARATOR = Comparator.comparing(serviceInstance -> VespaModelUtil.getClusterControllerIndex(serviceInstance.configId())); // @return true iff the service cluster refers to a cluster controller service cluster. - public static boolean isClusterController(ServiceCluster cluster) { + public static boolean isClusterController(ServiceCluster cluster) { return CLUSTER_CONTROLLER_SERVICE_TYPE.equals(cluster.serviceType()); } @@ -54,14 +54,14 @@ public class VespaModelUtil { * * @return true iff the service cluster consists of storage nodes (proton or vds). */ - public static boolean isStorage(ServiceCluster cluster) { + public static boolean isStorage(ServiceCluster cluster) { return STORAGENODE_SERVICE_TYPE.equals(cluster.serviceType()); } /** * @return true iff the service cluster is a content service cluster. */ - public static boolean isContent(ServiceCluster cluster) { + public static boolean isContent(ServiceCluster cluster) { return DISTRIBUTOR_SERVICE_TYPE.equals(cluster.serviceType()) || SEARCHNODE_SERVICE_TYPE.equals(cluster.serviceType()) || STORAGENODE_SERVICE_TYPE.equals(cluster.serviceType()); @@ -70,18 +70,18 @@ public class VespaModelUtil { /** * @return The set of all Cluster Controller service instances for the application. */ - public static List getClusterControllerInstancesInOrder(ApplicationInstance application, + public static List getClusterControllerInstancesInOrder(ApplicationInstance application, ClusterId contentClusterId) { - Set> controllerClusters = getClusterControllerServiceClusters(application); + Set controllerClusters = getClusterControllerServiceClusters(application); - Collection> controllerClustersForContentCluster = filter(controllerClusters, contentClusterId); + Collection controllerClustersForContentCluster = filter(controllerClusters, contentClusterId); - Set> clusterControllerInstances; + Set clusterControllerInstances; if (controllerClustersForContentCluster.size() == 1) { clusterControllerInstances = first(controllerClustersForContentCluster).serviceInstances(); } else if (controllerClusters.size() == 1) { - ServiceCluster cluster = first(controllerClusters); + ServiceCluster cluster = first(controllerClusters); log.warning("No cluster controller cluster for content cluster " + contentClusterId + ", using the only cluster controller cluster available: " + cluster.clusterId()); @@ -98,7 +98,7 @@ public class VespaModelUtil { .collect(Collectors.toList()); } - private static Collection> filter(Set> controllerClusters, + private static Collection filter(Set controllerClusters, ClusterId contentClusterId) { ClusterId clusterControllerClusterId = new ClusterId(contentClusterId.s() + "-controllers"); @@ -107,7 +107,7 @@ public class VespaModelUtil { collect(Collectors.toList()); } - public static Set> getClusterControllerServiceClusters(ApplicationInstance application) { + public static Set getClusterControllerServiceClusters(ApplicationInstance application) { return application.serviceClusters().stream() .filter(VespaModelUtil::isClusterController) .collect(Collectors.toSet()); @@ -118,7 +118,7 @@ public class VespaModelUtil { * no cluster controller was found. * @throws java.lang.IllegalArgumentException if there are no cluster controller instances. */ - public static HostName getControllerHostName(ApplicationInstance application, ClusterId contentClusterId) { + public static HostName getControllerHostName(ApplicationInstance application, ClusterId contentClusterId) { // It happens that the master Cluster Controller is the one with the lowest index, if up. return getClusterControllerInstancesInOrder(application, contentClusterId).stream() .findFirst() @@ -139,7 +139,7 @@ public class VespaModelUtil { * @return The cluster name managed by a Cluster Controller. * @throws IllegalArgumentException if there is not exactly one content cluster name. */ - public static ClusterId getContentClusterName(ApplicationInstance application, HostName hostName) { + public static ClusterId getContentClusterName(ApplicationInstance application, HostName hostName) { Set contentClusterIdsOnHost = application.serviceClusters().stream() .filter(VespaModelUtil::isContent) .filter(cluster -> clusterHasInstanceOnHost(cluster, hostName)) @@ -156,7 +156,7 @@ public class VespaModelUtil { return contentClusterIdsOnHost.iterator().next(); } - private static boolean clusterHasInstanceOnHost(ServiceCluster cluster, HostName hostName) { + private static boolean clusterHasInstanceOnHost(ServiceCluster cluster, HostName hostName) { return cluster.serviceInstances().stream().anyMatch(service -> Objects.equals(hostName, service.hostName())); } @@ -165,8 +165,8 @@ public class VespaModelUtil { * @throws java.lang.IllegalArgumentException if there is not exactly one storage node running on the host, * or if the index of that storage node could not be found. */ - public static int getStorageNodeIndex(ApplicationInstance application, HostName hostName) { - Optional> storageNode = getStorageNodeAtHost(application, hostName); + public static int getStorageNodeIndex(ApplicationInstance application, HostName hostName) { + Optional storageNode = getStorageNodeAtHost(application, hostName); if (!storageNode.isPresent()) { throw new IllegalArgumentException("Failed to find a storage node for application " + application.applicationInstanceId() + " at host " + hostName); @@ -175,9 +175,9 @@ public class VespaModelUtil { return getStorageNodeIndex(storageNode.get().configId()); } - public static Optional> getStorageNodeAtHost(ApplicationInstance application, + public static Optional getStorageNodeAtHost(ApplicationInstance application, HostName hostName) { - Set> storageNodesOnHost = application.serviceClusters().stream() + Set storageNodesOnHost = application.serviceClusters().stream() .filter(VespaModelUtil::isStorage) .flatMap(cluster -> cluster.serviceInstances().stream()) .filter(service -> service.hostName().equals(hostName)) diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/policy/HostedVespaPolicy.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/policy/HostedVespaPolicy.java index 6b9626f49f9..49a7739c839 100644 --- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/policy/HostedVespaPolicy.java +++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/policy/HostedVespaPolicy.java @@ -14,7 +14,6 @@ import com.yahoo.vespa.orchestrator.model.StorageNode; import com.yahoo.vespa.orchestrator.status.ApplicationInstanceStatus; import com.yahoo.vespa.orchestrator.status.HostStatus; import com.yahoo.vespa.orchestrator.status.MutableStatusRegistry; -import com.yahoo.vespa.service.monitor.ServiceMonitorStatus; import java.util.logging.Logger; @@ -107,7 +106,7 @@ public class HostedVespaPolicy implements Policy { // TODO: Remove later - currently used for backward compatibility testing @Override - public void grantSuspensionRequest(ApplicationInstance applicationInstance, + public void grantSuspensionRequest(ApplicationInstance applicationInstance, HostName hostName, MutableStatusRegistry hostStatusService) throws HostStateChangeDeniedException { NodeGroup nodeGroup = new NodeGroup(applicationInstance); @@ -119,7 +118,7 @@ public class HostedVespaPolicy implements Policy { // TODO: Remove later - currently used for backward compatibility testing @Override public void releaseSuspensionGrant( - ApplicationInstance applicationInstance, + ApplicationInstance applicationInstance, HostName hostName, MutableStatusRegistry hostStatusService) throws HostStateChangeDeniedException { NodeGroup nodeGroup = new NodeGroup(applicationInstance, hostName); diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/policy/Policy.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/policy/Policy.java index 61f05efa9c1..4ea4f81182f 100644 --- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/policy/Policy.java +++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/policy/Policy.java @@ -5,7 +5,6 @@ import com.yahoo.vespa.applicationmodel.ApplicationInstance; import com.yahoo.vespa.applicationmodel.HostName; import com.yahoo.vespa.orchestrator.model.ApplicationApi; import com.yahoo.vespa.orchestrator.status.MutableStatusRegistry; -import com.yahoo.vespa.service.monitor.ServiceMonitorStatus; /** * @author oyving @@ -18,7 +17,7 @@ public interface Policy { * @throws HostStateChangeDeniedException if the grant was not given. */ void grantSuspensionRequest( - ApplicationInstance applicationInstance, + ApplicationInstance applicationInstance, HostName hostName, MutableStatusRegistry hostStatusService) throws HostStateChangeDeniedException; @@ -42,7 +41,7 @@ public interface Policy { * @throws HostStateChangeDeniedException if the release failed. */ void releaseSuspensionGrant( - ApplicationInstance applicationInstance, + ApplicationInstance applicationInstance, HostName hostName, MutableStatusRegistry hostStatusService) throws HostStateChangeDeniedException; } diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/policy/ServiceClusterSuspendPolicy.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/policy/ServiceClusterSuspendPolicy.java index 041128d516d..3f782da91e4 100644 --- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/policy/ServiceClusterSuspendPolicy.java +++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/policy/ServiceClusterSuspendPolicy.java @@ -16,7 +16,7 @@ public final class ServiceClusterSuspendPolicy { private ServiceClusterSuspendPolicy() {} // Disallow instantiation. - public static int getSuspendPercentageAllowed(ServiceCluster serviceCluster) { + public static int getSuspendPercentageAllowed(ServiceCluster serviceCluster) { if (VespaModelUtil.ADMIN_CLUSTER_ID.equals(serviceCluster.clusterId())) { if (VespaModelUtil.SLOBROK_SERVICE_TYPE.equals(serviceCluster.serviceType())) { return SUSPENSION_ALLOW_MINIMAL; 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 fbd6a7382a9..58ab583849a 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 @@ -9,7 +9,6 @@ import com.yahoo.vespa.orchestrator.status.StatusService; import com.yahoo.vespa.applicationmodel.ApplicationInstance; import com.yahoo.vespa.applicationmodel.ApplicationInstanceReference; import com.yahoo.vespa.applicationmodel.HostName; -import com.yahoo.vespa.service.monitor.ServiceMonitorStatus; import javax.inject.Inject; import javax.ws.rs.GET; @@ -64,7 +63,7 @@ public class InstanceResource { throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).build()); } - ApplicationInstance applicationInstance + ApplicationInstance applicationInstance = instanceLookupService.findInstanceById(instanceId) .orElseThrow(() -> new WebApplicationException(Response.status(Response.Status.NOT_FOUND).build())); diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/resources/InstanceStatusResponse.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/resources/InstanceStatusResponse.java index ce675de434d..c2ea0c9eddf 100644 --- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/resources/InstanceStatusResponse.java +++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/resources/InstanceStatusResponse.java @@ -4,7 +4,6 @@ package com.yahoo.vespa.orchestrator.resources; import com.fasterxml.jackson.annotation.JsonProperty; import com.yahoo.vespa.applicationmodel.ApplicationInstance; import com.yahoo.vespa.applicationmodel.HostName; -import com.yahoo.vespa.service.monitor.ServiceMonitorStatus; import java.util.Map; import java.util.Objects; @@ -14,22 +13,22 @@ import java.util.Objects; */ public class InstanceStatusResponse { - private final ApplicationInstance applicationInstance; + private final ApplicationInstance applicationInstance; private final Map hostStates; - private InstanceStatusResponse(ApplicationInstance applicationInstance, Map hostStates) { + private InstanceStatusResponse(ApplicationInstance applicationInstance, Map hostStates) { this.applicationInstance = applicationInstance; this.hostStates = hostStates; } public static InstanceStatusResponse create( - ApplicationInstance applicationInstance, + ApplicationInstance applicationInstance, Map hostStates) { return new InstanceStatusResponse(applicationInstance, hostStates); } @JsonProperty("applicationInstance") - public ApplicationInstance applicationInstance() { + public ApplicationInstance applicationInstance() { return applicationInstance; } diff --git a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/DummyInstanceLookupService.java b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/DummyInstanceLookupService.java index 2dbb1562478..a54f5284ee0 100644 --- a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/DummyInstanceLookupService.java +++ b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/DummyInstanceLookupService.java @@ -10,11 +10,11 @@ import com.yahoo.vespa.applicationmodel.ConfigId; import com.yahoo.vespa.applicationmodel.HostName; import com.yahoo.vespa.applicationmodel.ServiceCluster; import com.yahoo.vespa.applicationmodel.ServiceInstance; +import com.yahoo.vespa.applicationmodel.ServiceStatus; 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.ServiceMonitorStatus; import java.util.HashSet; import java.util.Optional; @@ -33,89 +33,89 @@ public class DummyInstanceLookupService implements InstanceLookupService { public static final HostName TEST3_HOST_NAME = new HostName("test3.hostname.tld"); public static final HostName TEST6_HOST_NAME = new HostName("test6.hostname.tld"); - private static final Set> apps = new HashSet<>(); + private static final Set apps = new HashSet<>(); static { - apps.add(new ApplicationInstance<>( + apps.add(new ApplicationInstance( new TenantId("test-tenant-id"), new ApplicationInstanceId("application:prod:utopia-1:instance"), TestUtil.makeServiceClusterSet( - new ServiceCluster<>( + new ServiceCluster( new ClusterId("test-cluster-id-1"), new ServiceType("storagenode"), TestUtil.makeServiceInstanceSet( - new ServiceInstance<>( + new ServiceInstance( new ConfigId("storage/storage/1"), TEST1_HOST_NAME, - ServiceMonitorStatus.UP), - new ServiceInstance<>( + ServiceStatus.UP), + new ServiceInstance( new ConfigId("storage/storage/2"), new HostName("test2.hostname.tld"), - ServiceMonitorStatus.UP))), - new ServiceCluster<>( + ServiceStatus.UP))), + new ServiceCluster( new ClusterId("clustercontroller"), new ServiceType("container-clustercontroller"), TestUtil.makeServiceInstanceSet( - new ServiceInstance<>( + new ServiceInstance( new ConfigId("clustercontroller-1"), new HostName("myclustercontroller.hostname.tld"), - ServiceMonitorStatus.UP))) + ServiceStatus.UP))) ) )); - apps.add(new ApplicationInstance<>( + apps.add(new ApplicationInstance( new TenantId("mediasearch"), new ApplicationInstanceId("imagesearch:prod:utopia-1:default"), TestUtil.makeServiceClusterSet( - new ServiceCluster<>( + new ServiceCluster( new ClusterId("image"), new ServiceType("storagenode"), TestUtil.makeServiceInstanceSet( - new ServiceInstance<>( + new ServiceInstance( new ConfigId("storage/storage/3"), TEST3_HOST_NAME, - ServiceMonitorStatus.UP), - new ServiceInstance<>( + ServiceStatus.UP), + new ServiceInstance( new ConfigId("storage/storage/4"), new HostName("test4.hostname.tld"), - ServiceMonitorStatus.UP))), - new ServiceCluster<>( + ServiceStatus.UP))), + new ServiceCluster( new ClusterId("clustercontroller"), new ServiceType("container-clustercontroller"), TestUtil.makeServiceInstanceSet( - new ServiceInstance<>( + new ServiceInstance( new ConfigId("clustercontroller-1"), new HostName("myclustercontroller2.hostname.tld"), - ServiceMonitorStatus.UP))) + ServiceStatus.UP))) ) ) ); - apps.add(new ApplicationInstance<>( + apps.add(new ApplicationInstance( new TenantId("tenant-id-3"), new ApplicationInstanceId("application-instance-3:prod:utopia-1:default"), TestUtil.makeServiceClusterSet( - new ServiceCluster<>( + new ServiceCluster( new ClusterId("cluster-id-3"), new ServiceType("storagenode"), TestUtil.makeServiceInstanceSet( - new ServiceInstance<>( + new ServiceInstance( new ConfigId("storage/storage/1"), TEST6_HOST_NAME, - ServiceMonitorStatus.UP), - new ServiceInstance<>( + ServiceStatus.UP), + new ServiceInstance( new ConfigId("storage/storage/4"), new HostName("test4.hostname.tld"), - ServiceMonitorStatus.UP))), - new ServiceCluster<>( + ServiceStatus.UP))), + new ServiceCluster( new ClusterId("clustercontroller"), new ServiceType("container-clustercontroller"), TestUtil.makeServiceInstanceSet( - new ServiceInstance<>( + new ServiceInstance( new ConfigId("clustercontroller-1"), new HostName("myclustercontroller3.hostname.tld"), - ServiceMonitorStatus.UP))) + ServiceStatus.UP))) ) )); } @@ -127,19 +127,19 @@ public class DummyInstanceLookupService implements InstanceLookupService { @Override - public Optional> findInstanceById( + public Optional findInstanceById( final ApplicationInstanceReference applicationInstanceReference) { - for (ApplicationInstance app : apps) { + for (ApplicationInstance app : apps) { if (app.reference().equals(applicationInstanceReference)) return Optional.of(app); } return Optional.empty(); } @Override - public Optional> findInstanceByHost(HostName hostName) { - for (ApplicationInstance app : apps) { - for (ServiceCluster cluster : app.serviceClusters()) { - for (ServiceInstance service : cluster.serviceInstances()) { + public Optional findInstanceByHost(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); } } @@ -166,7 +166,7 @@ public class DummyInstanceLookupService implements InstanceLookupService { return hosts; } - public static Set> getApplications() { + public static Set getApplications() { return apps; } } 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 92d6216583f..8cf9d343134 100644 --- a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/OrchestratorImplTest.java +++ b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/OrchestratorImplTest.java @@ -11,7 +11,6 @@ import com.yahoo.vespa.orchestrator.policy.BatchHostStateChangeDeniedException; import com.yahoo.vespa.orchestrator.policy.HostStateChangeDeniedException; import com.yahoo.vespa.orchestrator.status.HostStatus; import com.yahoo.vespa.orchestrator.status.InMemoryStatusService; -import com.yahoo.vespa.service.monitor.ServiceMonitorStatus; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -51,7 +50,7 @@ public class OrchestratorImplTest { @Before public void setUp() throws Exception { // Extract applications and hosts from dummy instance lookup service - Iterator> iterator = DummyInstanceLookupService.getApplications().iterator(); + Iterator iterator = DummyInstanceLookupService.getApplications().iterator(); ApplicationInstanceReference app1_ref = iterator.next().reference(); app1 = OrchestratorUtil.toApplicationId(app1_ref); app1_host1 = DummyInstanceLookupService.getContentHosts(app1_ref).iterator().next(); @@ -283,7 +282,7 @@ public class OrchestratorImplTest { } private boolean isInMaintenance(ApplicationId appId, HostName hostName) throws ApplicationIdNotFoundException { - for (ApplicationInstance app : DummyInstanceLookupService.getApplications()) { + for (ApplicationInstance app : DummyInstanceLookupService.getApplications()) { if (app.reference().equals(OrchestratorUtil.toApplicationInstanceReference(appId, new DummyInstanceLookupService()))) { return clustercontroller.isInMaintenance(app, hostName); } diff --git a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/TestUtil.java b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/TestUtil.java index 51983fa7049..9b9dc206556 100644 --- a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/TestUtil.java +++ b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/TestUtil.java @@ -16,14 +16,14 @@ import java.util.Set; */ public class TestUtil { @SafeVarargs - public static Set> makeServiceInstanceSet( - final ServiceInstance... serviceInstances) { + public static Set makeServiceInstanceSet( + final ServiceInstance... serviceInstances) { return new HashSet<>(Arrays.asList(serviceInstances)); } @SafeVarargs - public static Set> makeServiceClusterSet( - final ServiceCluster... serviceClusters) { + public static Set makeServiceClusterSet( + final ServiceCluster... serviceClusters) { return new HashSet<>(Arrays.asList(serviceClusters)); } 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 e91db49cfd5..230e36469d3 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 @@ -6,7 +6,6 @@ import com.yahoo.vespa.applicationmodel.ClusterId; import com.yahoo.vespa.applicationmodel.HostName; import com.yahoo.vespa.orchestrator.DummyInstanceLookupService; import com.yahoo.vespa.orchestrator.model.VespaModelUtil; -import com.yahoo.vespa.service.monitor.ServiceMonitorStatus; import java.io.IOException; import java.util.HashMap; @@ -24,7 +23,7 @@ import java.util.Set; public class ClusterControllerClientFactoryMock implements ClusterControllerClientFactory { Map nodes = new HashMap<>(); - public boolean isInMaintenance(ApplicationInstance appInstance, HostName hostName) { + public boolean isInMaintenance(ApplicationInstance appInstance, HostName hostName) { try { ClusterId clusterName = VespaModelUtil.getContentClusterName(appInstance, hostName); int storageNodeIndex = VespaModelUtil.getStorageNodeIndex(appInstance, hostName); @@ -37,7 +36,7 @@ public class ClusterControllerClientFactoryMock implements ClusterControllerClie } public void setAllDummyNodesAsUp() { - for (ApplicationInstance app : DummyInstanceLookupService.getApplications()) { + for (ApplicationInstance app : DummyInstanceLookupService.getApplications()) { Set hosts = DummyInstanceLookupService.getContentHosts(app.reference()); for (HostName host : hosts) { ClusterId clusterName = VespaModelUtil.getContentClusterName(app, host); diff --git a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/ApplicationApiImplTest.java b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/ApplicationApiImplTest.java index c6a4bfa0632..3abffac3a9c 100644 --- a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/ApplicationApiImplTest.java +++ b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/ApplicationApiImplTest.java @@ -3,9 +3,9 @@ package com.yahoo.vespa.orchestrator.model; import com.yahoo.vespa.applicationmodel.ApplicationInstance; import com.yahoo.vespa.applicationmodel.HostName; +import com.yahoo.vespa.applicationmodel.ServiceStatus; import com.yahoo.vespa.applicationmodel.ServiceType; import com.yahoo.vespa.orchestrator.status.HostStatus; -import com.yahoo.vespa.service.monitor.ServiceMonitorStatus; import org.junit.Test; import java.util.ArrayList; @@ -32,30 +32,30 @@ public class ApplicationApiImplTest { HostName hostName3 = new HostName("host3"); HostName hostName4 = new HostName("host4"); - ApplicationInstance applicationInstance = + ApplicationInstance applicationInstance = modelUtils.createApplicationInstance(Arrays.asList( modelUtils.createServiceCluster( "cluster-3", new ServiceType("service-type-3"), Arrays.asList( - modelUtils.createServiceInstance("config-id-1", hostName1, ServiceMonitorStatus.UP), - modelUtils.createServiceInstance("config-id-2", hostName2, ServiceMonitorStatus.UP) + modelUtils.createServiceInstance("config-id-1", hostName1, ServiceStatus.UP), + modelUtils.createServiceInstance("config-id-2", hostName2, ServiceStatus.UP) ) ), modelUtils.createServiceCluster( "cluster-1", new ServiceType("service-type-1"), Arrays.asList( - modelUtils.createServiceInstance("config-id-3", hostName1, ServiceMonitorStatus.UP), - modelUtils.createServiceInstance("config-id-4", hostName3, ServiceMonitorStatus.UP) + modelUtils.createServiceInstance("config-id-3", hostName1, ServiceStatus.UP), + modelUtils.createServiceInstance("config-id-4", hostName3, ServiceStatus.UP) ) ), modelUtils.createServiceCluster( "cluster-2", new ServiceType("service-type-2"), Arrays.asList( - modelUtils.createServiceInstance("config-id-5", hostName1, ServiceMonitorStatus.UP), - modelUtils.createServiceInstance("config-id-6", hostName2, ServiceMonitorStatus.UP) + modelUtils.createServiceInstance("config-id-5", hostName1, ServiceStatus.UP), + modelUtils.createServiceInstance("config-id-6", hostName2, ServiceStatus.UP) ) ) )); @@ -89,40 +89,40 @@ public class ApplicationApiImplTest { HostName hostName6 = new HostName("host6"); HostName hostName7 = new HostName("host7"); - ApplicationInstance applicationInstance = + ApplicationInstance applicationInstance = modelUtils.createApplicationInstance(Arrays.asList( modelUtils.createServiceCluster( "cluster-3", VespaModelUtil.STORAGENODE_SERVICE_TYPE, Arrays.asList( - modelUtils.createServiceInstance("config-id-30", hostName1, ServiceMonitorStatus.UP), - modelUtils.createServiceInstance("config-id-31", hostName2, ServiceMonitorStatus.UP) + modelUtils.createServiceInstance("config-id-30", hostName1, ServiceStatus.UP), + modelUtils.createServiceInstance("config-id-31", hostName2, ServiceStatus.UP) ) ), modelUtils.createServiceCluster( "cluster-1", VespaModelUtil.STORAGENODE_SERVICE_TYPE, Arrays.asList( - modelUtils.createServiceInstance("config-id-10", hostName3, ServiceMonitorStatus.DOWN), - modelUtils.createServiceInstance("config-id-11", hostName4, ServiceMonitorStatus.UP) + modelUtils.createServiceInstance("config-id-10", hostName3, ServiceStatus.DOWN), + modelUtils.createServiceInstance("config-id-11", hostName4, ServiceStatus.UP) ) ), modelUtils.createServiceCluster( "cluster-4", new ServiceType("service-type-4"), Arrays.asList( - modelUtils.createServiceInstance("config-id-40", hostName1, ServiceMonitorStatus.UP), - modelUtils.createServiceInstance("config-id-41", hostName2, ServiceMonitorStatus.UP), - modelUtils.createServiceInstance("config-id-42", hostName3, ServiceMonitorStatus.UP), - modelUtils.createServiceInstance("config-id-43", hostName5, ServiceMonitorStatus.UP) + modelUtils.createServiceInstance("config-id-40", hostName1, ServiceStatus.UP), + modelUtils.createServiceInstance("config-id-41", hostName2, ServiceStatus.UP), + modelUtils.createServiceInstance("config-id-42", hostName3, ServiceStatus.UP), + modelUtils.createServiceInstance("config-id-43", hostName5, ServiceStatus.UP) ) ), modelUtils.createServiceCluster( "cluster-2", VespaModelUtil.STORAGENODE_SERVICE_TYPE, Arrays.asList( - modelUtils.createServiceInstance("config-id-20", hostName6, ServiceMonitorStatus.DOWN), - modelUtils.createServiceInstance("config-id-21", hostName7, ServiceMonitorStatus.UP) + modelUtils.createServiceInstance("config-id-20", hostName6, ServiceStatus.DOWN), + modelUtils.createServiceInstance("config-id-21", hostName7, ServiceStatus.UP) ) ) )); @@ -158,18 +158,18 @@ public class ApplicationApiImplTest { @Test public void testUpConditionOfStorageNode() { - verifyUpConditionWith(HostStatus.NO_REMARKS, ServiceMonitorStatus.UP, true); - verifyUpConditionWith(HostStatus.NO_REMARKS, ServiceMonitorStatus.NOT_CHECKED, true); - verifyUpConditionWith(HostStatus.NO_REMARKS, ServiceMonitorStatus.DOWN, false); - verifyUpConditionWith(HostStatus.ALLOWED_TO_BE_DOWN, ServiceMonitorStatus.UP, false); - verifyUpConditionWith(HostStatus.ALLOWED_TO_BE_DOWN, ServiceMonitorStatus.NOT_CHECKED, false); - verifyUpConditionWith(HostStatus.ALLOWED_TO_BE_DOWN, ServiceMonitorStatus.DOWN, false); + verifyUpConditionWith(HostStatus.NO_REMARKS, ServiceStatus.UP, true); + verifyUpConditionWith(HostStatus.NO_REMARKS, ServiceStatus.NOT_CHECKED, true); + verifyUpConditionWith(HostStatus.NO_REMARKS, ServiceStatus.DOWN, false); + verifyUpConditionWith(HostStatus.ALLOWED_TO_BE_DOWN, ServiceStatus.UP, false); + verifyUpConditionWith(HostStatus.ALLOWED_TO_BE_DOWN, ServiceStatus.NOT_CHECKED, false); + verifyUpConditionWith(HostStatus.ALLOWED_TO_BE_DOWN, ServiceStatus.DOWN, false); } - private void verifyUpConditionWith(HostStatus hostStatus, ServiceMonitorStatus serviceStatus, boolean expectUp) { + private void verifyUpConditionWith(HostStatus hostStatus, ServiceStatus serviceStatus, boolean expectUp) { HostName hostName1 = modelUtils.createNode("host1", hostStatus); - ApplicationInstance applicationInstance = + ApplicationInstance applicationInstance = modelUtils.createApplicationInstance(Arrays.asList( modelUtils.createServiceCluster( "cluster-1", @@ -193,22 +193,22 @@ public class ApplicationApiImplTest { HostName hostName2 = modelUtils.createNode("host2", HostStatus.NO_REMARKS); HostName hostName3 = modelUtils.createNode("host3", HostStatus.ALLOWED_TO_BE_DOWN); - ApplicationInstance applicationInstance = + ApplicationInstance applicationInstance = modelUtils.createApplicationInstance(Arrays.asList( modelUtils.createServiceCluster( "cluster-1", new ServiceType("service-type-1"), Arrays.asList( - modelUtils.createServiceInstance("config-id-10", hostName1, ServiceMonitorStatus.UP), - modelUtils.createServiceInstance("config-id-11", hostName2, ServiceMonitorStatus.UP) + modelUtils.createServiceInstance("config-id-10", hostName1, ServiceStatus.UP), + modelUtils.createServiceInstance("config-id-11", hostName2, ServiceStatus.UP) ) ), modelUtils.createServiceCluster( "cluster-2", new ServiceType("service-type-2"), Arrays.asList( - modelUtils.createServiceInstance("config-id-20", hostName1, ServiceMonitorStatus.UP), - modelUtils.createServiceInstance("config-id-21", hostName3, ServiceMonitorStatus.UP) + modelUtils.createServiceInstance("config-id-20", hostName1, ServiceStatus.UP), + modelUtils.createServiceInstance("config-id-21", hostName3, ServiceStatus.UP) ) ) )); @@ -250,38 +250,38 @@ public class ApplicationApiImplTest { HostName noRemarksHost6 = modelUtils.createNode("host6", HostStatus.NO_REMARKS); HostName allowedToBeDownHost7 = modelUtils.createNode("host7", HostStatus.ALLOWED_TO_BE_DOWN); - ApplicationInstance applicationInstance = + ApplicationInstance applicationInstance = modelUtils.createApplicationInstance(Arrays.asList( modelUtils.createServiceCluster( "cluster-4", VespaModelUtil.STORAGENODE_SERVICE_TYPE, Arrays.asList( - modelUtils.createServiceInstance("config-id-40", allowedToBeDownHost1, ServiceMonitorStatus.UP), - modelUtils.createServiceInstance("config-id-41", noRemarksHost2, ServiceMonitorStatus.DOWN) + modelUtils.createServiceInstance("config-id-40", allowedToBeDownHost1, ServiceStatus.UP), + modelUtils.createServiceInstance("config-id-41", noRemarksHost2, ServiceStatus.DOWN) ) ), modelUtils.createServiceCluster( "cluster-1", new ServiceType("service-type-1"), Arrays.asList( - modelUtils.createServiceInstance("config-id-10", allowedToBeDownHost1, ServiceMonitorStatus.UP), - modelUtils.createServiceInstance("config-id-11", allowedToBeDownHost3, ServiceMonitorStatus.UP) + modelUtils.createServiceInstance("config-id-10", allowedToBeDownHost1, ServiceStatus.UP), + modelUtils.createServiceInstance("config-id-11", allowedToBeDownHost3, ServiceStatus.UP) ) ), modelUtils.createServiceCluster( "cluster-3", VespaModelUtil.STORAGENODE_SERVICE_TYPE, Arrays.asList( - modelUtils.createServiceInstance("config-id-30", allowedToBeDownHost4, ServiceMonitorStatus.UP), - modelUtils.createServiceInstance("config-id-31", noRemarksHost5, ServiceMonitorStatus.UP) + modelUtils.createServiceInstance("config-id-30", allowedToBeDownHost4, ServiceStatus.UP), + modelUtils.createServiceInstance("config-id-31", noRemarksHost5, ServiceStatus.UP) ) ), modelUtils.createServiceCluster( "cluster-2", VespaModelUtil.STORAGENODE_SERVICE_TYPE, Arrays.asList( - modelUtils.createServiceInstance("config-id-20", noRemarksHost6, ServiceMonitorStatus.UP), - modelUtils.createServiceInstance("config-id-21", allowedToBeDownHost7, ServiceMonitorStatus.UP) + modelUtils.createServiceInstance("config-id-20", noRemarksHost6, ServiceStatus.UP), + modelUtils.createServiceInstance("config-id-21", allowedToBeDownHost7, ServiceStatus.UP) ) ) )); diff --git a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/ClusterApiImplTest.java b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/ClusterApiImplTest.java index 123c9bcc4c2..d17ffd4452d 100644 --- a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/ClusterApiImplTest.java +++ b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/ClusterApiImplTest.java @@ -3,9 +3,9 @@ package com.yahoo.vespa.orchestrator.model; import com.yahoo.vespa.applicationmodel.HostName; import com.yahoo.vespa.applicationmodel.ServiceCluster; +import com.yahoo.vespa.applicationmodel.ServiceStatus; import com.yahoo.vespa.applicationmodel.ServiceType; import com.yahoo.vespa.orchestrator.status.HostStatus; -import com.yahoo.vespa.service.monitor.ServiceMonitorStatus; import org.junit.Test; import java.util.ArrayList; @@ -29,15 +29,15 @@ public class ClusterApiImplTest { HostName hostName5 = modelUtils.createNode("host5", HostStatus.NO_REMARKS); - ServiceCluster serviceCluster = modelUtils.createServiceCluster( + ServiceCluster serviceCluster = modelUtils.createServiceCluster( "cluster", new ServiceType("service-type"), Arrays.asList( - modelUtils.createServiceInstance("service-1", hostName1, ServiceMonitorStatus.UP), - modelUtils.createServiceInstance("service-2", hostName2, ServiceMonitorStatus.DOWN), - modelUtils.createServiceInstance("service-3", hostName3, ServiceMonitorStatus.UP), - modelUtils.createServiceInstance("service-4", hostName4, ServiceMonitorStatus.DOWN), - modelUtils.createServiceInstance("service-5", hostName5, ServiceMonitorStatus.UP) + modelUtils.createServiceInstance("service-1", hostName1, ServiceStatus.UP), + modelUtils.createServiceInstance("service-2", hostName2, ServiceStatus.DOWN), + modelUtils.createServiceInstance("service-3", hostName3, ServiceStatus.UP), + modelUtils.createServiceInstance("service-4", hostName4, ServiceStatus.DOWN), + modelUtils.createServiceInstance("service-5", hostName5, ServiceStatus.UP) ) ); @@ -68,15 +68,15 @@ public class ClusterApiImplTest { HostName hostName5 = modelUtils.createNode("host5", HostStatus.NO_REMARKS); - ServiceCluster serviceCluster = modelUtils.createServiceCluster( + ServiceCluster serviceCluster = modelUtils.createServiceCluster( "cluster", new ServiceType("service-type"), Arrays.asList( - modelUtils.createServiceInstance("service-1", hostName1, ServiceMonitorStatus.UP), - modelUtils.createServiceInstance("service-2", hostName2, ServiceMonitorStatus.DOWN), - modelUtils.createServiceInstance("service-3", hostName3, ServiceMonitorStatus.UP), - modelUtils.createServiceInstance("service-4", hostName4, ServiceMonitorStatus.DOWN), - modelUtils.createServiceInstance("service-5", hostName5, ServiceMonitorStatus.UP) + modelUtils.createServiceInstance("service-1", hostName1, ServiceStatus.UP), + modelUtils.createServiceInstance("service-2", hostName2, ServiceStatus.DOWN), + modelUtils.createServiceInstance("service-3", hostName3, ServiceStatus.UP), + modelUtils.createServiceInstance("service-4", hostName4, ServiceStatus.DOWN), + modelUtils.createServiceInstance("service-5", hostName5, ServiceStatus.UP) ) ); @@ -92,7 +92,7 @@ public class ClusterApiImplTest { verifyNoServices(serviceCluster, false, true, hostName1, hostName2, hostName3, hostName4); } - private void verifyNoServices(ServiceCluster serviceCluster, + private void verifyNoServices(ServiceCluster serviceCluster, boolean expectedNoServicesInGroupIsUp, boolean expectedNoServicesOutsideGroupIsDown, HostName... groupNodes) { @@ -112,12 +112,12 @@ public class ClusterApiImplTest { HostName hostName2 = new HostName("host2"); HostName hostName3 = new HostName("host3"); - ServiceCluster serviceCluster = modelUtils.createServiceCluster( + ServiceCluster serviceCluster = modelUtils.createServiceCluster( "cluster", VespaModelUtil.STORAGENODE_SERVICE_TYPE, Arrays.asList( - modelUtils.createServiceInstance("storage-1", hostName1, ServiceMonitorStatus.UP), - modelUtils.createServiceInstance("storage-2", hostName2, ServiceMonitorStatus.DOWN) + modelUtils.createServiceInstance("storage-1", hostName1, ServiceStatus.UP), + modelUtils.createServiceInstance("storage-2", hostName2, ServiceStatus.DOWN) ) ); 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 07b72a128a6..9586f92af30 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 @@ -8,12 +8,12 @@ import com.yahoo.vespa.applicationmodel.ConfigId; import com.yahoo.vespa.applicationmodel.HostName; import com.yahoo.vespa.applicationmodel.ServiceCluster; import com.yahoo.vespa.applicationmodel.ServiceInstance; +import com.yahoo.vespa.applicationmodel.ServiceStatus; import com.yahoo.vespa.applicationmodel.ServiceType; import com.yahoo.vespa.applicationmodel.TenantId; import com.yahoo.vespa.orchestrator.controller.ClusterControllerClientFactory; import com.yahoo.vespa.orchestrator.status.HostStatus; import com.yahoo.vespa.orchestrator.status.MutableStatusRegistry; -import com.yahoo.vespa.service.monitor.ServiceMonitorStatus; import java.util.HashMap; import java.util.List; @@ -46,41 +46,41 @@ public class ModelTestUtils { } ApplicationApiImpl createApplicationApiImpl( - ApplicationInstance applicationInstance, + ApplicationInstance applicationInstance, HostName... hostnames) { NodeGroup nodeGroup = new NodeGroup(applicationInstance, hostnames); return new ApplicationApiImpl(nodeGroup, statusRegistry, clusterControllerClientFactory); } - ApplicationInstance createApplicationInstance( - List> serviceClusters) { - Set> serviceClusterSet = serviceClusters.stream() + ApplicationInstance createApplicationInstance( + List serviceClusters) { + Set serviceClusterSet = serviceClusters.stream() .collect(Collectors.toSet()); - return new ApplicationInstance<>( + return new ApplicationInstance( new TenantId("tenant"), new ApplicationInstanceId("application-name:foo:bar:default"), serviceClusterSet); } - ServiceCluster createServiceCluster( + ServiceCluster createServiceCluster( String clusterId, ServiceType serviceType, - List> serviceInstances) { - Set> serviceInstanceSet = serviceInstances.stream() + List serviceInstances) { + Set serviceInstanceSet = serviceInstances.stream() .collect(Collectors.toSet()); - return new ServiceCluster<>( + return new ServiceCluster( new ClusterId(clusterId), serviceType, serviceInstanceSet); } - ServiceInstance createServiceInstance( + ServiceInstance createServiceInstance( String configId, HostName hostName, - ServiceMonitorStatus status) { - return new ServiceInstance<>( + ServiceStatus status) { + return new ServiceInstance( new ConfigId(configId), hostName, status); diff --git a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/NodeGroupTest.java b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/NodeGroupTest.java index ddb7e901ce2..c0e012c63a2 100644 --- a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/NodeGroupTest.java +++ b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/NodeGroupTest.java @@ -5,7 +5,6 @@ import com.yahoo.vespa.applicationmodel.ApplicationInstance; import com.yahoo.vespa.applicationmodel.ApplicationInstanceId; import com.yahoo.vespa.applicationmodel.HostName; import com.yahoo.vespa.applicationmodel.TenantId; -import com.yahoo.vespa.service.monitor.ServiceMonitorStatus; import org.junit.Test; import java.util.Arrays; @@ -16,7 +15,7 @@ import static org.junit.Assert.assertEquals; public class NodeGroupTest { @Test public void testBasics() { - ApplicationInstance applicationInstance = new ApplicationInstance<>( + ApplicationInstance applicationInstance = new ApplicationInstance( new TenantId("tenant"), new ApplicationInstanceId("application-instance"), new HashSet<>()); diff --git a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/VespaModelUtilTest.java b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/VespaModelUtilTest.java index 22d0717a6bf..33efc2a8486 100644 --- a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/VespaModelUtilTest.java +++ b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/model/VespaModelUtilTest.java @@ -8,10 +8,10 @@ import com.yahoo.vespa.applicationmodel.ConfigId; import com.yahoo.vespa.applicationmodel.HostName; import com.yahoo.vespa.applicationmodel.ServiceCluster; import com.yahoo.vespa.applicationmodel.ServiceInstance; +import com.yahoo.vespa.applicationmodel.ServiceStatus; import com.yahoo.vespa.applicationmodel.ServiceType; import com.yahoo.vespa.applicationmodel.TenantId; import com.yahoo.vespa.orchestrator.TestUtil; -import com.yahoo.vespa.service.monitor.ServiceMonitorStatus; import org.junit.Test; import java.util.Arrays; @@ -36,31 +36,31 @@ public class VespaModelUtilTest { public static final HostName controller0Host = new HostName("controller-0"); - private static final ServiceInstance controller0 = new ServiceInstance<>( + private static final ServiceInstance controller0 = new ServiceInstance( TestUtil.clusterControllerConfigId(CONTENT_CLUSTER_ID.toString(), 0), controller0Host, - ServiceMonitorStatus.UP); - private static final ServiceInstance controller1 = new ServiceInstance<>( + ServiceStatus.UP); + private static final ServiceInstance controller1 = new ServiceInstance( TestUtil.clusterControllerConfigId(CONTENT_CLUSTER_ID.toString(), 1), new HostName("controller-1"), - ServiceMonitorStatus.UP); + ServiceStatus.UP); - private static final ServiceCluster controllerCluster = - new ServiceCluster<>( + private static final ServiceCluster controllerCluster = + new ServiceCluster( new ClusterId(CONTENT_CLUSTER_ID.s() + "-controller"), VespaModelUtil.CLUSTER_CONTROLLER_SERVICE_TYPE, makeServiceInstanceSet(controller1, controller0)); // Distributor Service Cluster - private static final ServiceInstance distributor0 = new ServiceInstance<>( + private static final ServiceInstance distributor0 = new ServiceInstance( new ConfigId("distributor-config-id"), new HostName("distributor-0"), - ServiceMonitorStatus.UP); + ServiceStatus.UP); - private static final ServiceCluster distributorCluster = - new ServiceCluster<>( + private static final ServiceCluster distributorCluster = + new ServiceCluster( CONTENT_CLUSTER_ID, VespaModelUtil.DISTRIBUTOR_SERVICE_TYPE, makeServiceInstanceSet(distributor0)); @@ -68,27 +68,27 @@ public class VespaModelUtilTest { // Storage Node Service Cluster public static final HostName storage0Host = new HostName("storage-0"); - private static final ServiceInstance storage0 = new ServiceInstance<>( + private static final ServiceInstance storage0 = new ServiceInstance( new ConfigId("storage-config-id"), storage0Host, - ServiceMonitorStatus.UP); + ServiceStatus.UP); - private static final ServiceCluster storageCluster = - new ServiceCluster<>( + private static final ServiceCluster storageCluster = + new ServiceCluster( CONTENT_CLUSTER_ID, VespaModelUtil.STORAGENODE_SERVICE_TYPE, makeServiceInstanceSet(storage0)); // Secondary Distributor Service Cluster - private static final ServiceInstance secondaryDistributor0 = new ServiceInstance<>( + private static final ServiceInstance secondaryDistributor0 = new ServiceInstance( new ConfigId("secondary-distributor-config-id"), new HostName("secondary-distributor-0"), - ServiceMonitorStatus.UP); + ServiceStatus.UP); private static final ClusterId SECONDARY_CONTENT_CLUSTER_ID = new ClusterId("secondary-content-cluster-0"); - private static final ServiceCluster secondaryDistributorCluster = - new ServiceCluster<>( + private static final ServiceCluster secondaryDistributorCluster = + new ServiceCluster( SECONDARY_CONTENT_CLUSTER_ID, VespaModelUtil.DISTRIBUTOR_SERVICE_TYPE, makeServiceInstanceSet(secondaryDistributor0)); @@ -96,21 +96,21 @@ public class VespaModelUtilTest { // Secondary Storage Node Service Cluster public static final HostName secondaryStorage0Host = new HostName("secondary-storage-0"); - private static final ServiceInstance secondaryStorage0 = new ServiceInstance<>( + private static final ServiceInstance secondaryStorage0 = new ServiceInstance( new ConfigId("secondary-storage-config-id"), secondaryStorage0Host, - ServiceMonitorStatus.UP); + ServiceStatus.UP); - private static final ServiceCluster secondaryStorageCluster = - new ServiceCluster<>( + private static final ServiceCluster secondaryStorageCluster = + new ServiceCluster( SECONDARY_CONTENT_CLUSTER_ID, VespaModelUtil.STORAGENODE_SERVICE_TYPE, makeServiceInstanceSet(secondaryStorage0)); // The Application Instance - public static final ApplicationInstance application = - new ApplicationInstance<>( + public static final ApplicationInstance application = + new ApplicationInstance( new TenantId("tenant-0"), new ApplicationInstanceId("application-0"), makeServiceClusterSet( @@ -120,8 +120,8 @@ public class VespaModelUtilTest { secondaryDistributorCluster, secondaryStorageCluster)); - private ServiceCluster createServiceCluster(ServiceType serviceType) { - return new ServiceCluster( + private ServiceCluster createServiceCluster(ServiceType serviceType) { + return new ServiceCluster( new ClusterId("cluster-id"), serviceType, new HashSet<>()); @@ -129,19 +129,19 @@ public class VespaModelUtilTest { @Test public void verifyControllerClusterIsRecognized() { - ServiceCluster cluster = createServiceCluster(VespaModelUtil.CLUSTER_CONTROLLER_SERVICE_TYPE); + ServiceCluster cluster = createServiceCluster(VespaModelUtil.CLUSTER_CONTROLLER_SERVICE_TYPE); assertTrue(VespaModelUtil.isClusterController(cluster)); } @Test public void verifyNonControllerClusterIsNotRecognized() { - ServiceCluster cluster = createServiceCluster(new ServiceType("foo")); + ServiceCluster cluster = createServiceCluster(new ServiceType("foo")); assertFalse(VespaModelUtil.isClusterController(cluster)); } @Test public void verifyStorageClusterIsRecognized() { - ServiceCluster cluster = createServiceCluster(VespaModelUtil.STORAGENODE_SERVICE_TYPE); + ServiceCluster cluster = createServiceCluster(VespaModelUtil.STORAGENODE_SERVICE_TYPE); assertTrue(VespaModelUtil.isStorage(cluster)); cluster = createServiceCluster(VespaModelUtil.STORAGENODE_SERVICE_TYPE); assertTrue(VespaModelUtil.isStorage(cluster)); @@ -149,13 +149,13 @@ public class VespaModelUtilTest { @Test public void verifyNonStorageClusterIsNotRecognized() { - ServiceCluster cluster = createServiceCluster(new ServiceType("foo")); + ServiceCluster cluster = createServiceCluster(new ServiceType("foo")); assertFalse(VespaModelUtil.isStorage(cluster)); } @Test public void verifyContentClusterIsRecognized() { - ServiceCluster cluster = createServiceCluster(VespaModelUtil.DISTRIBUTOR_SERVICE_TYPE); + ServiceCluster cluster = createServiceCluster(VespaModelUtil.DISTRIBUTOR_SERVICE_TYPE); assertTrue(VespaModelUtil.isContent(cluster)); cluster = createServiceCluster(VespaModelUtil.STORAGENODE_SERVICE_TYPE); assertTrue(VespaModelUtil.isContent(cluster)); @@ -165,7 +165,7 @@ public class VespaModelUtilTest { @Test public void verifyNonContentClusterIsNotRecognized() { - ServiceCluster cluster = createServiceCluster(new ServiceType("foo")); + ServiceCluster cluster = createServiceCluster(new ServiceType("foo")); assertFalse(VespaModelUtil.isContent(cluster)); } @@ -197,7 +197,7 @@ public class VespaModelUtilTest { @Test public void testGetStorageNodeAtHost() { - Optional> service = + Optional service = VespaModelUtil.getStorageNodeAtHost(application, storage0Host); assertTrue(service.isPresent()); assertThat(service.get()).isEqualTo(storage0); @@ -205,7 +205,7 @@ public class VespaModelUtilTest { @Test public void testGetStorageNodeAtHostWithUnknownHost() { - Optional> service = + Optional service = VespaModelUtil.getStorageNodeAtHost(application, new HostName("storage-1")); assertFalse(service.isPresent()); } 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 ebd466495b9..0ae385bc717 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 @@ -23,7 +23,6 @@ import com.yahoo.vespa.orchestrator.status.ApplicationInstanceStatus; import com.yahoo.vespa.orchestrator.status.HostStatus; import com.yahoo.vespa.orchestrator.status.MutableStatusRegistry; import com.yahoo.vespa.orchestrator.status.StatusService; -import com.yahoo.vespa.service.monitor.ServiceMonitorStatus; import org.junit.Test; import javax.ws.rs.BadRequestException; @@ -70,7 +69,7 @@ public class HostResourceTest { static { when(mockInstanceLookupService.findInstanceByHost(any())) .thenReturn(Optional.of( - new ApplicationInstance<>( + new ApplicationInstance( TENANT_ID, APPLICATION_INSTANCE_ID, makeServiceClusterSet()))); @@ -79,13 +78,13 @@ public class HostResourceTest { private static final InstanceLookupService alwaysEmptyInstanceLookUpService = new InstanceLookupService() { @Override - public Optional> findInstanceById( + public Optional findInstanceById( final ApplicationInstanceReference applicationInstanceReference) { return Optional.empty(); } @Override - public Optional> findInstanceByHost(final HostName hostName) { + public Optional findInstanceByHost(final HostName hostName) { return Optional.empty(); } @@ -98,7 +97,7 @@ public class HostResourceTest { private static class AlwaysAllowPolicy implements Policy { @Override public void grantSuspensionRequest( - ApplicationInstance applicationInstance, + ApplicationInstance applicationInstance, HostName hostName, MutableStatusRegistry hostStatusService) throws HostStateChangeDeniedException { @@ -118,7 +117,7 @@ public class HostResourceTest { @Override public void releaseSuspensionGrant( - ApplicationInstance applicationInstance, + ApplicationInstance applicationInstance, HostName hostName, MutableStatusRegistry hostStatusRegistry) { } @@ -199,7 +198,7 @@ public class HostResourceTest { private static class AlwaysFailPolicy implements Policy { @Override public void grantSuspensionRequest( - ApplicationInstance applicationInstance, + ApplicationInstance applicationInstance, HostName hostName, MutableStatusRegistry hostStatusRegistry) throws HostStateChangeDeniedException { doThrow(); @@ -222,7 +221,7 @@ public class HostResourceTest { @Override public void releaseSuspensionGrant( - ApplicationInstance applicationInstance, + ApplicationInstance applicationInstance, HostName hostName, MutableStatusRegistry hostStatusRegistry) throws HostStateChangeDeniedException { doThrow(); diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ConfigServerApplication.java b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ConfigServerApplication.java index 5cffcec82b8..1a48ba870fb 100644 --- a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ConfigServerApplication.java +++ b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ConfigServerApplication.java @@ -8,6 +8,7 @@ import com.yahoo.vespa.applicationmodel.ConfigId; import com.yahoo.vespa.applicationmodel.HostName; import com.yahoo.vespa.applicationmodel.ServiceCluster; import com.yahoo.vespa.applicationmodel.ServiceInstance; +import com.yahoo.vespa.applicationmodel.ServiceStatus; import com.yahoo.vespa.applicationmodel.ServiceType; import com.yahoo.vespa.applicationmodel.TenantId; @@ -26,23 +27,23 @@ public class ConfigServerApplication { public static final ApplicationInstanceId APPLICATION_INSTANCE_ID = new ApplicationInstanceId("zone-config-servers"); public static final String CONFIG_ID_PREFIX = "configid."; - ApplicationInstance toApplicationInstance(List hostnames) { - Set> serviceInstances = hostnames.stream() - .map(hostname -> new ServiceInstance<>( + ApplicationInstance toApplicationInstance(List hostnames) { + Set serviceInstances = hostnames.stream() + .map(hostname -> new ServiceInstance( new ConfigId(CONFIG_ID_PREFIX + hostname), new HostName(hostname), - ServiceMonitorStatus.NOT_CHECKED)) + ServiceStatus.NOT_CHECKED)) .collect(Collectors.toSet()); - ServiceCluster serviceCluster = new ServiceCluster<>( + ServiceCluster serviceCluster = new ServiceCluster( CLUSTER_ID, SERVICE_TYPE, serviceInstances); - Set> serviceClusters = + Set serviceClusters = Stream.of(serviceCluster).collect(Collectors.toSet()); - ApplicationInstance applicationInstance = new ApplicationInstance<>( + ApplicationInstance applicationInstance = new ApplicationInstance( TENANT_ID, APPLICATION_INSTANCE_ID, serviceClusters); diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ModelGenerator.java b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ModelGenerator.java index ed40dcc675a..d9f019ade63 100644 --- a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ModelGenerator.java +++ b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ModelGenerator.java @@ -16,6 +16,7 @@ import com.yahoo.vespa.applicationmodel.HostName; import com.yahoo.vespa.applicationmodel.ServiceCluster; import com.yahoo.vespa.applicationmodel.ServiceClusterKey; import com.yahoo.vespa.applicationmodel.ServiceInstance; +import com.yahoo.vespa.applicationmodel.ServiceStatus; import com.yahoo.vespa.applicationmodel.ServiceType; import com.yahoo.vespa.applicationmodel.TenantId; @@ -42,12 +43,11 @@ public class ModelGenerator { Zone zone, List configServerHosts, SlobrokMonitorManager slobrokMonitorManager) { - Map> applicationInstances = new HashMap<>(); + Map applicationInstances = new HashMap<>(); for (ApplicationInfo applicationInfo : superModel.getAllApplicationInfos()) { - ApplicationInstance applicationInstance = toApplicationInstance( + ApplicationInstance applicationInstance = toApplicationInstance( applicationInfo, zone, slobrokMonitorManager); @@ -57,7 +57,7 @@ public class ModelGenerator { // The config server is part of the service model (but not super model) if (!configServerHosts.isEmpty()) { ConfigServerApplication configServerApplication = new ConfigServerApplication(); - ApplicationInstance configServerApplicationInstance = + ApplicationInstance configServerApplicationInstance = configServerApplication.toApplicationInstance(configServerHosts); applicationInstances.put(configServerApplicationInstance.reference(), configServerApplicationInstance); } @@ -65,17 +65,17 @@ public class ModelGenerator { return new ServiceModel(applicationInstances); } - ApplicationInstance toApplicationInstance( + ApplicationInstance toApplicationInstance( ApplicationInfo applicationInfo, Zone zone, SlobrokMonitorManager slobrokMonitorManager) { - Map>> groupedServiceInstances = new HashMap<>(); + Map> groupedServiceInstances = new HashMap<>(); for (HostInfo host : applicationInfo.getModel().getHosts()) { HostName hostName = new HostName(host.getHostname()); for (ServiceInfo serviceInfo : host.getServices()) { ServiceClusterKey serviceClusterKey = toServiceClusterKey(serviceInfo); - ServiceInstance serviceInstance = + ServiceInstance serviceInstance = toServiceInstance( applicationInfo.getApplicationId(), serviceInfo, @@ -89,14 +89,14 @@ public class ModelGenerator { } } - Set> serviceClusters = groupedServiceInstances.entrySet().stream() - .map(entry -> new ServiceCluster<>( + Set serviceClusters = groupedServiceInstances.entrySet().stream() + .map(entry -> new ServiceCluster( entry.getKey().clusterId(), entry.getKey().serviceType(), entry.getValue())) .collect(Collectors.toSet()); - ApplicationInstance applicationInstance = new ApplicationInstance<>( + ApplicationInstance applicationInstance = new ApplicationInstance( new TenantId(applicationInfo.getApplicationId().tenant().toString()), toApplicationInstanceId(applicationInfo, zone), serviceClusters); @@ -110,19 +110,19 @@ public class ModelGenerator { return new ServiceClusterKey(clusterId, serviceType); } - ServiceInstance toServiceInstance( + ServiceInstance toServiceInstance( ApplicationId applicationId, ServiceInfo serviceInfo, HostName hostName, SlobrokMonitorManager slobrokMonitorManager) { ConfigId configId = new ConfigId(serviceInfo.getConfigId()); - ServiceMonitorStatus status = slobrokMonitorManager.getStatus( + ServiceStatus status = slobrokMonitorManager.getStatus( applicationId, toServiceType(serviceInfo), configId); - return new ServiceInstance<>(configId, hostName, status); + return new ServiceInstance(configId, hostName, status); } ApplicationInstanceId toApplicationInstanceId(ApplicationInfo applicationInfo, Zone zone) { diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceModel.java b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceModel.java index b39af0238c5..7fe2747200a 100644 --- a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceModel.java +++ b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceModel.java @@ -10,25 +10,25 @@ import java.util.Optional; /** * The ServiceModel is almost a mirror of the SuperModel, except that it - * also gives ServiceMonitorStatus on each service, and there may be + * also gives ServiceStatus on each service, and there may be * artificial applications like the config server "application". */ // @Immutable public class ServiceModel { private final Map> applications; + ApplicationInstance> applications; ServiceModel(Map> applications) { + ApplicationInstance> applications) { this.applications = Collections.unmodifiableMap(applications); } Map> getAllApplicationInstances() { + ApplicationInstance> getAllApplicationInstances() { return applications; } - Optional> getApplicationInstance(ApplicationInstanceReference reference) { + Optional getApplicationInstance(ApplicationInstanceReference reference) { return Optional.ofNullable(applications.get(reference)); } } diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceMonitor.java b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceMonitor.java index e18ccceec6c..e99d34fc15e 100644 --- a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceMonitor.java +++ b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceMonitor.java @@ -18,6 +18,6 @@ public interface ServiceMonitor { * Returns the current liveness status (up, down or unknown) of all instances * of all services of all clusters of all applications in a zone. */ - Map> queryStatusOfAllApplicationInstances(); + Map queryStatusOfAllApplicationInstances(); } diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceMonitorImpl.java b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceMonitorImpl.java index 80be6470686..20cc66a6c30 100644 --- a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceMonitorImpl.java +++ b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceMonitorImpl.java @@ -59,7 +59,7 @@ public class ServiceMonitorImpl implements ServiceMonitor { @Override public Map> queryStatusOfAllApplicationInstances() { + ApplicationInstance> queryStatusOfAllApplicationInstances() { return serviceModelCache.get().getAllApplicationInstances(); } } diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceMonitorStatus.java b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceMonitorStatus.java deleted file mode 100644 index f9c35ac47bd..00000000000 --- a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceMonitorStatus.java +++ /dev/null @@ -1,11 +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.service.monitor; - -/** - * @author oyving - */ -public enum ServiceMonitorStatus { - UP, - DOWN, - NOT_CHECKED; -} diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/SlobrokMonitorManager.java b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/SlobrokMonitorManager.java index 95baa9013d1..41d379624cb 100644 --- a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/SlobrokMonitorManager.java +++ b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/SlobrokMonitorManager.java @@ -7,6 +7,7 @@ import com.yahoo.config.model.api.SuperModelListener; import com.yahoo.config.provision.ApplicationId; import com.yahoo.log.LogLevel; import com.yahoo.vespa.applicationmodel.ConfigId; +import com.yahoo.vespa.applicationmodel.ServiceStatus; import com.yahoo.vespa.applicationmodel.ServiceType; import java.util.HashMap; @@ -54,22 +55,22 @@ public class SlobrokMonitorManager implements SuperModelListener { } } - ServiceMonitorStatus getStatus(ApplicationId applicationId, - ServiceType serviceType, - ConfigId configId) { + ServiceStatus getStatus(ApplicationId applicationId, + ServiceType serviceType, + ConfigId configId) { Optional slobrokServiceName = findSlobrokServiceName(serviceType, configId); if (slobrokServiceName.isPresent()) { synchronized (monitor) { SlobrokMonitor2 slobrokMonitor = slobrokMonitors.get(applicationId); if (slobrokMonitor != null && slobrokMonitor.registeredInSlobrok(slobrokServiceName.get())) { - return ServiceMonitorStatus.UP; + return ServiceStatus.UP; } else { - return ServiceMonitorStatus.DOWN; + return ServiceStatus.DOWN; } } } else { - return ServiceMonitorStatus.NOT_CHECKED; + return ServiceStatus.NOT_CHECKED; } } diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/ConfigServerApplicationTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/ConfigServerApplicationTest.java index fb123da2603..8eebdbb611b 100644 --- a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/ConfigServerApplicationTest.java +++ b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/ConfigServerApplicationTest.java @@ -2,6 +2,7 @@ package com.yahoo.vespa.service.monitor; import com.yahoo.vespa.applicationmodel.ApplicationInstance; +import com.yahoo.vespa.applicationmodel.ServiceStatus; import org.junit.Test; import java.util.List; @@ -23,7 +24,7 @@ public class ConfigServerApplicationTest { @Test public void toApplicationInstance() throws Exception { ConfigServerApplication application = new ConfigServerApplication(); - ApplicationInstance applicationInstance = + ApplicationInstance applicationInstance = application.toApplicationInstance(configServerList); assertEquals( @@ -43,7 +44,7 @@ public class ConfigServerApplicationTest { applicationInstance.serviceClusters().iterator().next().clusterId()); assertEquals( - ServiceMonitorStatus.NOT_CHECKED, + ServiceStatus.NOT_CHECKED, applicationInstance .serviceClusters().iterator().next() .serviceInstances().iterator().next() diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/ModelGeneratorTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/ModelGeneratorTest.java index 4b82286235e..3ac8c20fcab 100644 --- a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/ModelGeneratorTest.java +++ b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/ModelGeneratorTest.java @@ -9,6 +9,7 @@ import com.yahoo.vespa.applicationmodel.ApplicationInstance; import com.yahoo.vespa.applicationmodel.ApplicationInstanceReference; import com.yahoo.vespa.applicationmodel.ServiceCluster; import com.yahoo.vespa.applicationmodel.ServiceInstance; +import com.yahoo.vespa.applicationmodel.ServiceStatus; import org.junit.Test; import java.util.Collections; @@ -43,7 +44,7 @@ public class ModelGeneratorTest { SlobrokMonitorManager slobrokMonitorManager = mock(SlobrokMonitorManager.class); when(slobrokMonitorManager.getStatus(any(), any(), any())) - .thenReturn(ServiceMonitorStatus.UP); + .thenReturn(ServiceStatus.UP); ServiceModel serviceModel = modelGenerator.toServiceModel( @@ -53,17 +54,17 @@ public class ModelGeneratorTest { slobrokMonitorManager); Map> applicationInstances = + ApplicationInstance> applicationInstances = serviceModel.getAllApplicationInstances(); assertEquals(2, applicationInstances.size()); Iterator>> iterator = + ApplicationInstance>> iterator = applicationInstances.entrySet().iterator(); - ApplicationInstance applicationInstance1 = iterator.next().getValue(); - ApplicationInstance applicationInstance2 = iterator.next().getValue(); + ApplicationInstance applicationInstance1 = iterator.next().getValue(); + ApplicationInstance applicationInstance2 = iterator.next().getValue(); if (applicationInstance1.applicationInstanceId().equals( ConfigServerApplication.APPLICATION_INSTANCE_ID)) { @@ -87,7 +88,7 @@ public class ModelGeneratorTest { SlobrokMonitorManager slobrokMonitorManager = mock(SlobrokMonitorManager.class); when(slobrokMonitorManager.getStatus(any(), any(), any())) - .thenReturn(ServiceMonitorStatus.UP); + .thenReturn(ServiceStatus.UP); ServiceModel serviceModel = modelGenerator.toServiceModel( @@ -97,14 +98,14 @@ public class ModelGeneratorTest { slobrokMonitorManager); Map> applicationInstances = + ApplicationInstance> applicationInstances = serviceModel.getAllApplicationInstances(); assertEquals(1, applicationInstances.size()); verifyOtherApplication(applicationInstances.values().iterator().next()); } - private void verifyOtherApplication(ApplicationInstance applicationInstance) { + private void verifyOtherApplication(ApplicationInstance applicationInstance) { assertEquals(String.format("%s:%s:%s:%s:%s", ExampleModel.TENANT, ExampleModel.APPLICATION_NAME, @@ -114,25 +115,25 @@ public class ModelGeneratorTest { applicationInstance.reference().toString()); assertEquals(ExampleModel.TENANT, applicationInstance.tenantId().toString()); - Set> serviceClusters = + Set serviceClusters = applicationInstance.serviceClusters(); assertEquals(1, serviceClusters.size()); - ServiceCluster serviceCluster = serviceClusters.iterator().next(); + ServiceCluster serviceCluster = serviceClusters.iterator().next(); assertEquals(ExampleModel.CLUSTER_ID, serviceCluster.clusterId().toString()); assertEquals(ExampleModel.SERVICE_TYPE, serviceCluster.serviceType().toString()); - Set> serviceInstances = + Set serviceInstances = serviceCluster.serviceInstances(); assertEquals(1, serviceClusters.size()); - ServiceInstance serviceInstance = serviceInstances.iterator().next(); + ServiceInstance serviceInstance = serviceInstances.iterator().next(); assertEquals(HOSTNAME, serviceInstance.hostName().toString()); assertEquals(ExampleModel.CONFIG_ID, serviceInstance.configId().toString()); - assertEquals(ServiceMonitorStatus.UP, serviceInstance.serviceStatus()); + assertEquals(ServiceStatus.UP, serviceInstance.serviceStatus()); } private void verifyConfigServerApplication( - ApplicationInstance applicationInstance) { + ApplicationInstance applicationInstance) { assertEquals(ConfigServerApplication.APPLICATION_INSTANCE_ID, applicationInstance.applicationInstanceId()); } -} \ No newline at end of file +} diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/SlobrokMonitor2Test.java b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/SlobrokMonitor2Test.java index 7be63e527cf..8ef21c21c4c 100644 --- a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/SlobrokMonitor2Test.java +++ b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/SlobrokMonitor2Test.java @@ -33,4 +33,4 @@ public class SlobrokMonitor2Test { String[] expectedSpecs = new String[] {"tcp/" + hostname + ":" + port}; verify(slobrokList).setup(expectedSpecs); */ } -} \ No newline at end of file +} diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/SlobrokMonitorManagerTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/SlobrokMonitorManagerTest.java index f34dd91181c..9c101694244 100644 --- a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/SlobrokMonitorManagerTest.java +++ b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/SlobrokMonitorManagerTest.java @@ -4,6 +4,7 @@ package com.yahoo.vespa.service.monitor; import com.yahoo.config.model.api.ApplicationInfo; import com.yahoo.config.model.api.SuperModel; import com.yahoo.vespa.applicationmodel.ConfigId; +import com.yahoo.vespa.applicationmodel.ServiceStatus; import com.yahoo.vespa.applicationmodel.ServiceType; import org.junit.Before; import org.junit.Test; @@ -43,30 +44,30 @@ public class SlobrokMonitorManagerTest { @Test public void testGetStatus_ApplicationNotInSlobrok() { when(slobrokMonitor.registeredInSlobrok("config.id")).thenReturn(true); - assertEquals(ServiceMonitorStatus.DOWN, getStatus("topleveldispatch")); + assertEquals(ServiceStatus.DOWN, getStatus("topleveldispatch")); } @Test public void testGetStatus_ApplicationInSlobrok() { slobrokMonitorManager.applicationActivated(superModel, application); when(slobrokMonitor.registeredInSlobrok("config.id")).thenReturn(true); - assertEquals(ServiceMonitorStatus.UP, getStatus("topleveldispatch")); + assertEquals(ServiceStatus.UP, getStatus("topleveldispatch")); } @Test public void testGetStatus_ServiceNotInSlobrok() { slobrokMonitorManager.applicationActivated(superModel, application); when(slobrokMonitor.registeredInSlobrok("config.id")).thenReturn(false); - assertEquals(ServiceMonitorStatus.DOWN, getStatus("topleveldispatch")); + assertEquals(ServiceStatus.DOWN, getStatus("topleveldispatch")); } @Test public void testGetStatus_NotChecked() { - assertEquals(ServiceMonitorStatus.NOT_CHECKED, getStatus("slobrok")); + assertEquals(ServiceStatus.NOT_CHECKED, getStatus("slobrok")); verify(slobrokMonitor, times(0)).registeredInSlobrok(any()); } - private ServiceMonitorStatus getStatus(String serviceType) { + private ServiceStatus getStatus(String serviceType) { return slobrokMonitorManager.getStatus( application.getApplicationId(), new ServiceType(serviceType), @@ -89,4 +90,4 @@ public class SlobrokMonitorManagerTest { new ServiceType(serviceType), new ConfigId(configId)); } -} \ No newline at end of file +} -- cgit v1.2.3