Search in sources :

Example 1 with ShardLimitValidator

use of org.opensearch.indices.ShardLimitValidator in project OpenSearch by opensearch-project.

the class MetadataCreateIndexService method applyCreateIndexRequestWithV1Templates.

private ClusterState applyCreateIndexRequestWithV1Templates(final ClusterState currentState, final CreateIndexClusterStateUpdateRequest request, final boolean silent, final List<IndexTemplateMetadata> templates, final BiConsumer<Metadata.Builder, IndexMetadata> metadataTransformer) throws Exception {
    logger.debug("applying create index request using legacy templates {}", templates.stream().map(IndexTemplateMetadata::name).collect(Collectors.toList()));
    final Map<String, Map<String, Object>> mappings = Collections.unmodifiableMap(parseV1Mappings(request.mappings(), templates.stream().map(IndexTemplateMetadata::getMappings).map(iom -> {
        Map<String, CompressedXContent> converted = new HashMap<>(iom.size());
        for (ObjectObjectCursor<String, CompressedXContent> cursor : iom) {
            converted.put(cursor.key, cursor.value);
        }
        return converted;
    }).collect(toList()), xContentRegistry));
    final Settings aggregatedIndexSettings = aggregateIndexSettings(currentState, request, MetadataIndexTemplateService.resolveSettings(templates), null, settings, indexScopedSettings, shardLimitValidator, indexSettingProviders);
    int routingNumShards = getIndexNumberOfRoutingShards(aggregatedIndexSettings, null);
    IndexMetadata tmpImd = buildAndValidateTemporaryIndexMetadata(currentState, aggregatedIndexSettings, request, routingNumShards);
    return applyCreateIndexWithTemporaryService(currentState, request, silent, null, tmpImd, Collections.singletonList(mappings), indexService -> resolveAndValidateAliases(request.index(), request.aliases(), MetadataIndexTemplateService.resolveAliases(templates), currentState.metadata(), aliasValidator, // shard id and the current timestamp
    xContentRegistry, indexService.newQueryShardContext(0, null, () -> 0L, null)), templates.stream().map(IndexTemplateMetadata::getName).collect(toList()), metadataTransformer);
}
Also used : CreateIndexClusterStateUpdateRequest(org.opensearch.action.admin.indices.create.CreateIndexClusterStateUpdateRequest) SETTING_AUTO_EXPAND_REPLICAS(org.opensearch.cluster.metadata.IndexMetadata.SETTING_AUTO_EXPAND_REPLICAS) IndexScopedSettings(org.opensearch.common.settings.IndexScopedSettings) BiFunction(java.util.function.BiFunction) AllocationService(org.opensearch.cluster.routing.allocation.AllocationService) Level(org.apache.logging.log4j.Level) INDEX_NUMBER_OF_SHARDS_SETTING(org.opensearch.cluster.metadata.IndexMetadata.INDEX_NUMBER_OF_SHARDS_SETTING) Version(org.opensearch.Version) OpenSearchException(org.opensearch.OpenSearchException) Strings(org.opensearch.common.Strings) ObjectObjectCursor(com.carrotsearch.hppc.cursors.ObjectObjectCursor) MapperService(org.opensearch.index.mapper.MapperService) Alias(org.opensearch.action.admin.indices.alias.Alias) ClusterBlock(org.opensearch.cluster.block.ClusterBlock) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Locale(java.util.Locale) Map(java.util.Map) ActionListener(org.opensearch.action.ActionListener) IndexSettingProvider(org.opensearch.index.shard.IndexSettingProvider) IndexModule(org.opensearch.index.IndexModule) Path(java.nio.file.Path) SETTING_NUMBER_OF_REPLICAS(org.opensearch.cluster.metadata.IndexMetadata.SETTING_NUMBER_OF_REPLICAS) Index(org.opensearch.index.Index) Predicate(java.util.function.Predicate) IndicesService(org.opensearch.indices.IndicesService) Set(java.util.Set) Settings(org.opensearch.common.settings.Settings) Instant(java.time.Instant) Collectors(java.util.stream.Collectors) Nullable(org.opensearch.common.Nullable) ValidationException(org.opensearch.common.ValidationException) InvalidIndexNameException(org.opensearch.indices.InvalidIndexNameException) List(java.util.List) Logger(org.apache.logging.log4j.Logger) SystemIndexDescriptor(org.opensearch.indices.SystemIndexDescriptor) IndexSettings(org.opensearch.index.IndexSettings) QueryShardContext(org.opensearch.index.query.QueryShardContext) SETTING_CREATION_DATE(org.opensearch.cluster.metadata.IndexMetadata.SETTING_CREATION_DATE) ResourceAlreadyExistsException(org.opensearch.ResourceAlreadyExistsException) IndexCreationException(org.opensearch.indices.IndexCreationException) ClusterStateUpdateResponse(org.opensearch.cluster.ack.ClusterStateUpdateResponse) UnsupportedEncodingException(java.io.UnsupportedEncodingException) PathUtils(org.opensearch.common.io.PathUtils) IntStream(java.util.stream.IntStream) DiscoveryNodes(org.opensearch.cluster.node.DiscoveryNodes) INDEX_NUMBER_OF_REPLICAS_SETTING(org.opensearch.cluster.metadata.IndexMetadata.INDEX_NUMBER_OF_REPLICAS_SETTING) ThreadPool(org.opensearch.threadpool.ThreadPool) CompressedXContent(org.opensearch.common.compress.CompressedXContent) SETTING_INDEX_UUID(org.opensearch.cluster.metadata.IndexMetadata.SETTING_INDEX_UUID) CreateIndexClusterStateUpdateResponse(org.opensearch.cluster.ack.CreateIndexClusterStateUpdateResponse) Priority(org.opensearch.common.Priority) HashMap(java.util.HashMap) ParameterizedMessage(org.apache.logging.log4j.message.ParameterizedMessage) Function(java.util.function.Function) Supplier(java.util.function.Supplier) ArrayList(java.util.ArrayList) DeprecationLogger(org.opensearch.common.logging.DeprecationLogger) HashSet(java.util.HashSet) IndexRoutingTable(org.opensearch.cluster.routing.IndexRoutingTable) ClusterState(org.opensearch.cluster.ClusterState) LegacyESVersion(org.opensearch.LegacyESVersion) AckedClusterStateUpdateTask(org.opensearch.cluster.AckedClusterStateUpdateTask) ShardRoutingState(org.opensearch.cluster.routing.ShardRoutingState) BiConsumer(java.util.function.BiConsumer) Collections.singletonMap(java.util.Collections.singletonMap) UUIDs(org.opensearch.common.UUIDs) ClusterBlocks(org.opensearch.cluster.block.ClusterBlocks) Environment(org.opensearch.env.Environment) ResizeType(org.opensearch.action.admin.indices.shrink.ResizeType) Setting(org.opensearch.common.settings.Setting) ShardLimitValidator(org.opensearch.indices.ShardLimitValidator) ClusterBlockLevel(org.opensearch.cluster.block.ClusterBlockLevel) IndexNotFoundException(org.opensearch.index.IndexNotFoundException) IOException(java.io.IOException) IndexService(org.opensearch.index.IndexService) ActiveShardCount(org.opensearch.action.support.ActiveShardCount) DocumentMapper(org.opensearch.index.mapper.DocumentMapper) ShardRouting(org.opensearch.cluster.routing.ShardRouting) XContentHelper(org.opensearch.common.xcontent.XContentHelper) SystemIndices(org.opensearch.indices.SystemIndices) Collectors.toList(java.util.stream.Collectors.toList) MergeReason(org.opensearch.index.mapper.MapperService.MergeReason) ActiveShardsObserver(org.opensearch.action.support.ActiveShardsObserver) NamedXContentRegistry(org.opensearch.common.xcontent.NamedXContentRegistry) ClusterService(org.opensearch.cluster.service.ClusterService) RoutingTable(org.opensearch.cluster.routing.RoutingTable) SETTING_NUMBER_OF_SHARDS(org.opensearch.cluster.metadata.IndexMetadata.SETTING_NUMBER_OF_SHARDS) LogManager(org.apache.logging.log4j.LogManager) Collections(java.util.Collections) ObjectObjectCursor(com.carrotsearch.hppc.cursors.ObjectObjectCursor) Map(java.util.Map) HashMap(java.util.HashMap) Collections.singletonMap(java.util.Collections.singletonMap) IndexScopedSettings(org.opensearch.common.settings.IndexScopedSettings) Settings(org.opensearch.common.settings.Settings) IndexSettings(org.opensearch.index.IndexSettings)

