Search in sources :

Example 1 with Plugin

use of org.opensearch.plugins.Plugin in project OpenSearch by opensearch-project.

the class AzureStorageCleanupThirdPartyTests method ensureSasTokenPermissions.

private void ensureSasTokenPermissions() {
    final BlobStoreRepository repository = getRepository();
    final PlainActionFuture<Void> future = PlainActionFuture.newFuture();
    repository.threadPool().generic().execute(ActionRunnable.wrap(future, l -> {
        final AzureBlobStore blobStore = (AzureBlobStore) repository.blobStore();
        final String account = "default";
        final Tuple<BlobServiceClient, Supplier<Context>> client = blobStore.getService().client(account);
        final BlobContainerClient blobContainer = client.v1().getBlobContainerClient(blobStore.toString());
        try {
            SocketAccess.doPrivilegedException(() -> blobContainer.existsWithResponse(null, client.v2().get()));
            future.onFailure(new RuntimeException("The SAS token used in this test allowed for checking container existence. This test only supports tokens " + "that grant only the documented permission requirements for the Azure repository plugin."));
        } catch (BlobStorageException e) {
            if (e.getStatusCode() == HttpURLConnection.HTTP_FORBIDDEN) {
                future.onResponse(null);
            } else {
                future.onFailure(e);
            }
        }
    }));
    future.actionGet();
}
Also used : HttpURLConnection(java.net.HttpURLConnection) Matchers.blankOrNullString(org.hamcrest.Matchers.blankOrNullString) AfterClass(org.junit.AfterClass) BlobStoreRepository(org.opensearch.repositories.blobstore.BlobStoreRepository) Context(com.azure.core.util.Context) BlobContainerClient(com.azure.storage.blob.BlobContainerClient) BlobStorageException(com.azure.storage.blob.models.BlobStorageException) MockSecureSettings(org.opensearch.common.settings.MockSecureSettings) ActionRunnable(org.opensearch.action.ActionRunnable) Collection(java.util.Collection) AbstractThirdPartyRepositoryTestCase(org.opensearch.repositories.AbstractThirdPartyRepositoryTestCase) Matchers.not(org.hamcrest.Matchers.not) Settings(org.opensearch.common.settings.Settings) Supplier(java.util.function.Supplier) Plugin(org.opensearch.plugins.Plugin) Strings(org.opensearch.common.Strings) Tuple(org.opensearch.common.collect.Tuple) AcknowledgedResponse(org.opensearch.action.support.master.AcknowledgedResponse) SecureSettings(org.opensearch.common.settings.SecureSettings) BlobServiceClient(com.azure.storage.blob.BlobServiceClient) PlainActionFuture(org.opensearch.action.support.PlainActionFuture) Matchers.equalTo(org.hamcrest.Matchers.equalTo) Schedulers(reactor.core.scheduler.Schedulers) Context(com.azure.core.util.Context) BlobContainerClient(com.azure.storage.blob.BlobContainerClient) BlobStoreRepository(org.opensearch.repositories.blobstore.BlobStoreRepository) Matchers.blankOrNullString(org.hamcrest.Matchers.blankOrNullString) BlobStorageException(com.azure.storage.blob.models.BlobStorageException) Tuple(org.opensearch.common.collect.Tuple)

Example 2 with Plugin

use of org.opensearch.plugins.Plugin in project OpenSearch by opensearch-project.

the class SearchServiceTests method testSetSearchThrottled.

