Search in sources :

Example 6 with Mapping

use of org.opensearch.index.mapper.Mapping in project OpenSearch by opensearch-project.

the class MappingUpdatedAction method sendUpdateMapping.

// can be overridden by tests
protected void sendUpdateMapping(Index index, Mapping mappingUpdate, ActionListener<Void> listener) {
    PutMappingRequest putMappingRequest = new PutMappingRequest();
    putMappingRequest.setConcreteIndex(index);
    putMappingRequest.source(mappingUpdate.toString(), XContentType.JSON);
    putMappingRequest.masterNodeTimeout(dynamicMappingUpdateTimeout);
    putMappingRequest.timeout(TimeValue.ZERO);
    if (clusterService.state().nodes().getMinNodeVersion().onOrAfter(LegacyESVersion.V_7_9_0)) {
        client.execute(AutoPutMappingAction.INSTANCE, putMappingRequest, ActionListener.wrap(r -> listener.onResponse(null), listener::onFailure));
    } else {
        client.putMapping(putMappingRequest, ActionListener.wrap(r -> listener.onResponse(null), e -> listener.onFailure(unwrapException(e))));
    }
}
Also used : Client(org.opensearch.client.Client) Setting(org.opensearch.common.settings.Setting) TimeValue(org.opensearch.common.unit.TimeValue) Index(org.opensearch.index.Index) Semaphore(java.util.concurrent.Semaphore) PutMappingRequest(org.opensearch.action.admin.indices.mapping.put.PutMappingRequest) AutoPutMappingAction(org.opensearch.action.admin.indices.mapping.put.AutoPutMappingAction) Settings(org.opensearch.common.settings.Settings) OpenSearchException(org.opensearch.OpenSearchException) RunOnce(org.opensearch.common.util.concurrent.RunOnce) UncategorizedExecutionException(org.opensearch.common.util.concurrent.UncategorizedExecutionException) MasterNodeRequest(org.opensearch.action.support.master.MasterNodeRequest) LegacyESVersion(org.opensearch.LegacyESVersion) Mapping(org.opensearch.index.mapper.Mapping) IndicesAdminClient(org.opensearch.client.IndicesAdminClient) Property(org.opensearch.common.settings.Setting.Property) ClusterService(org.opensearch.cluster.service.ClusterService) Inject(org.opensearch.common.inject.Inject) XContentType(org.opensearch.common.xcontent.XContentType) ActionListener(org.opensearch.action.ActionListener) ClusterSettings(org.opensearch.common.settings.ClusterSettings) PutMappingRequest(org.opensearch.action.admin.indices.mapping.put.PutMappingRequest)

Example 7 with Mapping

use of org.opensearch.index.mapper.Mapping in project OpenSearch by opensearch-project.

the class TransportShardBulkActionTests method testExecuteBulkIndexRequestWithErrorWhileUpdatingMapping.