Example 2 with ShardLimitValidator

use of org.opensearch.indices.ShardLimitValidator in project OpenSearch by opensearch-project.

the class MetadataRolloverServiceTests method testRolloverClusterState.

/**
 * Test the main rolloverClusterState method. This does not validate every detail to depth, rather focuses on observing that each
 * parameter is used for the purpose intended.
 */
public void testRolloverClusterState() throws Exception {
    final String aliasName = "logs-alias";
    final String indexPrefix = "logs-index-00000";
    String sourceIndexName = indexPrefix + "1";
    final IndexMetadata.Builder indexMetadata = IndexMetadata.builder(sourceIndexName).putAlias(AliasMetadata.builder(aliasName).writeIndex(true).build()).settings(settings(Version.CURRENT)).numberOfShards(1).numberOfReplicas(1);
    final ClusterState clusterState = ClusterState.builder(new ClusterName("test")).metadata(Metadata.builder().put(indexMetadata)).build();
    ThreadPool testThreadPool = new TestThreadPool(getTestName());
    try {
        ClusterService clusterService = ClusterServiceUtils.createClusterService(testThreadPool);
        Environment env = mock(Environment.class);
        when(env.sharedDataFile()).thenReturn(null);
        AllocationService allocationService = mock(AllocationService.class);
        when(allocationService.reroute(any(ClusterState.class), any(String.class))).then(i -> i.getArguments()[0]);
        IndicesService indicesService = mockIndicesServices();
        IndexNameExpressionResolver mockIndexNameExpressionResolver = mock(IndexNameExpressionResolver.class);
        when(mockIndexNameExpressionResolver.resolveDateMathExpression(any())).then(returnsFirstArg());
        ShardLimitValidator shardLimitValidator = new ShardLimitValidator(Settings.EMPTY, clusterService);
        MetadataCreateIndexService createIndexService = new MetadataCreateIndexService(Settings.EMPTY, clusterService, indicesService, allocationService, null, shardLimitValidator, env, IndexScopedSettings.DEFAULT_SCOPED_SETTINGS, testThreadPool, null, new SystemIndices(emptyMap()), false);
        MetadataIndexAliasesService indexAliasesService = new MetadataIndexAliasesService(clusterService, indicesService, new AliasValidator(), null, xContentRegistry());
        MetadataRolloverService rolloverService = new MetadataRolloverService(testThreadPool, createIndexService, indexAliasesService, mockIndexNameExpressionResolver);
        MaxDocsCondition condition = new MaxDocsCondition(randomNonNegativeLong());
        List<Condition<?>> metConditions = Collections.singletonList(condition);
        String newIndexName = randomBoolean() ? "logs-index-9" : null;
        int numberOfShards = randomIntBetween(1, 5);
        CreateIndexRequest createIndexRequest = new CreateIndexRequest("_na_");
        createIndexRequest.settings(Settings.builder().put(IndexMetadata.SETTING_NUMBER_OF_SHARDS, numberOfShards));
        long before = testThreadPool.absoluteTimeInMillis();
        MetadataRolloverService.RolloverResult rolloverResult = rolloverService.rolloverClusterState(clusterState, aliasName, newIndexName, createIndexRequest, metConditions, randomBoolean(), false);
        long after = testThreadPool.absoluteTimeInMillis();
        newIndexName = newIndexName == null ? indexPrefix + "2" : newIndexName;
        assertEquals(sourceIndexName, rolloverResult.sourceIndexName);
        assertEquals(newIndexName, rolloverResult.rolloverIndexName);
        Metadata rolloverMetadata = rolloverResult.clusterState.metadata();
        assertEquals(2, rolloverMetadata.indices().size());
        IndexMetadata rolloverIndexMetadata = rolloverMetadata.index(newIndexName);
        assertThat(rolloverIndexMetadata.getNumberOfShards(), equalTo(numberOfShards));
        IndexAbstraction alias = rolloverMetadata.getIndicesLookup().get(aliasName);
        assertThat(alias.getType(), equalTo(IndexAbstraction.Type.ALIAS));
        assertThat(alias.getIndices(), hasSize(2));
        assertThat(alias.getIndices(), hasItem(rolloverMetadata.index(sourceIndexName)));
        assertThat(alias.getIndices(), hasItem(rolloverIndexMetadata));
        assertThat(alias.getWriteIndex(), equalTo(rolloverIndexMetadata));
        RolloverInfo info = rolloverMetadata.index(sourceIndexName).getRolloverInfos().get(aliasName);
        assertThat(info.getTime(), lessThanOrEqualTo(after));
        assertThat(info.getTime(), greaterThanOrEqualTo(before));
        assertThat(info.getMetConditions(), hasSize(1));
        assertThat(info.getMetConditions().get(0).value(), equalTo(condition.value()));
    } finally {
        testThreadPool.shutdown();
    }
}
Also used : TestThreadPool(org.opensearch.threadpool.TestThreadPool) ThreadPool(org.opensearch.threadpool.ThreadPool) Metadata(org.opensearch.cluster.metadata.Metadata) IndexMetadata(org.opensearch.cluster.metadata.IndexMetadata) AliasMetadata(org.opensearch.cluster.metadata.AliasMetadata) IndexTemplateMetadata(org.opensearch.cluster.metadata.IndexTemplateMetadata) Matchers.containsString(org.hamcrest.Matchers.containsString) TestThreadPool(org.opensearch.threadpool.TestThreadPool) MetadataCreateIndexService(org.opensearch.cluster.metadata.MetadataCreateIndexService) ShardLimitValidator(org.opensearch.indices.ShardLimitValidator) ClusterName(org.opensearch.cluster.ClusterName) IndexMetadata(org.opensearch.cluster.metadata.IndexMetadata) AllocationService(org.opensearch.cluster.routing.allocation.AllocationService) ClusterState(org.opensearch.cluster.ClusterState) AliasValidator(org.opensearch.cluster.metadata.AliasValidator) IndicesService(org.opensearch.indices.IndicesService) IndexAbstraction(org.opensearch.cluster.metadata.IndexAbstraction) ClusterService(org.opensearch.cluster.service.ClusterService) MetadataIndexAliasesService(org.opensearch.cluster.metadata.MetadataIndexAliasesService) Environment(org.opensearch.env.Environment) IndexNameExpressionResolver(org.opensearch.cluster.metadata.IndexNameExpressionResolver) SystemIndices(org.opensearch.indices.SystemIndices) CreateIndexRequest(org.opensearch.action.admin.indices.create.CreateIndexRequest)