public void testSetSearchThrottled() {
    createIndex("throttled_threadpool_index");
    client().execute(InternalOrPrivateSettingsPlugin.UpdateInternalOrPrivateAction.INSTANCE, new InternalOrPrivateSettingsPlugin.UpdateInternalOrPrivateAction.Request("throttled_threadpool_index", IndexSettings.INDEX_SEARCH_THROTTLED.getKey(), "true")).actionGet();
    final SearchService service = getInstanceFromNode(SearchService.class);
    Index index = resolveIndex("throttled_threadpool_index");
    assertTrue(service.getIndicesService().indexServiceSafe(index).getIndexSettings().isSearchThrottled());
    client().prepareIndex("throttled_threadpool_index").setId("1").setSource("field", "value").setRefreshPolicy(IMMEDIATE).get();
    SearchResponse searchResponse = client().prepareSearch("throttled_threadpool_index").setIndicesOptions(IndicesOptions.STRICT_EXPAND_OPEN_FORBID_CLOSED).setSize(1).get();
    assertSearchHits(searchResponse, "1");
    // we add a search action listener in a plugin above to assert that this is actually used
    client().execute(InternalOrPrivateSettingsPlugin.UpdateInternalOrPrivateAction.INSTANCE, new InternalOrPrivateSettingsPlugin.UpdateInternalOrPrivateAction.Request("throttled_threadpool_index", IndexSettings.INDEX_SEARCH_THROTTLED.getKey(), "false")).actionGet();
    IllegalArgumentException iae = expectThrows(IllegalArgumentException.class, () -> client().admin().indices().prepareUpdateSettings("throttled_threadpool_index").setSettings(Settings.builder().put(IndexSettings.INDEX_SEARCH_THROTTLED.getKey(), false)).get());
    assertEquals("can not update private setting [index.search.throttled]; this setting is managed by OpenSearch", iae.getMessage());
    assertFalse(service.getIndicesService().indexServiceSafe(index).getIndexSettings().isSearchThrottled());
    SearchRequest searchRequest = new SearchRequest().allowPartialSearchResults(false);
    ShardSearchRequest req = new ShardSearchRequest(OriginalIndices.NONE, searchRequest, new ShardId(index, 0), 1, new AliasFilter(null, Strings.EMPTY_ARRAY), 1f, -1, null, null);
    Thread currentThread = Thread.currentThread();
    // we still make sure can match is executed on the network thread
    service.canMatch(req, ActionListener.wrap(r -> assertSame(Thread.currentThread(), currentThread), e -> fail("unexpected")));
}
Also used : ShardId(org.opensearch.index.shard.ShardId) Query(org.apache.lucene.search.Query) OpenSearchRejectedExecutionException(org.opensearch.common.util.concurrent.OpenSearchRejectedExecutionException) CoreMatchers.is(org.hamcrest.CoreMatchers.is) OpenSearchSingleNodeTestCase(org.opensearch.test.OpenSearchSingleNodeTestCase) ShardSearchContextId(org.opensearch.search.internal.ShardSearchContextId) IndexResponse(org.opensearch.action.index.IndexResponse) SearchStats(org.opensearch.index.search.stats.SearchStats) SearchContext(org.opensearch.search.internal.SearchContext) AlreadyClosedException(org.apache.lucene.store.AlreadyClosedException) CoreMatchers.startsWith(org.hamcrest.CoreMatchers.startsWith) Strings(org.opensearch.common.Strings) Collections.singletonList(java.util.Collections.singletonList) CoreMatchers.notNullValue(org.hamcrest.CoreMatchers.notNullValue) ScriptType(org.opensearch.script.ScriptType) CoreMatchers.instanceOf(org.hamcrest.CoreMatchers.instanceOf) WriteRequest(org.opensearch.action.support.WriteRequest) OpenSearchAssertions.assertHitCount(org.opensearch.test.hamcrest.OpenSearchAssertions.assertHitCount) PlainActionFuture(org.opensearch.action.support.PlainActionFuture) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) IntArrayList(com.carrotsearch.hppc.IntArrayList) Locale(java.util.Locale) AliasFilter(org.opensearch.search.internal.AliasFilter) Map(java.util.Map) OpenSearchAssertions.assertSearchHits(org.opensearch.test.hamcrest.OpenSearchAssertions.assertSearchHits) ActionListener(org.opensearch.action.ActionListener) MockScriptEngine(org.opensearch.script.MockScriptEngine) IndexModule(org.opensearch.index.IndexModule) ValueType(org.opensearch.search.aggregations.support.ValueType) TimeValue(org.opensearch.common.unit.TimeValue) DELETED(org.opensearch.indices.cluster.IndicesClusterStateService.AllocatedIndices.IndexRemovalReason.DELETED) Index(org.opensearch.index.Index) DirectoryReader(org.apache.lucene.index.DirectoryReader) Script(org.opensearch.script.Script) Collection(java.util.Collection) IndicesService(org.opensearch.indices.IndicesService) GlobalAggregationBuilder(org.opensearch.search.aggregations.bucket.global.GlobalAggregationBuilder) Settings(org.opensearch.common.settings.Settings) RestStatus(org.opensearch.rest.RestStatus) MatchNoneQueryBuilder(org.opensearch.index.query.MatchNoneQueryBuilder) OriginalIndices(org.opensearch.action.OriginalIndices) Engine(org.opensearch.index.engine.Engine) CountDownLatch(java.util.concurrent.CountDownLatch) List(java.util.List) SuggestBuilder(org.opensearch.search.suggest.SuggestBuilder) QueryBuilder(org.opensearch.index.query.QueryBuilder) IMMEDIATE(org.opensearch.action.support.WriteRequest.RefreshPolicy.IMMEDIATE) SearchSourceBuilder(org.opensearch.search.builder.SearchSourceBuilder) LeafReader(org.apache.lucene.index.LeafReader) IndexSettings(org.opensearch.index.IndexSettings) QueryShardContext(org.opensearch.index.query.QueryShardContext) MockScriptPlugin(org.opensearch.script.MockScriptPlugin) AbstractQueryBuilder(org.opensearch.index.query.AbstractQueryBuilder) InternalAggregation(org.opensearch.search.aggregations.InternalAggregation) MultiBucketConsumerService(org.opensearch.search.aggregations.MultiBucketConsumerService) ShardFetchRequest(org.opensearch.search.fetch.ShardFetchRequest) ShardSearchRequest(org.opensearch.search.internal.ShardSearchRequest) CoreMatchers.equalTo(org.hamcrest.CoreMatchers.equalTo) ThreadPool(org.opensearch.threadpool.ThreadPool) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) StreamOutput(org.opensearch.common.io.stream.StreamOutput) InternalOrPrivateSettingsPlugin(org.opensearch.indices.settings.InternalOrPrivateSettingsPlugin) IndicesOptions(org.opensearch.action.support.IndicesOptions) QuerySearchResult(org.opensearch.search.query.QuerySearchResult) Function(java.util.function.Function) ArrayList(java.util.ArrayList) SearchShardTask(org.opensearch.action.search.SearchShardTask) IndexShard(org.opensearch.index.shard.IndexShard) FilterDirectoryReader(org.apache.lucene.index.FilterDirectoryReader) ReaderContext(org.opensearch.search.internal.ReaderContext) SearchRequest(org.opensearch.action.search.SearchRequest) SearchResponse(org.opensearch.action.search.SearchResponse) UUIDs(org.opensearch.common.UUIDs) LinkedList(java.util.LinkedList) Before(org.junit.Before) StreamInput(org.opensearch.common.io.stream.StreamInput) OpenSearchAssertions.assertAcked(org.opensearch.test.hamcrest.OpenSearchAssertions.assertAcked) Semaphore(java.util.concurrent.Semaphore) IndexNotFoundException(org.opensearch.index.IndexNotFoundException) SearchPlugin(org.opensearch.plugins.SearchPlugin) SearchType(org.opensearch.action.search.SearchType) TermQueryBuilder(org.opensearch.index.query.TermQueryBuilder) IOException(java.io.IOException) IndexService(org.opensearch.index.IndexService) SearchOperationListener(org.opensearch.index.shard.SearchOperationListener) Plugin(org.opensearch.plugins.Plugin) XContentBuilder(org.opensearch.common.xcontent.XContentBuilder) ShardId(org.opensearch.index.shard.ShardId) ExecutionException(java.util.concurrent.ExecutionException) AggregationBuilders(org.opensearch.search.aggregations.AggregationBuilders) QueryRewriteContext(org.opensearch.index.query.QueryRewriteContext) TermsAggregationBuilder(org.opensearch.search.aggregations.bucket.terms.TermsAggregationBuilder) ClearScrollRequest(org.opensearch.action.search.ClearScrollRequest) SearchPhaseExecutionException(org.opensearch.action.search.SearchPhaseExecutionException) MatchAllQueryBuilder(org.opensearch.index.query.MatchAllQueryBuilder) FetchSearchResult(org.opensearch.search.fetch.FetchSearchResult) Collections(java.util.Collections) ShardSearchRequest(org.opensearch.search.internal.ShardSearchRequest) SearchRequest(org.opensearch.action.search.SearchRequest) AliasFilter(org.opensearch.search.internal.AliasFilter) WriteRequest(org.opensearch.action.support.WriteRequest) ShardFetchRequest(org.opensearch.search.fetch.ShardFetchRequest) ShardSearchRequest(org.opensearch.search.internal.ShardSearchRequest) SearchRequest(org.opensearch.action.search.SearchRequest) ClearScrollRequest(org.opensearch.action.search.ClearScrollRequest) ShardSearchRequest(org.opensearch.search.internal.ShardSearchRequest) Index(org.opensearch.index.Index) InternalOrPrivateSettingsPlugin(org.opensearch.indices.settings.InternalOrPrivateSettingsPlugin) SearchResponse(org.opensearch.action.search.SearchResponse)