public void testExecuteBulkIndexRequestWithErrorWhileUpdatingMapping() throws Exception {
    IndexShard shard = newStartedShard(true);
    BulkItemRequest[] items = new BulkItemRequest[1];
    DocWriteRequest<IndexRequest> writeRequest = new IndexRequest("index").id("id").source(Requests.INDEX_CONTENT_TYPE, "foo", "bar");
    items[0] = new BulkItemRequest(0, writeRequest);
    BulkShardRequest bulkShardRequest = new BulkShardRequest(shardId, RefreshPolicy.NONE, items);
    // Return an exception when trying to update the mapping, or when waiting for it to come
    RuntimeException err = new RuntimeException("some kind of exception");
    boolean errorOnWait = randomBoolean();
    randomlySetIgnoredPrimaryResponse(items[0]);
    BulkPrimaryExecutionContext context = new BulkPrimaryExecutionContext(bulkShardRequest, shard);
    final CountDownLatch latch = new CountDownLatch(1);
    TransportShardBulkAction.executeBulkItemRequest(context, null, threadPool::absoluteTimeInMillis, errorOnWait == false ? new ThrowingMappingUpdatePerformer(err) : new NoopMappingUpdatePerformer(), errorOnWait ? listener -> listener.onFailure(err) : listener -> listener.onResponse(null), new LatchedActionListener<>(new ActionListener<Void>() {

        @Override
        public void onResponse(Void aVoid) {
        }

        @Override
        public void onFailure(final Exception e) {
            assertEquals(err, e);
        }
    }, latch));
    latch.await();
    assertFalse(context.hasMoreOperationsToExecute());
    // Translog shouldn't be synced, as there were conflicting mappings
    assertThat(context.getLocationToSync(), nullValue());
    BulkItemResponse primaryResponse = bulkShardRequest.items()[0].getPrimaryResponse();
    // Since this was not a conflict failure, the primary response
    // should be filled out with the failure information
    assertThat(primaryResponse.getItemId(), equalTo(0));
    assertThat(primaryResponse.getId(), equalTo("id"));
    assertThat(primaryResponse.getOpType(), equalTo(DocWriteRequest.OpType.INDEX));
    assertTrue(primaryResponse.isFailed());
    assertThat(primaryResponse.getFailureMessage(), containsString("some kind of exception"));
    BulkItemResponse.Failure failure = primaryResponse.getFailure();
    assertThat(failure.getIndex(), equalTo("index"));
    assertThat(failure.getId(), equalTo("id"));
    assertThat(failure.getCause(), equalTo(err));
    closeShards(shard);
}
Also used : OpenSearchRejectedExecutionException(org.opensearch.common.util.concurrent.OpenSearchRejectedExecutionException) IndexResponse(org.opensearch.action.index.IndexResponse) OpenSearchStatusException(org.opensearch.OpenSearchStatusException) TestThreadPool(org.opensearch.threadpool.TestThreadPool) Version(org.opensearch.Version) OpenSearchException(org.opensearch.OpenSearchException) CoreMatchers.notNullValue(org.hamcrest.CoreMatchers.notNullValue) CoreMatchers.instanceOf(org.hamcrest.CoreMatchers.instanceOf) IndexShardTestCase(org.opensearch.index.shard.IndexShardTestCase) MapperService(org.opensearch.index.mapper.MapperService) LatchedActionListener(org.opensearch.action.LatchedActionListener) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Mockito.anyBoolean(org.mockito.Mockito.anyBoolean) Matchers.nullValue(org.hamcrest.Matchers.nullValue) ActionListener(org.opensearch.action.ActionListener) DeleteRequest(org.opensearch.action.delete.DeleteRequest) CyclicBarrier(java.util.concurrent.CyclicBarrier) Settings(org.opensearch.common.settings.Settings) RestStatus(org.opensearch.rest.RestStatus) Engine(org.opensearch.index.engine.Engine) CountDownLatch(java.util.concurrent.CountDownLatch) VersionType(org.opensearch.index.VersionType) ActionTestUtils(org.opensearch.action.support.ActionTestUtils) IndexSettings(org.opensearch.index.IndexSettings) MetadataFieldMapper(org.opensearch.index.mapper.MetadataFieldMapper) DocWriteResponse(org.opensearch.action.DocWriteResponse) UpdateRequest(org.opensearch.action.update.UpdateRequest) Mockito.any(org.mockito.Mockito.any) Matchers.containsString(org.hamcrest.Matchers.containsString) RefreshPolicy(org.opensearch.action.support.WriteRequest.RefreshPolicy) Names(org.opensearch.threadpool.ThreadPool.Names) Mockito.eq(org.mockito.Mockito.eq) Mockito.mock(org.mockito.Mockito.mock) Matchers.arrayWithSize(org.hamcrest.Matchers.arrayWithSize) IndexMetadata(org.opensearch.cluster.metadata.IndexMetadata) CoreMatchers.equalTo(org.hamcrest.CoreMatchers.equalTo) UpdateResponse(org.opensearch.action.update.UpdateResponse) ThreadPool(org.opensearch.threadpool.ThreadPool) CoreMatchers.not(org.hamcrest.CoreMatchers.not) DocWriteRequest(org.opensearch.action.DocWriteRequest) Mockito.spy(org.mockito.Mockito.spy) WritePrimaryResult(org.opensearch.action.support.replication.TransportWriteAction.WritePrimaryResult) Requests(org.opensearch.client.Requests) IndexShard(org.opensearch.index.shard.IndexShard) Mapping(org.opensearch.index.mapper.Mapping) DeleteResponse(org.opensearch.action.delete.DeleteResponse) Translog(org.opensearch.index.translog.Translog) Mockito.anyLong(org.mockito.Mockito.anyLong) Versions(org.opensearch.common.lucene.uid.Versions) UpdateHelper(org.opensearch.action.update.UpdateHelper) VersionConflictEngineException(org.opensearch.index.engine.VersionConflictEngineException) IOException(java.io.IOException) BrokenBarrierException(java.util.concurrent.BrokenBarrierException) Mockito.times(org.mockito.Mockito.times) Mockito.when(org.mockito.Mockito.when) RootObjectMapper(org.opensearch.index.mapper.RootObjectMapper) Mockito.verify(org.mockito.Mockito.verify) ShardId(org.opensearch.index.shard.ShardId) IndexRequest(org.opensearch.action.index.IndexRequest) Collections(java.util.Collections) IndexShard(org.opensearch.index.shard.IndexShard) IndexRequest(org.opensearch.action.index.IndexRequest) CountDownLatch(java.util.concurrent.CountDownLatch) OpenSearchRejectedExecutionException(org.opensearch.common.util.concurrent.OpenSearchRejectedExecutionException) OpenSearchStatusException(org.opensearch.OpenSearchStatusException) OpenSearchException(org.opensearch.OpenSearchException) VersionConflictEngineException(org.opensearch.index.engine.VersionConflictEngineException) IOException(java.io.IOException) BrokenBarrierException(java.util.concurrent.BrokenBarrierException) LatchedActionListener(org.opensearch.action.LatchedActionListener) ActionListener(org.opensearch.action.ActionListener)

