|
@@ -21,6 +21,7 @@ import org.elasticsearch.cluster.routing.RoutingTable;
|
|
|
import org.elasticsearch.cluster.routing.ShardRouting;
|
|
|
import org.elasticsearch.cluster.routing.UnassignedInfo;
|
|
|
import org.elasticsearch.cluster.routing.allocation.decider.ClusterRebalanceAllocationDecider;
|
|
|
+import org.elasticsearch.common.collect.Iterators;
|
|
|
import org.elasticsearch.common.settings.Settings;
|
|
|
import org.elasticsearch.test.gateway.TestGatewayAllocator;
|
|
|
|
|
@@ -63,7 +64,7 @@ public class ClusterRebalanceRoutingTests extends ESAllocationTestCase {
|
|
|
|
|
|
logger.info("start two nodes");
|
|
|
clusterState = ClusterState.builder(clusterState)
|
|
|
- .nodes(DiscoveryNodes.builder().add(newNode("node1")).add(newNode("node2")))
|
|
|
+ .nodes(DiscoveryNodes.builder().add(newNode("node1")).add(newNode("node2")).localNodeId("node1").masterNodeId("node1"))
|
|
|
.build();
|
|
|
clusterState = strategy.reroute(clusterState, "reroute");
|
|
|
|
|
@@ -109,13 +110,16 @@ public class ClusterRebalanceRoutingTests extends ESAllocationTestCase {
|
|
|
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");
|
|
|
- clusterState = ClusterState.builder(clusterState).nodes(DiscoveryNodes.builder(clusterState.nodes()).add(newNode("node3"))).build();
|
|
|
+ logger.info("now, start 2 more nodes, check that rebalancing will happen (for test1) because we set it to always");
|
|
|
+ clusterState = ClusterState.builder(clusterState)
|
|
|
+ .nodes(DiscoveryNodes.builder(clusterState.nodes()).add(newNode("node3")).add(newNode("node4")))
|
|
|
+ .build();
|
|
|
clusterState = strategy.reroute(clusterState, "reroute");
|
|
|
RoutingNodes routingNodes = clusterState.getRoutingNodes();
|
|
|
|
|
|
- assertThat(routingNodes.node("node3").size(), equalTo(1));
|
|
|
- assertThat(routingNodes.node("node3").iterator().next().shardId().getIndex().getName(), equalTo("test1"));
|
|
|
+ final var newNodesIterator = Iterators.concat(routingNodes.node("node3").iterator(), routingNodes.node("node4").iterator());
|
|
|
+ assertThat(newNodesIterator.next().shardId().getIndex().getName(), equalTo("test1"));
|
|
|
+ assertFalse(newNodesIterator.hasNext());
|
|
|
}
|
|
|
|
|
|
public void testClusterPrimariesActive1() {
|