summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/NodeStateChangeChecker.java8
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/NodeStateChangeCheckerTest.java7
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