|
21 | 21 |
|
22 | 22 | import org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse;
|
23 | 23 | import org.elasticsearch.action.admin.indices.settings.get.GetSettingsResponse;
|
| 24 | +import org.elasticsearch.cluster.ClusterState; |
24 | 25 | import org.elasticsearch.cluster.metadata.IndexMetadata;
|
| 26 | +import org.elasticsearch.cluster.service.ClusterService; |
25 | 27 | import org.elasticsearch.common.Priority;
|
26 | 28 | import org.elasticsearch.common.settings.Setting;
|
27 | 29 | import org.elasticsearch.common.settings.Settings;
|
| 30 | +import org.elasticsearch.common.unit.TimeValue; |
28 | 31 | import org.elasticsearch.index.IndexModule;
|
29 | 32 | import org.elasticsearch.index.IndexService;
|
30 | 33 | import org.elasticsearch.index.VersionType;
|
@@ -687,4 +690,52 @@ private void runTestDefaultNumberOfReplicasTest(final boolean closeIndex) {
|
687 | 690 | assertThat(IndexMetadata.INDEX_NUMBER_OF_REPLICAS_SETTING.get(response.getIndexToSettings().get("test")), equalTo(1));
|
688 | 691 | }
|
689 | 692 |
|
| 693 | + public void testNoopUpdate() { |
| 694 | + internalCluster().ensureAtLeastNumDataNodes(2); |
| 695 | + final ClusterService clusterService = internalCluster().getMasterNodeInstance(ClusterService.class); |
| 696 | + assertAcked(client().admin().indices().prepareCreate("test") |
| 697 | + .setSettings(Settings.builder().put(IndexMetadata.SETTING_NUMBER_OF_REPLICAS, 0))); |
| 698 | + |
| 699 | + ClusterState currentState = clusterService.state(); |
| 700 | + assertAcked(client().admin().indices().prepareUpdateSettings("test") |
| 701 | + .setSettings(Settings.builder().put(IndexMetadata.SETTING_NUMBER_OF_REPLICAS, 1))); |
| 702 | + assertNotSame(currentState, clusterService.state()); |
| 703 | + client().admin().cluster().prepareHealth() |
| 704 | + .setWaitForGreenStatus() |
| 705 | + .setWaitForNoInitializingShards(true) |
| 706 | + .setWaitForEvents(Priority.LANGUID) |
| 707 | + .setTimeout(TimeValue.MAX_VALUE) |
| 708 | + .get(); |
| 709 | + currentState = clusterService.state(); |
| 710 | + |
| 711 | + assertAcked(client().admin().indices().prepareUpdateSettings("test") |
| 712 | + .setSettings(Settings.builder().put(IndexMetadata.SETTING_NUMBER_OF_REPLICAS, 1))); |
| 713 | + assertSame(clusterService.state(), currentState); |
| 714 | + |
| 715 | + assertAcked(client().admin().indices().prepareUpdateSettings("test") |
| 716 | + .setSettings(Settings.builder().putNull(IndexMetadata.SETTING_NUMBER_OF_REPLICAS))); |
| 717 | + assertSame(clusterService.state(), currentState); |
| 718 | + |
| 719 | + assertAcked(client().admin().indices().prepareUpdateSettings("test") |
| 720 | + .setSettings(Settings.builder() |
| 721 | + .putNull(SETTING_BLOCKS_READ) |
| 722 | + .put(IndexMetadata.SETTING_NUMBER_OF_REPLICAS, 1))); |
| 723 | + assertSame(currentState, clusterService.state()); |
| 724 | + |
| 725 | + assertAcked(client().admin().indices().prepareUpdateSettings("test") |
| 726 | + .setSettings(Settings.builder() |
| 727 | + .put(SETTING_BLOCKS_READ, true) |
| 728 | + .put(IndexMetadata.SETTING_NUMBER_OF_REPLICAS, 1))); |
| 729 | + assertNotSame(currentState, clusterService.state()); |
| 730 | + currentState = clusterService.state(); |
| 731 | + |
| 732 | + assertAcked(client().admin().indices().prepareUpdateSettings("test") |
| 733 | + .setSettings(Settings.builder().put(SETTING_BLOCKS_READ, true))); |
| 734 | + assertSame(currentState, clusterService.state()); |
| 735 | + |
| 736 | + assertAcked(client().admin().indices().prepareUpdateSettings("test") |
| 737 | + .setSettings(Settings.builder().putNull(SETTING_BLOCKS_READ))); |
| 738 | + assertNotSame(currentState, clusterService.state()); |
| 739 | + } |
| 740 | + |
690 | 741 | }
|
0 commit comments