Example 8 with Mapping

use of org.opensearch.index.mapper.Mapping in project OpenSearch by opensearch-project.

the class TransportShardBulkActionTests method testForceExecutionOnRejectionAfterMappingUpdate.

public void testForceExecutionOnRejectionAfterMappingUpdate() throws Exception {
    TestThreadPool rejectingThreadPool = new TestThreadPool("TransportShardBulkActionTests#testForceExecutionOnRejectionAfterMappingUpdate", Settings.builder().put("thread_pool." + ThreadPool.Names.WRITE + ".size", 1).put("thread_pool." + ThreadPool.Names.WRITE + ".queue_size", 1).build());
    CyclicBarrier cyclicBarrier = new CyclicBarrier(2);
    rejectingThreadPool.executor(ThreadPool.Names.WRITE).execute(() -> {
        try {
            cyclicBarrier.await();
            logger.info("blocking the write executor");
            cyclicBarrier.await();
            logger.info("unblocked the write executor");
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    });
    try {
        cyclicBarrier.await();
        // Place a task in the queue to block next enqueue
        rejectingThreadPool.executor(ThreadPool.Names.WRITE).execute(() -> {
        });
        BulkItemRequest[] items = new BulkItemRequest[2];
        DocWriteRequest<IndexRequest> writeRequest1 = new IndexRequest("index").id("id").source(Requests.INDEX_CONTENT_TYPE, "foo", 1);
        DocWriteRequest<IndexRequest> writeRequest2 = new IndexRequest("index").id("id").source(Requests.INDEX_CONTENT_TYPE, "foo", "bar");
        items[0] = new BulkItemRequest(0, writeRequest1);
        items[1] = new BulkItemRequest(1, writeRequest2);
        BulkShardRequest bulkShardRequest = new BulkShardRequest(shardId, RefreshPolicy.NONE, items);
        Engine.IndexResult mappingUpdate = new Engine.IndexResult(new Mapping(null, mock(RootObjectMapper.class), new MetadataFieldMapper[0], Collections.emptyMap()));
        Translog.Location resultLocation1 = new Translog.Location(42, 36, 36);
        Translog.Location resultLocation2 = new Translog.Location(42, 42, 42);
        Engine.IndexResult success1 = new FakeIndexResult(1, 1, 10, true, resultLocation1);
        Engine.IndexResult success2 = new FakeIndexResult(1, 1, 13, true, resultLocation2);
        IndexShard shard = mock(IndexShard.class);
        when(shard.shardId()).thenReturn(shardId);
        when(shard.applyIndexOperationOnPrimary(anyLong(), any(), any(), anyLong(), anyLong(), anyLong(), anyBoolean())).thenReturn(success1, mappingUpdate, success2);
        when(shard.getFailedIndexResult(any(OpenSearchRejectedExecutionException.class), anyLong())).thenCallRealMethod();
        when(shard.mapperService()).thenReturn(mock(MapperService.class));
        randomlySetIgnoredPrimaryResponse(items[0]);
        AtomicInteger updateCalled = new AtomicInteger();
        final CountDownLatch latch = new CountDownLatch(1);
        TransportShardBulkAction.performOnPrimary(bulkShardRequest, shard, null, rejectingThreadPool::absoluteTimeInMillis, (update, shardId, listener) -> {
            // There should indeed be a mapping update
            assertNotNull(update);
            updateCalled.incrementAndGet();
            listener.onResponse(null);
            try {
                // Release blocking task now that the continue write execution has been rejected and
                // the finishRequest execution has been force enqueued
                cyclicBarrier.await();
            } catch (InterruptedException | BrokenBarrierException e) {
                throw new IllegalStateException(e);
            }
        }, listener -> listener.onResponse(null), new LatchedActionListener<>(ActionTestUtils.assertNoFailureListener(result -> assertThat(((WritePrimaryResult<BulkShardRequest, BulkShardResponse>) result).location, equalTo(resultLocation1))), latch), rejectingThreadPool, Names.WRITE);
        latch.await();
        assertThat("mappings were \"updated\" once", updateCalled.get(), equalTo(1));
        verify(shard, times(2)).applyIndexOperationOnPrimary(anyLong(), any(), any(), anyLong(), anyLong(), anyLong(), anyBoolean());
        BulkItemResponse primaryResponse1 = bulkShardRequest.items()[0].getPrimaryResponse();
        assertThat(primaryResponse1.getItemId(), equalTo(0));
        assertThat(primaryResponse1.getId(), equalTo("id"));
        assertThat(primaryResponse1.getOpType(), equalTo(DocWriteRequest.OpType.INDEX));
        assertFalse(primaryResponse1.isFailed());
        assertThat(primaryResponse1.getResponse().status(), equalTo(RestStatus.CREATED));
        assertThat(primaryResponse1.getResponse().getSeqNo(), equalTo(10L));
        BulkItemResponse primaryResponse2 = bulkShardRequest.items()[1].getPrimaryResponse();
        assertThat(primaryResponse2.getItemId(), equalTo(1));
        assertThat(primaryResponse2.getId(), equalTo("id"));
        assertThat(primaryResponse2.getOpType(), equalTo(DocWriteRequest.OpType.INDEX));
        assertTrue(primaryResponse2.isFailed());
        assertNull(primaryResponse2.getResponse());
        assertEquals(primaryResponse2.status(), RestStatus.TOO_MANY_REQUESTS);
        assertThat(primaryResponse2.getFailure().getCause(), instanceOf(OpenSearchRejectedExecutionException.class));
        closeShards(shard);
    } finally {
        rejectingThreadPool.shutdownNow();
    }
}
Also used : BrokenBarrierException(java.util.concurrent.BrokenBarrierException) OpenSearchRejectedExecutionException(org.opensearch.common.util.concurrent.OpenSearchRejectedExecutionException) Mapping(org.opensearch.index.mapper.Mapping) TestThreadPool(org.opensearch.threadpool.TestThreadPool) IndexRequest(org.opensearch.action.index.IndexRequest) Translog(org.opensearch.index.translog.Translog) WritePrimaryResult(org.opensearch.action.support.replication.TransportWriteAction.WritePrimaryResult) Engine(org.opensearch.index.engine.Engine) IndexShard(org.opensearch.index.shard.IndexShard) CountDownLatch(java.util.concurrent.CountDownLatch) OpenSearchRejectedExecutionException(org.opensearch.common.util.concurrent.OpenSearchRejectedExecutionException) OpenSearchStatusException(org.opensearch.OpenSearchStatusException) OpenSearchException(org.opensearch.OpenSearchException) VersionConflictEngineException(org.opensearch.index.engine.VersionConflictEngineException) IOException(java.io.IOException) BrokenBarrierException(java.util.concurrent.BrokenBarrierException) CyclicBarrier(java.util.concurrent.CyclicBarrier) MetadataFieldMapper(org.opensearch.index.mapper.MetadataFieldMapper) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) MapperService(org.opensearch.index.mapper.MapperService)