Example 3 with ShardLimitValidator

use of org.opensearch.indices.ShardLimitValidator in project OpenSearch by opensearch-project.

the class MetadataRolloverServiceTests method testRolloverClusterStateForDataStream.

public void testRolloverClusterStateForDataStream() throws Exception {
    final DataStream dataStream = DataStreamTests.randomInstance();
    ComposableIndexTemplate template = new ComposableIndexTemplate(Collections.singletonList(dataStream.getName() + "*"), null, null, null, null, null, new ComposableIndexTemplate.DataStreamTemplate());
    Metadata.Builder builder = Metadata.builder();
    builder.put("template", template);
    for (Index index : dataStream.getIndices()) {
        builder.put(DataStreamTestHelper.getIndexMetadataBuilderForIndex(index));
    }
    builder.put(dataStream);
    final ClusterState clusterState = ClusterState.builder(new ClusterName("test")).metadata(builder).build();
    ThreadPool testThreadPool = new TestThreadPool(getTestName());
    try {
        Mapper.BuilderContext builderContext = new Mapper.BuilderContext(Settings.EMPTY, new ContentPath(0));
        DateFieldMapper dateFieldMapper = new DateFieldMapper.Builder("@timestamp", DateFieldMapper.Resolution.MILLISECONDS, null, false, Version.CURRENT).build(builderContext);
        MetadataFieldMapper mockedTimestampField = mock(MetadataFieldMapper.class);
        when(mockedTimestampField.name()).thenReturn("_data_stream_timestamp");
        MappedFieldType mockedTimestampFieldType = mock(MappedFieldType.class);
        when(mockedTimestampFieldType.name()).thenReturn("_data_stream_timestamp");
        when(mockedTimestampField.fieldType()).thenReturn(mockedTimestampFieldType);
        when(mockedTimestampField.copyTo()).thenReturn(FieldMapper.CopyTo.empty());
        when(mockedTimestampField.multiFields()).thenReturn(FieldMapper.MultiFields.empty());
        MappingLookup mappingLookup = new MappingLookup(Arrays.asList(mockedTimestampField, dateFieldMapper), Collections.emptyList(), Collections.emptyList(), 0, new StandardAnalyzer());
        ClusterService clusterService = ClusterServiceUtils.createClusterService(testThreadPool);
        Environment env = mock(Environment.class);
        when(env.sharedDataFile()).thenReturn(null);
        AllocationService allocationService = mock(AllocationService.class);
        when(allocationService.reroute(any(ClusterState.class), any(String.class))).then(i -> i.getArguments()[0]);
        DocumentMapper documentMapper = mock(DocumentMapper.class);
        when(documentMapper.mappers()).thenReturn(mappingLookup);
        when(documentMapper.type()).thenReturn("_doc");
        CompressedXContent mapping = new CompressedXContent("{\"_doc\":" + generateMapping(dataStream.getTimeStampField().getName(), "date") + "}");
        when(documentMapper.mappingSource()).thenReturn(mapping);
        RoutingFieldMapper routingFieldMapper = mock(RoutingFieldMapper.class);
        when(routingFieldMapper.required()).thenReturn(false);
        when(documentMapper.routingFieldMapper()).thenReturn(routingFieldMapper);
        IndicesService indicesService = mockIndicesServices(documentMapper);
        IndexNameExpressionResolver mockIndexNameExpressionResolver = mock(IndexNameExpressionResolver.class);
        when(mockIndexNameExpressionResolver.resolveDateMathExpression(any())).then(returnsFirstArg());
        ShardLimitValidator shardLimitValidator = new ShardLimitValidator(Settings.EMPTY, clusterService);
        MetadataCreateIndexService createIndexService = new MetadataCreateIndexService(Settings.EMPTY, clusterService, indicesService, allocationService, null, shardLimitValidator, env, IndexScopedSettings.DEFAULT_SCOPED_SETTINGS, testThreadPool, null, new SystemIndices(emptyMap()), false);
        MetadataIndexAliasesService indexAliasesService = new MetadataIndexAliasesService(clusterService, indicesService, new AliasValidator(), null, xContentRegistry());
        MetadataRolloverService rolloverService = new MetadataRolloverService(testThreadPool, createIndexService, indexAliasesService, mockIndexNameExpressionResolver);
        MaxDocsCondition condition = new MaxDocsCondition(randomNonNegativeLong());
        List<Condition<?>> metConditions = Collections.singletonList(condition);
        CreateIndexRequest createIndexRequest = new CreateIndexRequest("_na_");
        long before = testThreadPool.absoluteTimeInMillis();
        MetadataRolloverService.RolloverResult rolloverResult = rolloverService.rolloverClusterState(clusterState, dataStream.getName(), null, createIndexRequest, metConditions, randomBoolean(), false);
        long after = testThreadPool.absoluteTimeInMillis();
        String sourceIndexName = DataStream.getDefaultBackingIndexName(dataStream.getName(), dataStream.getGeneration());
        String newIndexName = DataStream.getDefaultBackingIndexName(dataStream.getName(), dataStream.getGeneration() + 1);
        assertEquals(sourceIndexName, rolloverResult.sourceIndexName);
        assertEquals(newIndexName, rolloverResult.rolloverIndexName);
        Metadata rolloverMetadata = rolloverResult.clusterState.metadata();
        assertEquals(dataStream.getIndices().size() + 1, rolloverMetadata.indices().size());
        IndexMetadata rolloverIndexMetadata = rolloverMetadata.index(newIndexName);
        IndexAbstraction ds = rolloverMetadata.getIndicesLookup().get(dataStream.getName());
        assertThat(ds.getType(), equalTo(IndexAbstraction.Type.DATA_STREAM));
        assertThat(ds.getIndices(), hasSize(dataStream.getIndices().size() + 1));
        assertThat(ds.getIndices(), hasItem(rolloverMetadata.index(sourceIndexName)));
        assertThat(ds.getIndices(), hasItem(rolloverIndexMetadata));
        assertThat(ds.getWriteIndex(), equalTo(rolloverIndexMetadata));
        RolloverInfo info = rolloverMetadata.index(sourceIndexName).getRolloverInfos().get(dataStream.getName());
        assertThat(info.getTime(), lessThanOrEqualTo(after));
        assertThat(info.getTime(), greaterThanOrEqualTo(before));
        assertThat(info.getMetConditions(), hasSize(1));
        assertThat(info.getMetConditions().get(0).value(), equalTo(condition.value()));
    } finally {
        testThreadPool.shutdown();
    }
}
Also used : ComposableIndexTemplate(org.opensearch.cluster.metadata.ComposableIndexTemplate) DataStream(org.opensearch.cluster.metadata.DataStream) Metadata(org.opensearch.cluster.metadata.Metadata) IndexMetadata(org.opensearch.cluster.metadata.IndexMetadata) AliasMetadata(org.opensearch.cluster.metadata.AliasMetadata) IndexTemplateMetadata(org.opensearch.cluster.metadata.IndexTemplateMetadata) TestThreadPool(org.opensearch.threadpool.TestThreadPool) ThreadPool(org.opensearch.threadpool.ThreadPool) Index(org.opensearch.index.Index) Matchers.containsString(org.hamcrest.Matchers.containsString) TestThreadPool(org.opensearch.threadpool.TestThreadPool) MetadataFieldMapper(org.opensearch.index.mapper.MetadataFieldMapper) RoutingFieldMapper(org.opensearch.index.mapper.RoutingFieldMapper) FieldMapper(org.opensearch.index.mapper.FieldMapper) Mapper(org.opensearch.index.mapper.Mapper) DocumentMapper(org.opensearch.index.mapper.DocumentMapper) DateFieldMapper(org.opensearch.index.mapper.DateFieldMapper) MetadataCreateIndexService(org.opensearch.cluster.metadata.MetadataCreateIndexService) MappingLookup(org.opensearch.index.mapper.MappingLookup) ShardLimitValidator(org.opensearch.indices.ShardLimitValidator) MappedFieldType(org.opensearch.index.mapper.MappedFieldType) CompressedXContent(org.opensearch.common.compress.CompressedXContent) ClusterName(org.opensearch.cluster.ClusterName) IndexMetadata(org.opensearch.cluster.metadata.IndexMetadata) AllocationService(org.opensearch.cluster.routing.allocation.AllocationService) DateFieldMapper(org.opensearch.index.mapper.DateFieldMapper) ClusterState(org.opensearch.cluster.ClusterState) DocumentMapper(org.opensearch.index.mapper.DocumentMapper) AliasValidator(org.opensearch.cluster.metadata.AliasValidator) RoutingFieldMapper(org.opensearch.index.mapper.RoutingFieldMapper) IndicesService(org.opensearch.indices.IndicesService) ContentPath(org.opensearch.index.mapper.ContentPath) IndexAbstraction(org.opensearch.cluster.metadata.IndexAbstraction) MetadataFieldMapper(org.opensearch.index.mapper.MetadataFieldMapper) ClusterService(org.opensearch.cluster.service.ClusterService) MetadataIndexAliasesService(org.opensearch.cluster.metadata.MetadataIndexAliasesService) StandardAnalyzer(org.apache.lucene.analysis.standard.StandardAnalyzer) Environment(org.opensearch.env.Environment) IndexNameExpressionResolver(org.opensearch.cluster.metadata.IndexNameExpressionResolver) SystemIndices(org.opensearch.indices.SystemIndices) CreateIndexRequest(org.opensearch.action.admin.indices.create.CreateIndexRequest)

