|
@@ -56,76 +56,72 @@ public class ClusterRebalanceRoutingTests extends ESAllocationTestCase {
|
|
.put(IndexMetaData.builder("test2").settings(settings(Version.CURRENT)).numberOfShards(1).numberOfReplicas(1))
|
|
.put(IndexMetaData.builder("test2").settings(settings(Version.CURRENT)).numberOfShards(1).numberOfReplicas(1))
|
|
.build();
|
|
.build();
|
|
|
|
|
|
- RoutingTable routingTable = RoutingTable.builder()
|
|
|
|
|
|
+ RoutingTable initialRoutingTable = RoutingTable.builder()
|
|
.addAsNew(metaData.index("test1"))
|
|
.addAsNew(metaData.index("test1"))
|
|
.addAsNew(metaData.index("test2"))
|
|
.addAsNew(metaData.index("test2"))
|
|
.build();
|
|
.build();
|
|
|
|
|
|
- ClusterState clusterState = ClusterState.builder(org.elasticsearch.cluster.ClusterName.CLUSTER_NAME_SETTING.getDefault(Settings.EMPTY)).metaData(metaData).routingTable(routingTable).build();
|
|
|
|
|
|
+ ClusterState clusterState = ClusterState.builder(org.elasticsearch.cluster.ClusterName.CLUSTER_NAME_SETTING.getDefault(Settings.EMPTY)).metaData(metaData).routingTable(initialRoutingTable).build();
|
|
|
|
|
|
logger.info("start two nodes");
|
|
logger.info("start two nodes");
|
|
clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder().add(newNode("node1")).add(newNode("node2"))).build();
|
|
clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder().add(newNode("node1")).add(newNode("node2"))).build();
|
|
- RoutingTable prevRoutingTable = routingTable;
|
|
|
|
- routingTable = strategy.reroute(clusterState, "reroute").routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ RoutingAllocation.Result routingResult = strategy.reroute(clusterState, "reroute");
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test1").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test1").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
}
|
|
}
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test2").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test2").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
}
|
|
}
|
|
|
|
|
|
logger.info("start all the primary shards for test1, replicas will start initializing");
|
|
logger.info("start all the primary shards for test1, replicas will start initializing");
|
|
RoutingNodes routingNodes = clusterState.getRoutingNodes();
|
|
RoutingNodes routingNodes = clusterState.getRoutingNodes();
|
|
- prevRoutingTable = routingTable;
|
|
|
|
- routingTable = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test1", INITIALIZING)).routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ routingResult = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test1", INITIALIZING));
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test1").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
-// assertThat(routingTable.index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).replicaShards().get(0).state(), equalTo(INITIALIZING));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test1").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
+// assertThat(clusterState.routingTable().index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).replicaShards().get(0).state(), equalTo(INITIALIZING));
|
|
}
|
|
}
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test2").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test2").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
}
|
|
}
|
|
|
|
|
|
logger.info("start the test1 replica shards");
|
|
logger.info("start the test1 replica shards");
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
- prevRoutingTable = routingTable;
|
|
|
|
- routingTable = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test1", INITIALIZING)).routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ routingResult = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test1", INITIALIZING));
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test1").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).replicaShards().get(0).state(), equalTo(STARTED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test1").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).replicaShards().get(0).state(), equalTo(STARTED));
|
|
}
|
|
}
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test2").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test2").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
}
|
|
}
|
|
|
|
|
|
logger.info("now, start 1 more node, check that rebalancing will happen (for test1) because we set it to always");
|
|
logger.info("now, start 1 more node, check that rebalancing will happen (for test1) because we set it to always");
|
|
clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder(clusterState.nodes())
|
|
clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder(clusterState.nodes())
|
|
.add(newNode("node3")))
|
|
.add(newNode("node3")))
|
|
.build();
|
|
.build();
|
|
- prevRoutingTable = routingTable;
|
|
|
|
- routingTable = strategy.reroute(clusterState, "reroute").routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ routingResult = strategy.reroute(clusterState, "reroute");
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
|
|
|
|
assertThat(routingNodes.node("node3").size(), equalTo(1));
|
|
assertThat(routingNodes.node("node3").size(), equalTo(1));
|
|
@@ -142,95 +138,90 @@ public class ClusterRebalanceRoutingTests extends ESAllocationTestCase {
|
|
.put(IndexMetaData.builder("test2").settings(settings(Version.CURRENT)).numberOfShards(1).numberOfReplicas(1))
|
|
.put(IndexMetaData.builder("test2").settings(settings(Version.CURRENT)).numberOfShards(1).numberOfReplicas(1))
|
|
.build();
|
|
.build();
|
|
|
|
|
|
- RoutingTable routingTable = RoutingTable.builder()
|
|
|
|
|
|
+ RoutingTable initialRoutingTable = RoutingTable.builder()
|
|
.addAsNew(metaData.index("test1"))
|
|
.addAsNew(metaData.index("test1"))
|
|
.addAsNew(metaData.index("test2"))
|
|
.addAsNew(metaData.index("test2"))
|
|
.build();
|
|
.build();
|
|
|
|
|
|
- ClusterState clusterState = ClusterState.builder(org.elasticsearch.cluster.ClusterName.CLUSTER_NAME_SETTING.getDefault(Settings.EMPTY)).metaData(metaData).routingTable(routingTable).build();
|
|
|
|
|
|
+ ClusterState clusterState = ClusterState.builder(org.elasticsearch.cluster.ClusterName.CLUSTER_NAME_SETTING.getDefault(Settings.EMPTY)).metaData(metaData).routingTable(initialRoutingTable).build();
|
|
|
|
|
|
logger.info("start two nodes");
|
|
logger.info("start two nodes");
|
|
clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder().add(newNode("node1")).add(newNode("node2"))).build();
|
|
clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder().add(newNode("node1")).add(newNode("node2"))).build();
|
|
- RoutingTable prevRoutingTable = routingTable;
|
|
|
|
- routingTable = strategy.reroute(clusterState, "reroute").routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ RoutingAllocation.Result routingResult = strategy.reroute(clusterState, "reroute");
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test1").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test1").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
}
|
|
}
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test2").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test2").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
}
|
|
}
|
|
|
|
|
|
logger.info("start all the primary shards for test1, replicas will start initializing");
|
|
logger.info("start all the primary shards for test1, replicas will start initializing");
|
|
RoutingNodes routingNodes = clusterState.getRoutingNodes();
|
|
RoutingNodes routingNodes = clusterState.getRoutingNodes();
|
|
- prevRoutingTable = routingTable;
|
|
|
|
- routingTable = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test1", INITIALIZING)).routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ routingResult = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test1", INITIALIZING));
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test1").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).replicaShards().get(0).state(), equalTo(INITIALIZING));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test1").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).replicaShards().get(0).state(), equalTo(INITIALIZING));
|
|
}
|
|
}
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test2").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test2").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
}
|
|
}
|
|
|
|
|
|
logger.info("start the test1 replica shards");
|
|
logger.info("start the test1 replica shards");
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
- prevRoutingTable = routingTable;
|
|
|
|
- routingTable = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test1", INITIALIZING)).routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ routingResult = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test1", INITIALIZING));
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test1").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).replicaShards().get(0).state(), equalTo(STARTED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test1").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).replicaShards().get(0).state(), equalTo(STARTED));
|
|
}
|
|
}
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test2").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test2").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
}
|
|
}
|
|
|
|
|
|
logger.info("start all the primary shards for test2, replicas will start initializing");
|
|
logger.info("start all the primary shards for test2, replicas will start initializing");
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
- prevRoutingTable = routingTable;
|
|
|
|
- routingTable = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test2", INITIALIZING)).routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ routingResult = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test2", INITIALIZING));
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test1").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).replicaShards().get(0).state(), equalTo(STARTED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test1").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).replicaShards().get(0).state(), equalTo(STARTED));
|
|
}
|
|
}
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test2").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).replicaShards().get(0).state(), equalTo(INITIALIZING));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test2").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).replicaShards().get(0).state(), equalTo(INITIALIZING));
|
|
}
|
|
}
|
|
|
|
|
|
logger.info("now, start 1 more node, check that rebalancing happen (for test1) because we set it to primaries_active");
|
|
logger.info("now, start 1 more node, check that rebalancing happen (for test1) because we set it to primaries_active");
|
|
clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder(clusterState.nodes())
|
|
clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder(clusterState.nodes())
|
|
.add(newNode("node3")))
|
|
.add(newNode("node3")))
|
|
.build();
|
|
.build();
|
|
- prevRoutingTable = routingTable;
|
|
|
|
- routingTable = strategy.reroute(clusterState, "reroute").routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ routingResult = strategy.reroute(clusterState, "reroute");
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
|
|
|
|
assertThat(routingNodes.node("node3").size(), equalTo(1));
|
|
assertThat(routingNodes.node("node3").size(), equalTo(1));
|
|
@@ -246,76 +237,72 @@ public class ClusterRebalanceRoutingTests extends ESAllocationTestCase {
|
|
.put(IndexMetaData.builder("test2").settings(settings(Version.CURRENT)).numberOfShards(1).numberOfReplicas(1))
|
|
.put(IndexMetaData.builder("test2").settings(settings(Version.CURRENT)).numberOfShards(1).numberOfReplicas(1))
|
|
.build();
|
|
.build();
|
|
|
|
|
|
- RoutingTable routingTable = RoutingTable.builder()
|
|
|
|
|
|
+ RoutingTable initialRoutingTable = RoutingTable.builder()
|
|
.addAsNew(metaData.index("test1"))
|
|
.addAsNew(metaData.index("test1"))
|
|
.addAsNew(metaData.index("test2"))
|
|
.addAsNew(metaData.index("test2"))
|
|
.build();
|
|
.build();
|
|
|
|
|
|
- ClusterState clusterState = ClusterState.builder(org.elasticsearch.cluster.ClusterName.CLUSTER_NAME_SETTING.getDefault(Settings.EMPTY)).metaData(metaData).routingTable(routingTable).build();
|
|
|
|
|
|
+ ClusterState clusterState = ClusterState.builder(org.elasticsearch.cluster.ClusterName.CLUSTER_NAME_SETTING.getDefault(Settings.EMPTY)).metaData(metaData).routingTable(initialRoutingTable).build();
|
|
|
|
|
|
logger.info("start two nodes");
|
|
logger.info("start two nodes");
|
|
clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder().add(newNode("node1")).add(newNode("node2"))).build();
|
|
clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder().add(newNode("node1")).add(newNode("node2"))).build();
|
|
- RoutingTable prevRoutingTable = routingTable;
|
|
|
|
- routingTable = strategy.reroute(clusterState, "reroute").routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ RoutingAllocation.Result routingResult = strategy.reroute(clusterState, "reroute");
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test1").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test1").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
}
|
|
}
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test2").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test2").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
}
|
|
}
|
|
|
|
|
|
logger.info("start all the primary shards for test1, replicas will start initializing");
|
|
logger.info("start all the primary shards for test1, replicas will start initializing");
|
|
RoutingNodes routingNodes = clusterState.getRoutingNodes();
|
|
RoutingNodes routingNodes = clusterState.getRoutingNodes();
|
|
- prevRoutingTable = routingTable;
|
|
|
|
- routingTable = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test1", INITIALIZING)).routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ routingResult = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test1", INITIALIZING));
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test1").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).replicaShards().get(0).state(), equalTo(INITIALIZING));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test1").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).replicaShards().get(0).state(), equalTo(INITIALIZING));
|
|
}
|
|
}
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test2").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test2").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
}
|
|
}
|
|
|
|
|
|
logger.info("start the test1 replica shards");
|
|
logger.info("start the test1 replica shards");
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
- prevRoutingTable = routingTable;
|
|
|
|
- routingTable = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test1", INITIALIZING)).routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ routingResult = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test1", INITIALIZING));
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test1").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).replicaShards().get(0).state(), equalTo(STARTED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test1").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).replicaShards().get(0).state(), equalTo(STARTED));
|
|
}
|
|
}
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test2").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test2").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
}
|
|
}
|
|
|
|
|
|
logger.info("now, start 1 more node, check that rebalancing will not happen (for test1) because we set it to primaries_active");
|
|
logger.info("now, start 1 more node, check that rebalancing will not happen (for test1) because we set it to primaries_active");
|
|
clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder(clusterState.nodes())
|
|
clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder(clusterState.nodes())
|
|
.add(newNode("node3")))
|
|
.add(newNode("node3")))
|
|
.build();
|
|
.build();
|
|
- prevRoutingTable = routingTable;
|
|
|
|
- routingTable = strategy.reroute(clusterState, "reroute").routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ routingResult = strategy.reroute(clusterState, "reroute");
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
|
|
|
|
assertThat(routingNodes.node("node3").isEmpty(), equalTo(true));
|
|
assertThat(routingNodes.node("node3").isEmpty(), equalTo(true));
|
|
@@ -330,114 +317,108 @@ public class ClusterRebalanceRoutingTests extends ESAllocationTestCase {
|
|
.put(IndexMetaData.builder("test2").settings(settings(Version.CURRENT)).numberOfShards(1).numberOfReplicas(1))
|
|
.put(IndexMetaData.builder("test2").settings(settings(Version.CURRENT)).numberOfShards(1).numberOfReplicas(1))
|
|
.build();
|
|
.build();
|
|
|
|
|
|
- RoutingTable routingTable = RoutingTable.builder()
|
|
|
|
|
|
+ RoutingTable initialRoutingTable = RoutingTable.builder()
|
|
.addAsNew(metaData.index("test1"))
|
|
.addAsNew(metaData.index("test1"))
|
|
.addAsNew(metaData.index("test2"))
|
|
.addAsNew(metaData.index("test2"))
|
|
.build();
|
|
.build();
|
|
|
|
|
|
- ClusterState clusterState = ClusterState.builder(org.elasticsearch.cluster.ClusterName.CLUSTER_NAME_SETTING.getDefault(Settings.EMPTY)).metaData(metaData).routingTable(routingTable).build();
|
|
|
|
|
|
+ ClusterState clusterState = ClusterState.builder(org.elasticsearch.cluster.ClusterName.CLUSTER_NAME_SETTING.getDefault(Settings.EMPTY)).metaData(metaData).routingTable(initialRoutingTable).build();
|
|
|
|
|
|
logger.info("start two nodes");
|
|
logger.info("start two nodes");
|
|
clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder().add(newNode("node1")).add(newNode("node2"))).build();
|
|
clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder().add(newNode("node1")).add(newNode("node2"))).build();
|
|
- RoutingTable prevRoutingTable = routingTable;
|
|
|
|
- routingTable = strategy.reroute(clusterState, "reroute").routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ RoutingAllocation.Result routingResult = strategy.reroute(clusterState, "reroute");
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test1").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test1").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
}
|
|
}
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test2").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test2").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
}
|
|
}
|
|
|
|
|
|
logger.info("start all the primary shards for test1, replicas will start initializing");
|
|
logger.info("start all the primary shards for test1, replicas will start initializing");
|
|
RoutingNodes routingNodes = clusterState.getRoutingNodes();
|
|
RoutingNodes routingNodes = clusterState.getRoutingNodes();
|
|
- prevRoutingTable = routingTable;
|
|
|
|
- routingTable = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test1", INITIALIZING)).routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ routingResult = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test1", INITIALIZING));
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test1").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).replicaShards().get(0).state(), equalTo(INITIALIZING));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test1").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).replicaShards().get(0).state(), equalTo(INITIALIZING));
|
|
}
|
|
}
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test2").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test2").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
}
|
|
}
|
|
|
|
|
|
logger.info("start the test1 replica shards");
|
|
logger.info("start the test1 replica shards");
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
- prevRoutingTable = routingTable;
|
|
|
|
- routingTable = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test1", INITIALIZING)).routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ routingResult = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test1", INITIALIZING));
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test1").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).replicaShards().get(0).state(), equalTo(STARTED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test1").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).replicaShards().get(0).state(), equalTo(STARTED));
|
|
}
|
|
}
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test2").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test2").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
}
|
|
}
|
|
|
|
|
|
logger.info("start all the primary shards for test2, replicas will start initializing");
|
|
logger.info("start all the primary shards for test2, replicas will start initializing");
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
- prevRoutingTable = routingTable;
|
|
|
|
- routingTable = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test2", INITIALIZING)).routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ routingResult = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test2", INITIALIZING));
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test1").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).replicaShards().get(0).state(), equalTo(STARTED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test1").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).replicaShards().get(0).state(), equalTo(STARTED));
|
|
}
|
|
}
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test2").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).replicaShards().get(0).state(), equalTo(INITIALIZING));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test2").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).replicaShards().get(0).state(), equalTo(INITIALIZING));
|
|
}
|
|
}
|
|
|
|
|
|
logger.info("start the test2 replica shards");
|
|
logger.info("start the test2 replica shards");
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
- prevRoutingTable = routingTable;
|
|
|
|
- routingTable = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test2", INITIALIZING)).routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ routingResult = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test2", INITIALIZING));
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test1").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).replicaShards().get(0).state(), equalTo(STARTED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test1").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).replicaShards().get(0).state(), equalTo(STARTED));
|
|
}
|
|
}
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test2").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).replicaShards().get(0).state(), equalTo(STARTED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test2").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).replicaShards().get(0).state(), equalTo(STARTED));
|
|
}
|
|
}
|
|
|
|
|
|
logger.info("now, start 1 more node, check that rebalancing happen (for test1) because we set it to all_active");
|
|
logger.info("now, start 1 more node, check that rebalancing happen (for test1) because we set it to all_active");
|
|
clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder(clusterState.nodes())
|
|
clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder(clusterState.nodes())
|
|
.add(newNode("node3")))
|
|
.add(newNode("node3")))
|
|
.build();
|
|
.build();
|
|
- prevRoutingTable = routingTable;
|
|
|
|
- routingTable = strategy.reroute(clusterState, "reroute").routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ routingResult = strategy.reroute(clusterState, "reroute");
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
|
|
|
|
assertThat(routingNodes.node("node3").size(), equalTo(1));
|
|
assertThat(routingNodes.node("node3").size(), equalTo(1));
|
|
@@ -453,76 +434,72 @@ public class ClusterRebalanceRoutingTests extends ESAllocationTestCase {
|
|
.put(IndexMetaData.builder("test2").settings(settings(Version.CURRENT)).numberOfShards(1).numberOfReplicas(1))
|
|
.put(IndexMetaData.builder("test2").settings(settings(Version.CURRENT)).numberOfShards(1).numberOfReplicas(1))
|
|
.build();
|
|
.build();
|
|
|
|
|
|
- RoutingTable routingTable = RoutingTable.builder()
|
|
|
|
|
|
+ RoutingTable initialRoutingTable = RoutingTable.builder()
|
|
.addAsNew(metaData.index("test1"))
|
|
.addAsNew(metaData.index("test1"))
|
|
.addAsNew(metaData.index("test2"))
|
|
.addAsNew(metaData.index("test2"))
|
|
.build();
|
|
.build();
|
|
|
|
|
|
- ClusterState clusterState = ClusterState.builder(org.elasticsearch.cluster.ClusterName.CLUSTER_NAME_SETTING.getDefault(Settings.EMPTY)).metaData(metaData).routingTable(routingTable).build();
|
|
|
|
|
|
+ ClusterState clusterState = ClusterState.builder(org.elasticsearch.cluster.ClusterName.CLUSTER_NAME_SETTING.getDefault(Settings.EMPTY)).metaData(metaData).routingTable(initialRoutingTable).build();
|
|
|
|
|
|
logger.info("start two nodes");
|
|
logger.info("start two nodes");
|
|
clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder().add(newNode("node1")).add(newNode("node2"))).build();
|
|
clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder().add(newNode("node1")).add(newNode("node2"))).build();
|
|
- RoutingTable prevRoutingTable = routingTable;
|
|
|
|
- routingTable = strategy.reroute(clusterState, "reroute").routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ RoutingAllocation.Result routingResult = strategy.reroute(clusterState, "reroute");
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test1").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test1").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
}
|
|
}
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test2").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test2").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
}
|
|
}
|
|
|
|
|
|
logger.info("start all the primary shards for test1, replicas will start initializing");
|
|
logger.info("start all the primary shards for test1, replicas will start initializing");
|
|
RoutingNodes routingNodes = clusterState.getRoutingNodes();
|
|
RoutingNodes routingNodes = clusterState.getRoutingNodes();
|
|
- prevRoutingTable = routingTable;
|
|
|
|
- routingTable = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test1", INITIALIZING)).routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ routingResult = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test1", INITIALIZING));
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test1").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).replicaShards().get(0).state(), equalTo(INITIALIZING));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test1").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).replicaShards().get(0).state(), equalTo(INITIALIZING));
|
|
}
|
|
}
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test2").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test2").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
}
|
|
}
|
|
|
|
|
|
logger.info("start the test1 replica shards");
|
|
logger.info("start the test1 replica shards");
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
- prevRoutingTable = routingTable;
|
|
|
|
- routingTable = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test1", INITIALIZING)).routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ routingResult = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test1", INITIALIZING));
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test1").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).replicaShards().get(0).state(), equalTo(STARTED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test1").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).replicaShards().get(0).state(), equalTo(STARTED));
|
|
}
|
|
}
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test2").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test2").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
}
|
|
}
|
|
|
|
|
|
logger.info("now, start 1 more node, check that rebalancing will not happen (for test1) because we set it to all_active");
|
|
logger.info("now, start 1 more node, check that rebalancing will not happen (for test1) because we set it to all_active");
|
|
clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder(clusterState.nodes())
|
|
clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder(clusterState.nodes())
|
|
.add(newNode("node3")))
|
|
.add(newNode("node3")))
|
|
.build();
|
|
.build();
|
|
- prevRoutingTable = routingTable;
|
|
|
|
- routingTable = strategy.reroute(clusterState, "reroute").routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ routingResult = strategy.reroute(clusterState, "reroute");
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
|
|
|
|
assertThat(routingNodes.node("node3").isEmpty(), equalTo(true));
|
|
assertThat(routingNodes.node("node3").isEmpty(), equalTo(true));
|
|
@@ -537,95 +514,90 @@ public class ClusterRebalanceRoutingTests extends ESAllocationTestCase {
|
|
.put(IndexMetaData.builder("test2").settings(settings(Version.CURRENT)).numberOfShards(1).numberOfReplicas(1))
|
|
.put(IndexMetaData.builder("test2").settings(settings(Version.CURRENT)).numberOfShards(1).numberOfReplicas(1))
|
|
.build();
|
|
.build();
|
|
|
|
|
|
- RoutingTable routingTable = RoutingTable.builder()
|
|
|
|
|
|
+ RoutingTable initialRoutingTable = RoutingTable.builder()
|
|
.addAsNew(metaData.index("test1"))
|
|
.addAsNew(metaData.index("test1"))
|
|
.addAsNew(metaData.index("test2"))
|
|
.addAsNew(metaData.index("test2"))
|
|
.build();
|
|
.build();
|
|
|
|
|
|
- ClusterState clusterState = ClusterState.builder(org.elasticsearch.cluster.ClusterName.CLUSTER_NAME_SETTING.getDefault(Settings.EMPTY)).metaData(metaData).routingTable(routingTable).build();
|
|
|
|
|
|
+ ClusterState clusterState = ClusterState.builder(org.elasticsearch.cluster.ClusterName.CLUSTER_NAME_SETTING.getDefault(Settings.EMPTY)).metaData(metaData).routingTable(initialRoutingTable).build();
|
|
|
|
|
|
logger.info("start two nodes");
|
|
logger.info("start two nodes");
|
|
clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder().add(newNode("node1")).add(newNode("node2"))).build();
|
|
clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder().add(newNode("node1")).add(newNode("node2"))).build();
|
|
- RoutingTable prevRoutingTable = routingTable;
|
|
|
|
- routingTable = strategy.reroute(clusterState, "reroute").routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ RoutingAllocation.Result routingResult = strategy.reroute(clusterState, "reroute");
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test1").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test1").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
}
|
|
}
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test2").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test2").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
}
|
|
}
|
|
|
|
|
|
logger.info("start all the primary shards for test1, replicas will start initializing");
|
|
logger.info("start all the primary shards for test1, replicas will start initializing");
|
|
RoutingNodes routingNodes = clusterState.getRoutingNodes();
|
|
RoutingNodes routingNodes = clusterState.getRoutingNodes();
|
|
- prevRoutingTable = routingTable;
|
|
|
|
- routingTable = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test1", INITIALIZING)).routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ routingResult = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test1", INITIALIZING));
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test1").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).replicaShards().get(0).state(), equalTo(INITIALIZING));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test1").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).replicaShards().get(0).state(), equalTo(INITIALIZING));
|
|
}
|
|
}
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test2").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test2").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
}
|
|
}
|
|
|
|
|
|
logger.info("start the test1 replica shards");
|
|
logger.info("start the test1 replica shards");
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
- prevRoutingTable = routingTable;
|
|
|
|
- routingTable = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test1", INITIALIZING)).routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ routingResult = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test1", INITIALIZING));
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test1").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).replicaShards().get(0).state(), equalTo(STARTED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test1").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).replicaShards().get(0).state(), equalTo(STARTED));
|
|
}
|
|
}
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test2").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test2").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).replicaShards().get(0).state(), equalTo(UNASSIGNED));
|
|
}
|
|
}
|
|
|
|
|
|
logger.info("start all the primary shards for test2, replicas will start initializing");
|
|
logger.info("start all the primary shards for test2, replicas will start initializing");
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
- prevRoutingTable = routingTable;
|
|
|
|
- routingTable = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test2", INITIALIZING)).routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ routingResult = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test2", INITIALIZING));
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test1").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).replicaShards().get(0).state(), equalTo(STARTED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test1").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).replicaShards().get(0).state(), equalTo(STARTED));
|
|
}
|
|
}
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test2").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
- assertThat(routingTable.index("test2").shard(i).replicaShards().get(0).state(), equalTo(INITIALIZING));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test2").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).shards().size(), equalTo(2));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test2").shard(i).replicaShards().get(0).state(), equalTo(INITIALIZING));
|
|
}
|
|
}
|
|
|
|
|
|
logger.info("now, start 1 more node, check that rebalancing will not happen (for test1) because we set it to all_active");
|
|
logger.info("now, start 1 more node, check that rebalancing will not happen (for test1) because we set it to all_active");
|
|
clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder(clusterState.nodes())
|
|
clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder(clusterState.nodes())
|
|
.add(newNode("node3")))
|
|
.add(newNode("node3")))
|
|
.build();
|
|
.build();
|
|
- prevRoutingTable = routingTable;
|
|
|
|
- routingTable = strategy.reroute(clusterState, "reroute").routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ routingResult = strategy.reroute(clusterState, "reroute");
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
|
|
|
|
assertThat(routingNodes.node("node3").isEmpty(), equalTo(true));
|
|
assertThat(routingNodes.node("node3").isEmpty(), equalTo(true));
|
|
@@ -657,31 +629,31 @@ public class ClusterRebalanceRoutingTests extends ESAllocationTestCase {
|
|
.put(IndexMetaData.builder("test1").settings(settings(Version.CURRENT)).numberOfShards(2).numberOfReplicas(0))
|
|
.put(IndexMetaData.builder("test1").settings(settings(Version.CURRENT)).numberOfShards(2).numberOfReplicas(0))
|
|
.build();
|
|
.build();
|
|
|
|
|
|
- RoutingTable routingTable = RoutingTable.builder()
|
|
|
|
|
|
+ RoutingTable initialRoutingTable = RoutingTable.builder()
|
|
.addAsNew(metaData.index("test"))
|
|
.addAsNew(metaData.index("test"))
|
|
.addAsNew(metaData.index("test1"))
|
|
.addAsNew(metaData.index("test1"))
|
|
.build();
|
|
.build();
|
|
|
|
|
|
- ClusterState clusterState = ClusterState.builder(org.elasticsearch.cluster.ClusterName.CLUSTER_NAME_SETTING.getDefault(Settings.EMPTY)).metaData(metaData).routingTable(routingTable).build();
|
|
|
|
|
|
+ ClusterState clusterState = ClusterState.builder(org.elasticsearch.cluster.ClusterName.CLUSTER_NAME_SETTING.getDefault(Settings.EMPTY)).metaData(metaData).routingTable(initialRoutingTable).build();
|
|
|
|
|
|
logger.info("start two nodes");
|
|
logger.info("start two nodes");
|
|
clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder().add(newNode("node1"))).build();
|
|
clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder().add(newNode("node1"))).build();
|
|
- routingTable = strategy.reroute(clusterState, "reroute").routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ RoutingAllocation.Result routingResult = strategy.reroute(clusterState, "reroute");
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test").shard(i).shards().size(), equalTo(1));
|
|
|
|
- assertThat(routingTable.index("test").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test").shard(i).shards().size(), equalTo(1));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
}
|
|
}
|
|
|
|
|
|
logger.debug("start all the primary shards for test");
|
|
logger.debug("start all the primary shards for test");
|
|
RoutingNodes routingNodes = clusterState.getRoutingNodes();
|
|
RoutingNodes routingNodes = clusterState.getRoutingNodes();
|
|
- routingTable = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test", INITIALIZING)).routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ routingResult = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test", INITIALIZING));
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test").shard(i).shards().size(), equalTo(1));
|
|
|
|
- assertThat(routingTable.index("test").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test").shard(i).shards().size(), equalTo(1));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
}
|
|
}
|
|
|
|
|
|
logger.debug("now, start 1 more node, check that rebalancing will not happen since we unassigned shards");
|
|
logger.debug("now, start 1 more node, check that rebalancing will not happen since we unassigned shards");
|
|
@@ -691,44 +663,45 @@ public class ClusterRebalanceRoutingTests extends ESAllocationTestCase {
|
|
logger.debug("reroute and check that nothing has changed");
|
|
logger.debug("reroute and check that nothing has changed");
|
|
RoutingAllocation.Result reroute = strategy.reroute(clusterState, "reroute");
|
|
RoutingAllocation.Result reroute = strategy.reroute(clusterState, "reroute");
|
|
assertFalse(reroute.changed());
|
|
assertFalse(reroute.changed());
|
|
- routingTable = reroute.routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ routingResult = reroute;
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test").shard(i).shards().size(), equalTo(1));
|
|
|
|
- assertThat(routingTable.index("test").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test").shard(i).shards().size(), equalTo(1));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
}
|
|
}
|
|
- for (int i = 0; i < routingTable.index("test1").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).shards().size(), equalTo(1));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).primaryShard().state(), equalTo(UNASSIGNED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test1").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).shards().size(), equalTo(1));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).primaryShard().state(), equalTo(UNASSIGNED));
|
|
}
|
|
}
|
|
logger.debug("now set allocateTest1 to true and reroute we should see the [test1] index initializing");
|
|
logger.debug("now set allocateTest1 to true and reroute we should see the [test1] index initializing");
|
|
allocateTest1.set(true);
|
|
allocateTest1.set(true);
|
|
reroute = strategy.reroute(clusterState, "reroute");
|
|
reroute = strategy.reroute(clusterState, "reroute");
|
|
assertTrue(reroute.changed());
|
|
assertTrue(reroute.changed());
|
|
- routingTable = reroute.routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
- for (int i = 0; i < routingTable.index("test1").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).shards().size(), equalTo(1));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
|
|
+ routingResult = reroute;
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test1").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).shards().size(), equalTo(1));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
}
|
|
}
|
|
|
|
|
|
logger.debug("now start initializing shards and expect exactly one rebalance from node1 to node 2 since index [test] is all on node1");
|
|
logger.debug("now start initializing shards and expect exactly one rebalance from node1 to node 2 since index [test] is all on node1");
|
|
|
|
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
routingNodes = clusterState.getRoutingNodes();
|
|
- routingTable = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test1", INITIALIZING)).routingTable();
|
|
|
|
|
|
+ routingResult = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test1", INITIALIZING));
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test1").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).shards().size(), equalTo(1));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test1").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).shards().size(), equalTo(1));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
}
|
|
}
|
|
int numStarted = 0;
|
|
int numStarted = 0;
|
|
int numRelocating = 0;
|
|
int numRelocating = 0;
|
|
- for (int i = 0; i < routingTable.index("test").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test").shard(i).shards().size(), equalTo(1));
|
|
|
|
- if (routingTable.index("test").shard(i).primaryShard().state() == STARTED) {
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test").shard(i).shards().size(), equalTo(1));
|
|
|
|
+ if (clusterState.routingTable().index("test").shard(i).primaryShard().state() == STARTED) {
|
|
numStarted++;
|
|
numStarted++;
|
|
- } else if (routingTable.index("test").shard(i).primaryShard().state() == RELOCATING) {
|
|
|
|
|
|
+ } else if (clusterState.routingTable().index("test").shard(i).primaryShard().state() == RELOCATING) {
|
|
numRelocating++;
|
|
numRelocating++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -756,31 +729,31 @@ public class ClusterRebalanceRoutingTests extends ESAllocationTestCase {
|
|
.build();
|
|
.build();
|
|
|
|
|
|
// we use a second index here (test1) that never gets assigned otherwise allocateUnassigned is never called if we don't have unassigned shards.
|
|
// we use a second index here (test1) that never gets assigned otherwise allocateUnassigned is never called if we don't have unassigned shards.
|
|
- RoutingTable routingTable = RoutingTable.builder()
|
|
|
|
|
|
+ RoutingTable initialRoutingTable = RoutingTable.builder()
|
|
.addAsNew(metaData.index("test"))
|
|
.addAsNew(metaData.index("test"))
|
|
.addAsNew(metaData.index("test1"))
|
|
.addAsNew(metaData.index("test1"))
|
|
.build();
|
|
.build();
|
|
|
|
|
|
- ClusterState clusterState = ClusterState.builder(org.elasticsearch.cluster.ClusterName.CLUSTER_NAME_SETTING.getDefault(Settings.EMPTY)).metaData(metaData).routingTable(routingTable).build();
|
|
|
|
|
|
+ ClusterState clusterState = ClusterState.builder(org.elasticsearch.cluster.ClusterName.CLUSTER_NAME_SETTING.getDefault(Settings.EMPTY)).metaData(metaData).routingTable(initialRoutingTable).build();
|
|
|
|
|
|
logger.info("start two nodes");
|
|
logger.info("start two nodes");
|
|
clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder().add(newNode("node1"))).build();
|
|
clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder().add(newNode("node1"))).build();
|
|
- routingTable = strategy.reroute(clusterState, "reroute").routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ RoutingAllocation.Result routingResult = strategy.reroute(clusterState, "reroute");
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test").shard(i).shards().size(), equalTo(1));
|
|
|
|
- assertThat(routingTable.index("test").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test").shard(i).shards().size(), equalTo(1));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test").shard(i).primaryShard().state(), equalTo(INITIALIZING));
|
|
}
|
|
}
|
|
|
|
|
|
logger.debug("start all the primary shards for test");
|
|
logger.debug("start all the primary shards for test");
|
|
RoutingNodes routingNodes = clusterState.getRoutingNodes();
|
|
RoutingNodes routingNodes = clusterState.getRoutingNodes();
|
|
- routingTable = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test", INITIALIZING)).routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ routingResult = strategy.applyStartedShards(clusterState, routingNodes.shardsWithState("test", INITIALIZING));
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test").shard(i).shards().size(), equalTo(1));
|
|
|
|
- assertThat(routingTable.index("test").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test").shard(i).shards().size(), equalTo(1));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
}
|
|
}
|
|
|
|
|
|
logger.debug("now, start 1 more node, check that rebalancing will not happen since we have shard sync going on");
|
|
logger.debug("now, start 1 more node, check that rebalancing will not happen since we have shard sync going on");
|
|
@@ -788,41 +761,38 @@ public class ClusterRebalanceRoutingTests extends ESAllocationTestCase {
|
|
.add(newNode("node2")))
|
|
.add(newNode("node2")))
|
|
.build();
|
|
.build();
|
|
logger.debug("reroute and check that nothing has changed");
|
|
logger.debug("reroute and check that nothing has changed");
|
|
- RoutingAllocation.Result reroute = strategy.reroute(clusterState, "reroute");
|
|
|
|
- assertFalse(reroute.changed());
|
|
|
|
- routingTable = reroute.routingTable();
|
|
|
|
- clusterState = ClusterState.builder(clusterState).routingTable(routingTable).build();
|
|
|
|
|
|
+ routingResult = strategy.reroute(clusterState, "reroute");
|
|
|
|
+ assertFalse(routingResult.changed());
|
|
|
|
|
|
- for (int i = 0; i < routingTable.index("test").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test").shard(i).shards().size(), equalTo(1));
|
|
|
|
- assertThat(routingTable.index("test").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test").shard(i).shards().size(), equalTo(1));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test").shard(i).primaryShard().state(), equalTo(STARTED));
|
|
}
|
|
}
|
|
- for (int i = 0; i < routingTable.index("test1").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).shards().size(), equalTo(1));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).primaryShard().state(), equalTo(UNASSIGNED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test1").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).shards().size(), equalTo(1));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).primaryShard().state(), equalTo(UNASSIGNED));
|
|
}
|
|
}
|
|
logger.debug("now set hasFetches to true and reroute we should now see exactly one relocating shard");
|
|
logger.debug("now set hasFetches to true and reroute we should now see exactly one relocating shard");
|
|
hasFetches.set(false);
|
|
hasFetches.set(false);
|
|
- reroute = strategy.reroute(clusterState, "reroute");
|
|
|
|
- assertTrue(reroute.changed());
|
|
|
|
- routingTable = reroute.routingTable();
|
|
|
|
|
|
+ routingResult = strategy.reroute(clusterState, "reroute");
|
|
|
|
+ assertTrue(routingResult.changed());
|
|
|
|
+ clusterState = ClusterState.builder(clusterState).routingResult(routingResult).build();
|
|
int numStarted = 0;
|
|
int numStarted = 0;
|
|
int numRelocating = 0;
|
|
int numRelocating = 0;
|
|
- for (int i = 0; i < routingTable.index("test").shards().size(); i++) {
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test").shards().size(); i++) {
|
|
|
|
|
|
- assertThat(routingTable.index("test").shard(i).shards().size(), equalTo(1));
|
|
|
|
- if (routingTable.index("test").shard(i).primaryShard().state() == STARTED) {
|
|
|
|
|
|
+ assertThat(clusterState.routingTable().index("test").shard(i).shards().size(), equalTo(1));
|
|
|
|
+ if (clusterState.routingTable().index("test").shard(i).primaryShard().state() == STARTED) {
|
|
numStarted++;
|
|
numStarted++;
|
|
- } else if (routingTable.index("test").shard(i).primaryShard().state() == RELOCATING) {
|
|
|
|
|
|
+ } else if (clusterState.routingTable().index("test").shard(i).primaryShard().state() == RELOCATING) {
|
|
numRelocating++;
|
|
numRelocating++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- for (int i = 0; i < routingTable.index("test1").shards().size(); i++) {
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).shards().size(), equalTo(1));
|
|
|
|
- assertThat(routingTable.index("test1").shard(i).primaryShard().state(), equalTo(UNASSIGNED));
|
|
|
|
|
|
+ for (int i = 0; i < clusterState.routingTable().index("test1").shards().size(); i++) {
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).shards().size(), equalTo(1));
|
|
|
|
+ assertThat(clusterState.routingTable().index("test1").shard(i).primaryShard().state(), equalTo(UNASSIGNED));
|
|
}
|
|
}
|
|
assertEquals(numStarted, 1);
|
|
assertEquals(numStarted, 1);
|
|
assertEquals(numRelocating, 1);
|
|
assertEquals(numRelocating, 1);
|
|
-
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|