Example 9 with Mapping

use of org.opensearch.index.mapper.Mapping in project OpenSearch by opensearch-project.

the class TransportShardBulkActionTests method testExecuteBulkIndexRequestWithMappingUpdates.

public void testExecuteBulkIndexRequestWithMappingUpdates() throws Exception {
    BulkItemRequest[] items = new BulkItemRequest[1];
    DocWriteRequest<IndexRequest> writeRequest = new IndexRequest("index").id("id").source(Requests.INDEX_CONTENT_TYPE, "foo", "bar");
    items[0] = new BulkItemRequest(0, writeRequest);
    BulkShardRequest bulkShardRequest = new BulkShardRequest(shardId, RefreshPolicy.NONE, items);
    Engine.IndexResult mappingUpdate = new Engine.IndexResult(new Mapping(null, mock(RootObjectMapper.class), new MetadataFieldMapper[0], Collections.emptyMap()));
    Translog.Location resultLocation = new Translog.Location(42, 42, 42);
    Engine.IndexResult success = new FakeIndexResult(1, 1, 13, true, resultLocation);
    IndexShard shard = mock(IndexShard.class);
    when(shard.shardId()).thenReturn(shardId);
    when(shard.applyIndexOperationOnPrimary(anyLong(), any(), any(), anyLong(), anyLong(), anyLong(), anyBoolean())).thenReturn(mappingUpdate);
    when(shard.mapperService()).thenReturn(mock(MapperService.class));
    randomlySetIgnoredPrimaryResponse(items[0]);
    // Pretend the mappings haven't made it to the node yet
    BulkPrimaryExecutionContext context = new BulkPrimaryExecutionContext(bulkShardRequest, shard);
    AtomicInteger updateCalled = new AtomicInteger();
    TransportShardBulkAction.executeBulkItemRequest(context, null, threadPool::absoluteTimeInMillis, (update, shardId, listener) -> {
        // There should indeed be a mapping update
        assertNotNull(update);
        updateCalled.incrementAndGet();
        listener.onResponse(null);
    }, listener -> listener.onResponse(null), ASSERTING_DONE_LISTENER);
    assertTrue(context.isInitial());
    assertTrue(context.hasMoreOperationsToExecute());
    assertThat("mappings were \"updated\" once", updateCalled.get(), equalTo(1));
    // Verify that the shard "executed" the operation once
    verify(shard, times(1)).applyIndexOperationOnPrimary(anyLong(), any(), any(), anyLong(), anyLong(), anyLong(), anyBoolean());
    when(shard.applyIndexOperationOnPrimary(anyLong(), any(), any(), anyLong(), anyLong(), anyLong(), anyBoolean())).thenReturn(success);
    TransportShardBulkAction.executeBulkItemRequest(context, null, threadPool::absoluteTimeInMillis, (update, shardId, listener) -> fail("should not have had to update the mappings"), listener -> {
    }, ASSERTING_DONE_LISTENER);
    // Verify that the shard "executed" the operation only once (1 for previous invocations plus
    // 1 for this execution)
    verify(shard, times(2)).applyIndexOperationOnPrimary(anyLong(), any(), any(), anyLong(), anyLong(), anyLong(), anyBoolean());
    BulkItemResponse primaryResponse = bulkShardRequest.items()[0].getPrimaryResponse();
    assertThat(primaryResponse.getItemId(), equalTo(0));
    assertThat(primaryResponse.getId(), equalTo("id"));
    assertThat(primaryResponse.getOpType(), equalTo(writeRequest.opType()));
    assertFalse(primaryResponse.isFailed());
    closeShards(shard);
}
Also used : IndexShard(org.opensearch.index.shard.IndexShard) Mapping(org.opensearch.index.mapper.Mapping) IndexRequest(org.opensearch.action.index.IndexRequest) Translog(org.opensearch.index.translog.Translog) MetadataFieldMapper(org.opensearch.index.mapper.MetadataFieldMapper) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Engine(org.opensearch.index.engine.Engine) MapperService(org.opensearch.index.mapper.MapperService)