Example 3 with Plugin

use of org.opensearch.plugins.Plugin in project OpenSearch by opensearch-project.

the class InternalTestClusterTests method testTwoNodeCluster.

public void testTwoNodeCluster() throws Exception {
    NodeConfigurationSource nodeConfigurationSource = new NodeConfigurationSource() {

        @Override
        public Settings nodeSettings(int nodeOrdinal) {
            return Settings.builder().put(NetworkModule.TRANSPORT_TYPE_KEY, getTestTransportType()).putList(DISCOVERY_SEED_PROVIDERS_SETTING.getKey(), "file").putList(SettingsBasedSeedHostsProvider.DISCOVERY_SEED_HOSTS_SETTING.getKey()).build();
        }

        @Override
        public Path nodeConfigPath(int nodeOrdinal) {
            return null;
        }
    };
    String nodePrefix = "test";
    Path baseDir = createTempDir();
    List<Class<? extends Plugin>> plugins = new ArrayList<>(mockPlugins());
    plugins.add(NodeAttrCheckPlugin.class);
    InternalTestCluster cluster = new InternalTestCluster(randomLong(), baseDir, false, true, 2, 2, "test", nodeConfigurationSource, 0, nodePrefix, plugins, Function.identity());
    try {
        cluster.beforeTest(random());
        switch(randomInt(2)) {
            case 0:
                cluster.stopRandomDataNode();
                cluster.startNode();
                break;
            case 1:
                cluster.rollingRestart(InternalTestCluster.EMPTY_CALLBACK);
                break;
            case 2:
                cluster.fullRestart();
                break;
        }
    } finally {
        cluster.close();
    }
}
Also used : Path(java.nio.file.Path) ArrayList(java.util.ArrayList) InternalTestCluster(org.opensearch.test.InternalTestCluster) NodeConfigurationSource(org.opensearch.test.NodeConfigurationSource) Plugin(org.opensearch.plugins.Plugin)

