summaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@oath.com>2017-09-13 13:01:57 +0200
committerValerij Fredriksen <valerijf@oath.com>2017-09-13 13:01:57 +0200
commitc220d939db429046e114307d972046b5b79efdf1 (patch)
tree28cbe5cfd7f33a8568f90f45dec8887b89ed3051 /node-repository
parentb4b5b51eec0bf08855b6e62d65275deddae7decc (diff)
Allow child node to only be deleted in state ready
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java5
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTest.java3
2 files changed, 3 insertions, 5 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java
index 6d04685189f..92f52155edf 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java
@@ -529,14 +529,13 @@ public class NodeRepository extends AbstractComponent {
* If also removing the parent node: child is in state provisioned|failed|parked|ready
*/
private boolean verifyRemovalIsAllowed(Node nodeToRemove, boolean deletingAsChild) {
- // TODO: Enable once controller no longer deletes child nodes manually
- /*if (nodeToRemove.flavor().getType() == Flavor.Type.DOCKER_CONTAINER && !deletingAsChild) {
+ if (nodeToRemove.flavor().getType() == Flavor.Type.DOCKER_CONTAINER && !deletingAsChild) {
if (nodeToRemove.state() != Node.State.ready) {
throw new IllegalArgumentException(
String.format("Docker container node %s can only be removed when in state ready", nodeToRemove.hostname()));
}
- } else */ if (nodeToRemove.flavor().getType() == Flavor.Type.DOCKER_CONTAINER) {
+ } else if (nodeToRemove.flavor().getType() == Flavor.Type.DOCKER_CONTAINER) {
List<Node.State> legalStates = Arrays.asList(Node.State.provisioned, Node.State.failed, Node.State.parked, Node.State.ready);
if (! legalStates.contains(nodeToRemove.state())) {
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTest.java
index 8eec56a1c00..fe3f12b105e 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTest.java
@@ -8,7 +8,6 @@ import com.yahoo.config.provision.NodeType;
import com.yahoo.config.provision.TenantName;
import com.yahoo.path.Path;
import com.yahoo.vespa.hosted.provision.node.Agent;
-import org.junit.Ignore;
import org.junit.Test;
import java.nio.charset.StandardCharsets;
@@ -70,7 +69,7 @@ public class NodeRepositoryTest {
assertTrue(tester.nodeRepository().dynamicAllocationEnabled());
}
- @Test @Ignore // TODO: Enable once controller no longer deletes child nodes manually
+ @Test
public void only_allow_docker_containers_remove_in_ready() {
NodeRepositoryTester tester = new NodeRepositoryTester();
tester.addNode("id1", "host1", "docker", NodeType.tenant);