summaryrefslogtreecommitdiffstats
path: root/node-admin
diff options
context:
space:
mode:
authorvalerijf <valerijf@yahoo-inc.com>2017-04-18 11:38:32 +0200
committervalerijf <valerijf@yahoo-inc.com>2017-04-18 14:38:48 +0200
commit4dd906a2b7a2529f4e60cba3d3063c5d0a72be2d (patch)
tree13d37644761fb04a42854f3d4353553383e2c477 /node-admin
parentbcba809ed6caa5849d9c112501c36b94b47b92a7 (diff)
Only ask Orchestrator for permission to suspend when in state active
Diffstat (limited to 'node-admin')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java11
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java2
2 files changed, 10 insertions, 3 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java
index 57a4a069f57..556c8c9f307 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java
@@ -333,8 +333,15 @@ public class NodeAgentImpl implements NodeAgent {
logger.info("Will remove container " + existingContainer.get() + ": " + removeReason.get());
if (existingContainer.get().state.isRunning()) {
- orchestratorSuspendNode();
- stopServices();
+ if (nodeSpec.nodeState == Node.State.active) {
+ orchestratorSuspendNode();
+ }
+
+ try {
+ stopServices();
+ } catch (Exception e) {
+ logger.info("Failed stopping services, ignoring", e);
+ }
}
vespaVersion = Optional.empty();
dockerOperations.removeContainer(existingContainer.get());
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java
index ab9abcde7ff..64c37fedd53 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java
@@ -323,7 +323,6 @@ public class NodeAgentImplTest {
NodeAgentImpl nodeAgent = makeNodeAgent(dockerImage, true);
when(nodeRepository.getContainerNodeSpec(hostName)).thenReturn(Optional.of(nodeSpec));
- doNothing().when(orchestrator).suspend(eq(hostName));
nodeAgent.converge();
@@ -335,6 +334,7 @@ public class NodeAgentImplTest {
verify(dockerOperations, never()).startContainer(eq(containerName), any());
verify(orchestrator, never()).resume(any(String.class));
+ verify(orchestrator, never()).suspend(any(String.class));
// current Docker image and vespa version should be cleared
verify(nodeRepository, times(1)).updateNodeAttributes(
any(String.class), eq(new NodeAttributes()