Example 4 with Plugin

use of org.opensearch.plugins.Plugin in project OpenSearch by opensearch-project.

the class MockNodeTests method testComponentsMockedByMarkerPlugins.

/**
 * Test that we add the appropriate mock services when their plugins are added. This is a very heavy test for a testing component but
 * we've broken it in the past so it is important.
 */
public void testComponentsMockedByMarkerPlugins() throws IOException {
    Settings settings = // All these are required or MockNode will fail to build.
    Settings.builder().put(Environment.PATH_HOME_SETTING.getKey(), createTempDir()).put("transport.type", getTestTransportType()).build();
    List<Class<? extends Plugin>> plugins = new ArrayList<>();
    plugins.add(getTestTransportPlugin());
    plugins.add(MockHttpTransport.TestPlugin.class);
    boolean useMockBigArrays = randomBoolean();
    boolean useMockSearchService = randomBoolean();
    if (useMockBigArrays) {
        plugins.add(NodeMocksPlugin.class);
    }
    if (useMockSearchService) {
        plugins.add(MockSearchService.TestPlugin.class);
    }
    try (MockNode node = new MockNode(settings, plugins)) {
        BigArrays bigArrays = node.injector().getInstance(BigArrays.class);
        SearchService searchService = node.injector().getInstance(SearchService.class);
        if (useMockBigArrays) {
            assertSame(bigArrays.getClass(), MockBigArrays.class);
        } else {
            assertSame(bigArrays.getClass(), BigArrays.class);
        }
        if (useMockSearchService) {
            assertSame(searchService.getClass(), MockSearchService.class);
        } else {
            assertSame(searchService.getClass(), SearchService.class);
        }
    }
}
Also used : MockBigArrays(org.opensearch.common.util.MockBigArrays) BigArrays(org.opensearch.common.util.BigArrays) MockHttpTransport(org.opensearch.test.MockHttpTransport) MockSearchService(org.opensearch.search.MockSearchService) SearchService(org.opensearch.search.SearchService) ArrayList(java.util.ArrayList) MockSearchService(org.opensearch.search.MockSearchService) Settings(org.opensearch.common.settings.Settings) Plugin(org.opensearch.plugins.Plugin)

