diff options
author | Håkon Hallingstad <hakon@verizonmedia.com> | 2021-06-04 09:52:19 +0200 |
---|---|---|
committer | Håkon Hallingstad <hakon@verizonmedia.com> | 2021-06-04 09:52:19 +0200 |
commit | 3cd105d36e445d0421d94eadf1833fc0826ebacd (patch) | |
tree | 9d9fb5db4aa0942edeced6c530f46663aea9a875 | |
parent | 7ee01cb4f6e9c234b7470646847ae0461bc95344 (diff) |
Also remove non-active containers in SUSPENDED_HOST
4 files changed, 8 insertions, 12 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdmin.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdmin.java index 6d9eae5c4dc..e510618c5a4 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdmin.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdmin.java @@ -4,7 +4,6 @@ package com.yahoo.vespa.hosted.node.admin.nodeadmin; import com.yahoo.vespa.hosted.node.admin.nodeagent.NodeAgentContext; import java.time.Duration; -import java.util.List; import java.util.Set; /** @@ -41,10 +40,9 @@ public interface NodeAdmin { Duration subsystemFreezeDuration(); /** - * Stop services on these nodes - * @param nodes List of hostnames to suspend + * Stop all services on these nodes */ - void stopNodeAgentServices(List<String> nodes); + void stopNodeAgentServices(); /** * Start node-admin schedulers. diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminImpl.java index caffe5ef2f1..ef9520969af 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminImpl.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminImpl.java @@ -15,7 +15,6 @@ import java.time.Clock; import java.time.Duration; import java.time.Instant; import java.util.HashSet; -import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; @@ -157,12 +156,11 @@ public class NodeAdminImpl implements NodeAdmin { } @Override - public void stopNodeAgentServices(List<String> hostnames) { + public void stopNodeAgentServices() { // Each container may spend 1-1:30 minutes stopping - hostnames.parallelStream() - .filter(nodeAgentWithSchedulerByHostname::containsKey) - .map(nodeAgentWithSchedulerByHostname::get) - .forEach(NodeAgentWithScheduler::stopForHostSuspension); + nodeAgentWithSchedulerByHostname.values() + .parallelStream() + .forEach(NodeAgentWithScheduler::stopForHostSuspension); } @Override diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdater.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdater.java index 58ca4ae3f41..c24b2261f42 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdater.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdater.java @@ -150,7 +150,7 @@ public class NodeAdminStateUpdater { // The node agent services are stopped by this thread, which is OK only // because the node agents are frozen (see above). - nodeAdmin.stopNodeAgentServices(nodesInActiveState); + nodeAdmin.stopNodeAgentServices(); break; default: throw new IllegalStateException("Unknown wanted state " + wantedState); diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdaterTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdaterTest.java index 4a678597e41..8ee3a95744b 100644 --- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdaterTest.java +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdaterTest.java @@ -102,7 +102,7 @@ public class NodeAdminStateUpdaterTest { // At this point orchestrator will say its OK to suspend, but something goes wrong when we try to stop services final String exceptionMessage = "Failed to stop services"; verify(orchestrator, times(0)).suspend(eq(hostHostname.value()), eq(suspendHostnames)); - doThrow(new RuntimeException(exceptionMessage)).doNothing().when(nodeAdmin).stopNodeAgentServices(eq(activeHostnames)); + doThrow(new RuntimeException(exceptionMessage)).doNothing().when(nodeAdmin).stopNodeAgentServices(); assertConvergeError(SUSPENDED, exceptionMessage); verify(orchestrator, times(1)).suspend(eq(hostHostname.value()), eq(suspendHostnames)); // Make sure we dont roll back if we fail to stop services - we will try to stop again next tick |