diff options
2 files changed, 5 insertions, 10 deletions
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/NodeStateChangeChecker.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/NodeStateChangeChecker.java index 2125a18f0fe..c31a4976827 100644 --- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/NodeStateChangeChecker.java +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/NodeStateChangeChecker.java @@ -115,7 +115,7 @@ public class NodeStateChangeChecker { switch (newState.getState()) { case UP: - return canSetStateUp(nodeInfo, oldState.getState()); + return canSetStateUp(nodeInfo); case MAINTENANCE: return canSetStateMaintenanceTemporarily(node, clusterState); case DOWN: @@ -166,11 +166,7 @@ public class NodeStateChangeChecker { return Result.allowSettingOfWantedState(); } - private Result canSetStateUp(NodeInfo nodeInfo, State oldState) { - if (oldState != State.MAINTENANCE) { - return Result.createDisallowed("Refusing to set wanted state to up when it is currently in " + oldState); - } - + private Result canSetStateUp(NodeInfo nodeInfo) { if (nodeInfo.getReportedState().getState() != State.UP) { return Result.createDisallowed("Refuse to set wanted state to UP, " + "since the reported state is not UP (" + diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/NodeStateChangeCheckerTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/NodeStateChangeCheckerTest.java index 42c5ffa7dac..fc466664e56 100644 --- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/NodeStateChangeCheckerTest.java +++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/NodeStateChangeCheckerTest.java @@ -211,17 +211,16 @@ public class NodeStateChangeCheckerTest { } @Test - public void testCannotSetUpIfUnknownOldStateAndReportedIsDown() { + public void testCanSetUpEvenIfOldWantedStateIsDown() { ContentCluster cluster = createCluster(createNodes(4)); NodeStateChangeChecker nodeStateChangeChecker = createChangeChecker(cluster); - // Not setting nodes up -> all are down + setAllNodesUp(cluster, HostInfo.createHostInfo(createDistributorHostInfo(4, 3, 6))); NodeStateChangeChecker.Result result = nodeStateChangeChecker.evaluateTransition( nodeStorage, defaultAllUpClusterState(), SetUnitStateRequest.Condition.SAFE, new NodeState(NodeType.STORAGE, State.DOWN), UP_NODE_STATE); - assertFalse(result.settingWantedStateIsAllowed()); + assertTrue(result.settingWantedStateIsAllowed()); assertFalse(result.wantedStateAlreadySet()); - assertThat(result.getReason(), is("Refusing to set wanted state to up when it is currently in Down")); } @Test |