Example 5 with Plugin

use of org.opensearch.plugins.Plugin in project OpenSearch by opensearch-project.

the class Node method close.

// During concurrent close() calls we want to make sure that all of them return after the node has completed it's shutdown cycle.
// If not, the hook that is added in Bootstrap#setup() will be useless:
// close() might not be executed, in case another (for example api) call to close() has already set some lifecycles to stopped.
// In this case the process will be terminated even if the first call to close() has not finished yet.
@Override
public synchronized void close() throws IOException {
    synchronized (lifecycle) {
        if (lifecycle.started()) {
            stop();
        }
        if (!lifecycle.moveToClosed()) {
            return;
        }
    }
    logger.info("closing ...");
    List<Closeable> toClose = new ArrayList<>();
    StopWatch stopWatch = new StopWatch("node_close");
    toClose.add(() -> stopWatch.start("node_service"));
    toClose.add(nodeService);
    toClose.add(() -> stopWatch.stop().start("http"));
    toClose.add(injector.getInstance(HttpServerTransport.class));
    toClose.add(() -> stopWatch.stop().start("snapshot_service"));
    toClose.add(injector.getInstance(SnapshotsService.class));
    toClose.add(injector.getInstance(SnapshotShardsService.class));
    toClose.add(injector.getInstance(RepositoriesService.class));
    toClose.add(() -> stopWatch.stop().start("client"));
    Releasables.close(injector.getInstance(Client.class));
    toClose.add(() -> stopWatch.stop().start("indices_cluster"));
    toClose.add(injector.getInstance(IndicesClusterStateService.class));
    toClose.add(() -> stopWatch.stop().start("indices"));
    toClose.add(injector.getInstance(IndicesService.class));
    // close filter/fielddata caches after indices
    toClose.add(injector.getInstance(IndicesStore.class));
    toClose.add(injector.getInstance(PeerRecoverySourceService.class));
    toClose.add(() -> stopWatch.stop().start("cluster"));
    toClose.add(injector.getInstance(ClusterService.class));
    toClose.add(() -> stopWatch.stop().start("node_connections_service"));
    toClose.add(injector.getInstance(NodeConnectionsService.class));
    toClose.add(() -> stopWatch.stop().start("discovery"));
    toClose.add(injector.getInstance(Discovery.class));
    toClose.add(() -> stopWatch.stop().start("monitor"));
    toClose.add(nodeService.getMonitorService());
    toClose.add(() -> stopWatch.stop().start("fsHealth"));
    toClose.add(injector.getInstance(FsHealthService.class));
    toClose.add(() -> stopWatch.stop().start("gateway"));
    toClose.add(injector.getInstance(GatewayService.class));
    toClose.add(() -> stopWatch.stop().start("search"));
    toClose.add(injector.getInstance(SearchService.class));
    toClose.add(() -> stopWatch.stop().start("transport"));
    toClose.add(injector.getInstance(TransportService.class));
    for (LifecycleComponent plugin : pluginLifecycleComponents) {
        toClose.add(() -> stopWatch.stop().start("plugin(" + plugin.getClass().getName() + ")"));
        toClose.add(plugin);
    }
    toClose.addAll(pluginsService.filterPlugins(Plugin.class));
    toClose.add(() -> stopWatch.stop().start("script"));
    toClose.add(injector.getInstance(ScriptService.class));
    toClose.add(() -> stopWatch.stop().start("thread_pool"));
    toClose.add(() -> injector.getInstance(ThreadPool.class).shutdown());
    // Don't call shutdownNow here, it might break ongoing operations on Lucene indices.
    // See https://issues.apache.org/jira/browse/LUCENE-7248. We call shutdownNow in
    // awaitClose if the node doesn't finish closing within the specified time.
    toClose.add(() -> stopWatch.stop().start("gateway_meta_state"));
    toClose.add(injector.getInstance(GatewayMetaState.class));
    toClose.add(() -> stopWatch.stop().start("node_environment"));
    toClose.add(injector.getInstance(NodeEnvironment.class));
    toClose.add(stopWatch::stop);
    if (logger.isTraceEnabled()) {
        toClose.add(() -> logger.trace("Close times for each service:\n{}", stopWatch.prettyPrint()));
    }
    IOUtils.close(toClose);
    logger.info("closed");
}
Also used : SnapshotsService(org.opensearch.snapshots.SnapshotsService) SnapshotShardsService(org.opensearch.snapshots.SnapshotShardsService) NodeConnectionsService(org.opensearch.cluster.NodeConnectionsService) NodeEnvironment(org.opensearch.env.NodeEnvironment) Closeable(java.io.Closeable) IndicesStore(org.opensearch.indices.store.IndicesStore) ArrayList(java.util.ArrayList) HttpServerTransport(org.opensearch.http.HttpServerTransport) GatewayMetaState(org.opensearch.gateway.GatewayMetaState) ScriptService(org.opensearch.script.ScriptService) IndicesClusterStateService(org.opensearch.indices.cluster.IndicesClusterStateService) LifecycleComponent(org.opensearch.common.component.LifecycleComponent) SearchService(org.opensearch.search.SearchService) PeerRecoverySourceService(org.opensearch.indices.recovery.PeerRecoverySourceService) Client(org.opensearch.client.Client) NodeClient(org.opensearch.client.node.NodeClient) FsHealthService(org.opensearch.monitor.fs.FsHealthService) Discovery(org.opensearch.discovery.Discovery) IndicesService(org.opensearch.indices.IndicesService) StopWatch(org.opensearch.common.StopWatch) GatewayService(org.opensearch.gateway.GatewayService) ClusterService(org.opensearch.cluster.service.ClusterService) PersistentTasksClusterService(org.opensearch.persistent.PersistentTasksClusterService) RemoteClusterService(org.opensearch.transport.RemoteClusterService) TransportService(org.opensearch.transport.TransportService) SearchTransportService(org.opensearch.action.search.SearchTransportService) RepositoriesService(org.opensearch.repositories.RepositoriesService) ActionPlugin(org.opensearch.plugins.ActionPlugin) SystemIndexPlugin(org.opensearch.plugins.SystemIndexPlugin) CircuitBreakerPlugin(org.opensearch.plugins.CircuitBreakerPlugin) EnginePlugin(org.opensearch.plugins.EnginePlugin) DiscoveryPlugin(org.opensearch.plugins.DiscoveryPlugin) RepositoryPlugin(org.opensearch.plugins.RepositoryPlugin) NetworkPlugin(org.opensearch.plugins.NetworkPlugin) SearchPlugin(org.opensearch.plugins.SearchPlugin) Plugin(org.opensearch.plugins.Plugin) IngestPlugin(org.opensearch.plugins.IngestPlugin) IndexStorePlugin(org.opensearch.plugins.IndexStorePlugin) ScriptPlugin(org.opensearch.plugins.ScriptPlugin) ClusterPlugin(org.opensearch.plugins.ClusterPlugin) MapperPlugin(org.opensearch.plugins.MapperPlugin) PersistentTaskPlugin(org.opensearch.plugins.PersistentTaskPlugin) AnalysisPlugin(org.opensearch.plugins.AnalysisPlugin)

Aggregations

Plugin (org.opensearch.plugins.Plugin)10 Settings (org.opensearch.common.settings.Settings)7 ArrayList (java.util.ArrayList)6 CircuitBreakerPlugin (org.opensearch.plugins.CircuitBreakerPlugin)3 NodeRoles.dataNode (org.opensearch.test.NodeRoles.dataNode)3 IOException (java.io.IOException)2 Path (java.nio.file.Path)2 Collection (java.util.Collection)2 List (java.util.List)2 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)2 AfterClass (org.junit.AfterClass)2 PlainActionFuture (org.opensearch.action.support.PlainActionFuture)2 Strings (org.opensearch.common.Strings)2 BreakerSettings (org.opensearch.indices.breaker.BreakerSettings)2 MockNode (org.opensearch.node.MockNode)2 MockTransportService (org.opensearch.test.transport.MockTransportService)2 TransportService (org.opensearch.transport.TransportService)2 Context (com.azure.core.util.Context)1 BlobContainerClient (com.azure.storage.blob.BlobContainerClient)1 BlobServiceClient (com.azure.storage.blob.BlobServiceClient)1