diff --git a/server/src/internalClusterTest/java/org/elasticsearch/cluster/ClusterInfoServiceIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/ClusterInfoServiceIT.java index 07e221a7eacc..1565213620b1 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/cluster/ClusterInfoServiceIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/cluster/ClusterInfoServiceIT.java @@ -41,8 +41,10 @@ import org.elasticsearch.index.shard.IndexShard; import org.elasticsearch.index.store.Store; import org.elasticsearch.indices.IndicesService; +import org.elasticsearch.indices.SystemIndexDescriptor; import org.elasticsearch.plugins.ActionPlugin; import org.elasticsearch.plugins.Plugin; +import org.elasticsearch.plugins.SystemIndexPlugin; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.test.InternalTestCluster; import org.elasticsearch.test.transport.MockTransportService; @@ -51,7 +53,9 @@ import java.util.Arrays; import java.util.Collection; +import java.util.Collections; import java.util.List; +import java.util.Locale; import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; @@ -70,7 +74,9 @@ @ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.TEST, numDataNodes = 0) public class ClusterInfoServiceIT extends ESIntegTestCase { - public static class TestPlugin extends Plugin implements ActionPlugin { + private static final String TEST_SYSTEM_INDEX_NAME = ".test-cluster-info-system-index"; + + public static class TestPlugin extends Plugin implements ActionPlugin, SystemIndexPlugin { private final BlockingActionFilter blockingActionFilter; @@ -82,6 +88,12 @@ public TestPlugin() { public List getActionFilters() { return singletonList(blockingActionFilter); } + + @Override + public Collection getSystemIndexDescriptors(Settings settings) { + return Collections.singletonList(new SystemIndexDescriptor(TEST_SYSTEM_INDEX_NAME, + "System index for [" + getTestClass().getName() + ']')); + } } public static class BlockingActionFilter extends org.elasticsearch.action.support.ActionFilter.Simple { @@ -117,13 +129,18 @@ private void setClusterInfoTimeout(String timeValue) { public void testClusterInfoServiceCollectsInformation() { internalCluster().startNodes(2); - assertAcked(prepareCreate("test").setSettings(Settings.builder() - .put(Store.INDEX_STORE_STATS_REFRESH_INTERVAL_SETTING.getKey(), 0) - .put(EnableAllocationDecider.INDEX_ROUTING_REBALANCE_ENABLE_SETTING.getKey(), EnableAllocationDecider.Rebalance.NONE).build())); + + final String indexName = randomBoolean() ? randomAlphaOfLength(5).toLowerCase(Locale.ROOT) : TEST_SYSTEM_INDEX_NAME; + assertAcked(prepareCreate(indexName) + .setSettings(Settings.builder() + .put(Store.INDEX_STORE_STATS_REFRESH_INTERVAL_SETTING.getKey(), 0) + .put(EnableAllocationDecider.INDEX_ROUTING_REBALANCE_ENABLE_SETTING.getKey(), EnableAllocationDecider.Rebalance.NONE) + .put(IndexMetadata.SETTING_INDEX_HIDDEN, randomBoolean()) + .build())); if (randomBoolean()) { - assertAcked(client().admin().indices().prepareClose("test")); + assertAcked(client().admin().indices().prepareClose(indexName)); } - ensureGreen("test"); + ensureGreen(indexName); InternalTestCluster internalTestCluster = internalCluster(); // Get the cluster info service on the master node final InternalClusterInfoService infoService = (InternalClusterInfoService) internalTestCluster diff --git a/server/src/main/java/org/elasticsearch/cluster/InternalClusterInfoService.java b/server/src/main/java/org/elasticsearch/cluster/InternalClusterInfoService.java index b56ba6dc3d11..83dfab4b3d67 100644 --- a/server/src/main/java/org/elasticsearch/cluster/InternalClusterInfoService.java +++ b/server/src/main/java/org/elasticsearch/cluster/InternalClusterInfoService.java @@ -262,7 +262,7 @@ protected CountDownLatch updateIndicesStats(final ActionListener(listener, latch)); return latch; @@ -417,8 +417,8 @@ static void buildShardLevelInfo(Logger logger, ShardStats[] stats, ImmutableOpen } static void fillDiskUsagePerNode(Logger logger, List nodeStatsArray, - ImmutableOpenMap.Builder newLeastAvaiableUsages, - ImmutableOpenMap.Builder newMostAvaiableUsages) { + ImmutableOpenMap.Builder newLeastAvailableUsages, + ImmutableOpenMap.Builder newMostAvailableUsages) { for (NodeStats nodeStats : nodeStatsArray) { if (nodeStats.getFs() == null) { logger.warn("Unable to retrieve node FS stats for {}", nodeStats.getNode().getName()); @@ -449,7 +449,7 @@ static void fillDiskUsagePerNode(Logger logger, List nodeStatsArray, nodeId, leastAvailablePath.getTotal().getBytes()); } } else { - newLeastAvaiableUsages.put(nodeId, new DiskUsage(nodeId, nodeName, leastAvailablePath.getPath(), + newLeastAvailableUsages.put(nodeId, new DiskUsage(nodeId, nodeName, leastAvailablePath.getPath(), leastAvailablePath.getTotal().getBytes(), leastAvailablePath.getAvailable().getBytes())); } if (mostAvailablePath.getTotal().getBytes() < 0) { @@ -458,7 +458,7 @@ static void fillDiskUsagePerNode(Logger logger, List nodeStatsArray, nodeId, mostAvailablePath.getTotal().getBytes()); } } else { - newMostAvaiableUsages.put(nodeId, new DiskUsage(nodeId, nodeName, mostAvailablePath.getPath(), + newMostAvailableUsages.put(nodeId, new DiskUsage(nodeId, nodeName, mostAvailablePath.getPath(), mostAvailablePath.getTotal().getBytes(), mostAvailablePath.getAvailable().getBytes())); }