Example 10 with Mapping

use of org.opensearch.index.mapper.Mapping in project OpenSearch by opensearch-project.

the class MappingUpdatedActionTests method testSendUpdateMappingUsingAutoPutMappingAction.

public void testSendUpdateMappingUsingAutoPutMappingAction() {
    DiscoveryNodes nodes = DiscoveryNodes.builder().add(new DiscoveryNode("first", buildNewFakeTransportAddress(), LegacyESVersion.V_7_9_0)).build();
    ClusterState clusterState = ClusterState.builder(new ClusterName("_name")).nodes(nodes).build();
    ClusterService clusterService = mock(ClusterService.class);
    when(clusterService.state()).thenReturn(clusterState);
    IndicesAdminClient indicesAdminClient = mock(IndicesAdminClient.class);
    AdminClient adminClient = mock(AdminClient.class);
    when(adminClient.indices()).thenReturn(indicesAdminClient);
    Client client = mock(Client.class);
    when(client.admin()).thenReturn(adminClient);
    MappingUpdatedAction mua = new MappingUpdatedAction(Settings.EMPTY, new ClusterSettings(Settings.EMPTY, ClusterSettings.BUILT_IN_CLUSTER_SETTINGS), clusterService);
    mua.setClient(client);
    Settings indexSettings = Settings.builder().put(SETTING_VERSION_CREATED, Version.CURRENT).build();
    final Mapper.BuilderContext context = new Mapper.BuilderContext(indexSettings, new ContentPath());
    RootObjectMapper rootObjectMapper = new RootObjectMapper.Builder("name").build(context);
    Mapping update = new Mapping(LegacyESVersion.V_7_9_0, rootObjectMapper, new MetadataFieldMapper[0], Map.of());
    mua.sendUpdateMapping(new Index("name", "uuid"), update, ActionListener.wrap(() -> {
    }));
    verify(indicesAdminClient).execute(eq(AutoPutMappingAction.INSTANCE), any(), any());
}
Also used : ClusterState(org.opensearch.cluster.ClusterState) DiscoveryNode(org.opensearch.cluster.node.DiscoveryNode) ClusterSettings(org.opensearch.common.settings.ClusterSettings) RootObjectMapper(org.opensearch.index.mapper.RootObjectMapper) IndicesAdminClient(org.opensearch.client.IndicesAdminClient) Mapping(org.opensearch.index.mapper.Mapping) Index(org.opensearch.index.Index) ContentPath(org.opensearch.index.mapper.ContentPath) Mapper(org.opensearch.index.mapper.Mapper) RootObjectMapper(org.opensearch.index.mapper.RootObjectMapper) MetadataFieldMapper(org.opensearch.index.mapper.MetadataFieldMapper) ClusterService(org.opensearch.cluster.service.ClusterService) ClusterName(org.opensearch.cluster.ClusterName) Client(org.opensearch.client.Client) AdminClient(org.opensearch.client.AdminClient) IndicesAdminClient(org.opensearch.client.IndicesAdminClient) DiscoveryNodes(org.opensearch.cluster.node.DiscoveryNodes) ClusterSettings(org.opensearch.common.settings.ClusterSettings) Settings(org.opensearch.common.settings.Settings) AdminClient(org.opensearch.client.AdminClient) IndicesAdminClient(org.opensearch.client.IndicesAdminClient)

Aggregations

Mapping (org.opensearch.index.mapper.Mapping)12 Engine (org.opensearch.index.engine.Engine)6 MetadataFieldMapper (org.opensearch.index.mapper.MetadataFieldMapper)6 OpenSearchException (org.opensearch.OpenSearchException)5 IOException (java.io.IOException)4 IndexRequest (org.opensearch.action.index.IndexRequest)4 ClusterSettings (org.opensearch.common.settings.ClusterSettings)4 Settings (org.opensearch.common.settings.Settings)4 Index (org.opensearch.index.Index)4 MapperService (org.opensearch.index.mapper.MapperService)4 RootObjectMapper (org.opensearch.index.mapper.RootObjectMapper)4 IndexShard (org.opensearch.index.shard.IndexShard)4 Translog (org.opensearch.index.translog.Translog)4 BrokenBarrierException (java.util.concurrent.BrokenBarrierException)3 CountDownLatch (java.util.concurrent.CountDownLatch)3 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)3 OpenSearchStatusException (org.opensearch.OpenSearchStatusException)3 ActionListener (org.opensearch.action.ActionListener)3 Client (org.opensearch.client.Client)3 IndicesAdminClient (org.opensearch.client.IndicesAdminClient)3