|
@@ -113,9 +113,11 @@ public class ShrinkIndexIT extends ESIntegTestCase {
|
|
|
ensureGreen();
|
|
|
// now merge source into a 4 shard index
|
|
|
assertAcked(client().admin().indices().prepareResizeIndex("source", "first_shrink")
|
|
|
- .setSettings(Settings.builder()
|
|
|
- .put("index.number_of_replicas", 0)
|
|
|
- .put("index.number_of_shards", shardSplits[1]).build()).get());
|
|
|
+ .setSettings(Settings.builder()
|
|
|
+ .put("index.number_of_replicas", 0)
|
|
|
+ .put("index.number_of_shards", shardSplits[1])
|
|
|
+ .putNull("index.blocks.write")
|
|
|
+ .build()).get());
|
|
|
ensureGreen();
|
|
|
assertHitCount(client().prepareSearch("first_shrink").setSize(100).setQuery(new TermsQueryBuilder("foo", "bar")).get(), 20);
|
|
|
|
|
@@ -135,9 +137,12 @@ public class ShrinkIndexIT extends ESIntegTestCase {
|
|
|
ensureGreen();
|
|
|
// now merge source into a 2 shard index
|
|
|
assertAcked(client().admin().indices().prepareResizeIndex("first_shrink", "second_shrink")
|
|
|
- .setSettings(Settings.builder()
|
|
|
- .put("index.number_of_replicas", 0)
|
|
|
- .put("index.number_of_shards", shardSplits[2]).build()).get());
|
|
|
+ .setSettings(Settings.builder()
|
|
|
+ .put("index.number_of_replicas", 0)
|
|
|
+ .put("index.number_of_shards", shardSplits[2])
|
|
|
+ .putNull("index.blocks.write")
|
|
|
+ .putNull("index.routing.allocation.require._name")
|
|
|
+ .build()).get());
|
|
|
ensureGreen();
|
|
|
assertHitCount(client().prepareSearch("second_shrink").setSize(100).setQuery(new TermsQueryBuilder("foo", "bar")).get(), 20);
|
|
|
// let it be allocated anywhere and bump replicas
|
|
@@ -272,8 +277,14 @@ public class ShrinkIndexIT extends ESIntegTestCase {
|
|
|
|
|
|
// now merge source into a single shard index
|
|
|
final boolean createWithReplicas = randomBoolean();
|
|
|
- assertAcked(client().admin().indices().prepareResizeIndex("source", "target")
|
|
|
- .setSettings(Settings.builder().put("index.number_of_replicas", createWithReplicas ? 1 : 0).build()).get());
|
|
|
+ assertAcked(
|
|
|
+ client().admin().indices().prepareResizeIndex("source", "target")
|
|
|
+ .setSettings(
|
|
|
+ Settings.builder()
|
|
|
+ .put("index.number_of_replicas", createWithReplicas ? 1 : 0)
|
|
|
+ .putNull("index.blocks.write")
|
|
|
+ .putNull("index.routing.allocation.require._name")
|
|
|
+ .build()).get());
|
|
|
ensureGreen();
|
|
|
|
|
|
// resolve true merge node - this is not always the node we required as all shards may be on another node
|
|
@@ -444,19 +455,20 @@ public class ShrinkIndexIT extends ESIntegTestCase {
|
|
|
|
|
|
// check that index sort cannot be set on the target index
|
|
|
IllegalArgumentException exc = expectThrows(IllegalArgumentException.class,
|
|
|
- () -> client().admin().indices().prepareResizeIndex("source", "target")
|
|
|
- .setSettings(Settings.builder()
|
|
|
- .put("index.number_of_replicas", 0)
|
|
|
- .put("index.number_of_shards", "2")
|
|
|
- .put("index.sort.field", "foo")
|
|
|
- .build()).get());
|
|
|
+ () -> client().admin().indices().prepareResizeIndex("source", "target")
|
|
|
+ .setSettings(Settings.builder()
|
|
|
+ .put("index.number_of_replicas", 0)
|
|
|
+ .put("index.number_of_shards", "2")
|
|
|
+ .put("index.sort.field", "foo")
|
|
|
+ .build()).get());
|
|
|
assertThat(exc.getMessage(), containsString("can't override index sort when resizing an index"));
|
|
|
|
|
|
// check that the index sort order of `source` is correctly applied to the `target`
|
|
|
assertAcked(client().admin().indices().prepareResizeIndex("source", "target")
|
|
|
- .setSettings(Settings.builder()
|
|
|
- .put("index.number_of_replicas", 0)
|
|
|
- .put("index.number_of_shards", "2").build()).get());
|
|
|
+ .setSettings(Settings.builder()
|
|
|
+ .put("index.number_of_replicas", 0)
|
|
|
+ .put("index.number_of_shards", "2")
|
|
|
+ .putNull("index.blocks.write").build()).get());
|
|
|
ensureGreen();
|
|
|
flushAndRefresh();
|
|
|
GetSettingsResponse settingsResponse =
|