From 9e62bde122f2c397a2c4cd4374e6389c2d44ba29 Mon Sep 17 00:00:00 2001 From: jaymode Date: Tue, 25 Feb 2020 08:49:28 -0700 Subject: [PATCH 1/2] Allow dynamic updates for index.hidden setting This commit changes the `index.hidden` setting from being final to a dynamic setting. While the setting being final allows for easier reasoning about an index, making this setting updateable has more benefits in that we can upgrade existing indices to be hidden and it will enable future features that would dynamically make indices hidden. --- .../elasticsearch/cluster/metadata/IndexMetaData.java | 2 +- .../test/java/org/elasticsearch/index/HiddenIndexIT.java | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/org/elasticsearch/cluster/metadata/IndexMetaData.java b/server/src/main/java/org/elasticsearch/cluster/metadata/IndexMetaData.java index d5eec608b549e..82bcf2001b352 100644 --- a/server/src/main/java/org/elasticsearch/cluster/metadata/IndexMetaData.java +++ b/server/src/main/java/org/elasticsearch/cluster/metadata/IndexMetaData.java @@ -262,7 +262,7 @@ public Iterator> settings() { * normal wildcard searches unless explicitly allowed */ public static final Setting INDEX_HIDDEN_SETTING = - Setting.boolSetting(SETTING_INDEX_HIDDEN, false, Property.IndexScope, Property.Final); + Setting.boolSetting(SETTING_INDEX_HIDDEN, false, Property.Dynamic, Property.IndexScope); /** * an internal index format description, allowing us to find out if this index is upgraded or needs upgrading diff --git a/server/src/test/java/org/elasticsearch/index/HiddenIndexIT.java b/server/src/test/java/org/elasticsearch/index/HiddenIndexIT.java index ca4fa588b144a..56637cd3735cc 100644 --- a/server/src/test/java/org/elasticsearch/index/HiddenIndexIT.java +++ b/server/src/test/java/org/elasticsearch/index/HiddenIndexIT.java @@ -77,6 +77,15 @@ public void testHiddenIndexSearch() { .get(); matchedHidden = Arrays.stream(searchResponse.getHits().getHits()).anyMatch(hit -> ".hidden-index".equals(hit.getIndex())); assertTrue(matchedHidden); + + // make index not hidden + assertAcked(client().admin().indices().prepareUpdateSettings("hidden-index") + .setSettings(Settings.builder().put("index.hidden", false).build()) + .get()); + searchResponse = + client().prepareSearch(randomFrom("*", "_all", "h*", "*index")).setSize(1000).setQuery(QueryBuilders.matchAllQuery()).get(); + matchedHidden = Arrays.stream(searchResponse.getHits().getHits()).anyMatch(hit -> "hidden-index".equals(hit.getIndex())); + assertTrue(matchedHidden); } public void testGlobalTemplatesDoNotApply() { From 3fe25e53c855d65f2e398a0da4ab6c37b76ff3c4 Mon Sep 17 00:00:00 2001 From: jaymode Date: Tue, 25 Feb 2020 09:17:23 -0700 Subject: [PATCH 2/2] ccr ignores index.hidden in resume --- .../xpack/ccr/action/TransportResumeFollowAction.java | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/action/TransportResumeFollowAction.java b/x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/action/TransportResumeFollowAction.java index 75f8ff59d1fa5..422bc55087577 100644 --- a/x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/action/TransportResumeFollowAction.java +++ b/x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/action/TransportResumeFollowAction.java @@ -364,6 +364,7 @@ static String[] extractLeaderShardHistoryUUIDs(Map ccrIndexMetaD IndexMetaData.INDEX_BLOCKS_READ_ONLY_ALLOW_DELETE_SETTING, IndexMetaData.INDEX_PRIORITY_SETTING, IndexMetaData.SETTING_WAIT_FOR_ACTIVE_SHARDS, + IndexMetaData.INDEX_HIDDEN_SETTING, EnableAllocationDecider.INDEX_ROUTING_REBALANCE_ENABLE_SETTING, EnableAllocationDecider.INDEX_ROUTING_ALLOCATION_ENABLE_SETTING, ShardsLimitAllocationDecider.INDEX_TOTAL_SHARDS_PER_NODE_SETTING,