summaryrefslogtreecommitdiffstats
path: root/node-admin
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@oath.com>2018-09-19 16:08:11 +0200
committerValerij Fredriksen <valerijf@oath.com>2018-09-19 16:08:11 +0200
commit0ed694943a0b583d7c3ec407b42802fe327c0ad1 (patch)
tree876309d330ac12a2be9828d238fa4f4973325505 /node-admin
parent7713ceb71fbf7b1e289aeb66072f15315bb9744e (diff)
Always try to stop services
Diffstat (limited to 'node-admin')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java
index d27034c6f76..9bd3b5c1d82 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java
@@ -13,6 +13,7 @@ import com.yahoo.vespa.hosted.dockerapi.Docker;
import com.yahoo.vespa.hosted.dockerapi.DockerImage;
import com.yahoo.vespa.hosted.dockerapi.DockerNetworkCreator;
import com.yahoo.vespa.hosted.dockerapi.ProcessResult;
+import com.yahoo.vespa.hosted.dockerapi.exception.ContainerNotFoundException;
import com.yahoo.vespa.hosted.node.admin.component.Environment;
import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeSpec;
import com.yahoo.vespa.hosted.node.admin.nodeagent.ContainerData;
@@ -301,7 +302,16 @@ public class DockerOperationsImpl implements DockerOperations {
@Override
public void trySuspendNode(ContainerName containerName) {
- executeCommandInContainer(containerName, nodeProgram, "suspend");
+ try {
+ executeCommandInContainer(containerName, nodeProgram, "suspend");
+ } catch (ContainerNotFoundException e) {
+ throw e;
+ } catch (RuntimeException e) {
+ PrefixLogger logger = PrefixLogger.getNodeAgentLogger(DockerOperationsImpl.class, containerName);
+ // It's bad to continue as-if nothing happened, but on the other hand if we do not proceed to
+ // remove container, we will not be able to upgrade to fix any problems in the suspend logic!
+ logger.warning("Failed trying to suspend container " + containerName.asString(), e);
+ }
}
@Override