Aggregations

ClusterState (org.opensearch.cluster.ClusterState)3 Matchers.containsString (org.hamcrest.Matchers.containsString)2 CreateIndexRequest (org.opensearch.action.admin.indices.create.CreateIndexRequest)2 ClusterName (org.opensearch.cluster.ClusterName)2 AliasMetadata (org.opensearch.cluster.metadata.AliasMetadata)2 AliasValidator (org.opensearch.cluster.metadata.AliasValidator)2 IndexAbstraction (org.opensearch.cluster.metadata.IndexAbstraction)2 IndexMetadata (org.opensearch.cluster.metadata.IndexMetadata)2 IndexNameExpressionResolver (org.opensearch.cluster.metadata.IndexNameExpressionResolver)2 IndexTemplateMetadata (org.opensearch.cluster.metadata.IndexTemplateMetadata)2 Metadata (org.opensearch.cluster.metadata.Metadata)2 MetadataCreateIndexService (org.opensearch.cluster.metadata.MetadataCreateIndexService)2 MetadataIndexAliasesService (org.opensearch.cluster.metadata.MetadataIndexAliasesService)2 AllocationService (org.opensearch.cluster.routing.allocation.AllocationService)2 ClusterService (org.opensearch.cluster.service.ClusterService)2 Environment (org.opensearch.env.Environment)2 IndicesService (org.opensearch.indices.IndicesService)2 ShardLimitValidator (org.opensearch.indices.ShardLimitValidator)2 SystemIndices (org.opensearch.indices.SystemIndices)2 TestThreadPool (org.opensearch.threadpool.TestThreadPool)2