diff --git a/server/src/main/java/org/opensearch/extensions/ExtensionsManager.java b/server/src/main/java/org/opensearch/extensions/ExtensionsManager.java index 337dbdd06e1af..2878aa047c667 100644 --- a/server/src/main/java/org/opensearch/extensions/ExtensionsManager.java +++ b/server/src/main/java/org/opensearch/extensions/ExtensionsManager.java @@ -11,7 +11,6 @@ import java.io.IOException; import java.io.InputStream; import java.net.InetAddress; -import java.net.UnknownHostException; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; @@ -37,7 +36,6 @@ import org.opensearch.action.admin.cluster.state.ClusterStateResponse; import org.opensearch.client.node.NodeClient; import org.opensearch.cluster.ClusterSettingsResponse; -import org.opensearch.cluster.node.DiscoveryNode; import org.opensearch.cluster.service.ClusterService; import org.opensearch.core.util.FileSystemUtils; import org.opensearch.common.io.stream.StreamInput; @@ -58,12 +56,6 @@ import org.opensearch.extensions.rest.RestActionsRequestHandler; import org.opensearch.extensions.settings.CustomSettingsRequestHandler; import org.opensearch.extensions.settings.RegisterCustomSettingsRequest; -import org.opensearch.index.IndexModule; -import org.opensearch.index.IndexService; -import org.opensearch.index.IndicesModuleRequest; -import org.opensearch.index.IndicesModuleResponse; -import org.opensearch.index.shard.IndexEventListener; -import org.opensearch.indices.cluster.IndicesClusterStateService; import org.opensearch.threadpool.ThreadPool; import org.opensearch.transport.ConnectTransportException; import org.opensearch.transport.TransportException; @@ -80,8 +72,6 @@ */ public class ExtensionsManager { public static final String REQUEST_EXTENSION_ACTION_NAME = "internal:discovery/extensions"; - public static final String INDICES_EXTENSION_POINT_ACTION_NAME = "indices:internal/extensions"; - public static final String INDICES_EXTENSION_NAME_ACTION_NAME = "indices:internal/name"; public static final String REQUEST_EXTENSION_CLUSTER_STATE = "internal:discovery/clusterstate"; public static final String REQUEST_EXTENSION_CLUSTER_SETTINGS = "internal:discovery/clustersettings"; public static final String REQUEST_EXTENSION_ENVIRONMENT_SETTINGS = "internal:discovery/enviornmentsettings"; @@ -466,125 +456,6 @@ TransportResponse handleExtensionRequest(ExtensionRequest extensionRequest) thro } } - public void onIndexModule(IndexModule indexModule) throws UnknownHostException { - for (DiscoveryNode extensionNode : extensionIdMap.values()) { - onIndexModule(indexModule, extensionNode); - } - } - - private void onIndexModule(IndexModule indexModule, DiscoveryNode extensionNode) throws UnknownHostException { - logger.info("onIndexModule index:" + indexModule.getIndex()); - final CompletableFuture inProgressFuture = new CompletableFuture<>(); - final CompletableFuture inProgressIndexNameFuture = new CompletableFuture<>(); - final TransportResponseHandler acknowledgedResponseHandler = new TransportResponseHandler< - AcknowledgedResponse>() { - @Override - public void handleResponse(AcknowledgedResponse response) { - logger.info("ACK Response" + response); - inProgressIndexNameFuture.complete(response); - } - - @Override - public void handleException(TransportException exp) { - inProgressIndexNameFuture.completeExceptionally(exp); - } - - @Override - public String executor() { - return ThreadPool.Names.GENERIC; - } - - @Override - public AcknowledgedResponse read(StreamInput in) throws IOException { - return new AcknowledgedResponse(in); - } - - }; - - final TransportResponseHandler indicesModuleResponseHandler = new TransportResponseHandler< - IndicesModuleResponse>() { - - @Override - public IndicesModuleResponse read(StreamInput in) throws IOException { - return new IndicesModuleResponse(in); - } - - @Override - public void handleResponse(IndicesModuleResponse response) { - logger.info("received {}", response); - if (response.getIndexEventListener() == true) { - indexModule.addIndexEventListener(new IndexEventListener() { - @Override - public void beforeIndexRemoved( - IndexService indexService, - IndicesClusterStateService.AllocatedIndices.IndexRemovalReason reason - ) { - logger.info("Index Event Listener is called"); - String indexName = indexService.index().getName(); - logger.info("Index Name" + indexName.toString()); - try { - logger.info("Sending extension request type: " + INDICES_EXTENSION_NAME_ACTION_NAME); - transportService.sendRequest( - extensionNode, - INDICES_EXTENSION_NAME_ACTION_NAME, - new IndicesModuleRequest(indexModule), - acknowledgedResponseHandler - ); - inProgressIndexNameFuture.orTimeout(EXTENSION_REQUEST_WAIT_TIMEOUT, TimeUnit.SECONDS).join(); - } catch (CompletionException e) { - if (e.getCause() instanceof TimeoutException) { - logger.info("No response from extension to request."); - } - if (e.getCause() instanceof RuntimeException) { - throw (RuntimeException) e.getCause(); - } else if (e.getCause() instanceof Error) { - throw (Error) e.getCause(); - } else { - throw new RuntimeException(e.getCause()); - } - } - } - }); - } - inProgressFuture.complete(response); - } - - @Override - public void handleException(TransportException exp) { - logger.error(new ParameterizedMessage("IndicesModuleRequest failed"), exp); - inProgressFuture.completeExceptionally(exp); - } - - @Override - public String executor() { - return ThreadPool.Names.GENERIC; - } - }; - - try { - logger.info("Sending extension request type: " + INDICES_EXTENSION_POINT_ACTION_NAME); - transportService.sendRequest( - extensionNode, - INDICES_EXTENSION_POINT_ACTION_NAME, - new IndicesModuleRequest(indexModule), - indicesModuleResponseHandler - ); - inProgressFuture.orTimeout(EXTENSION_REQUEST_WAIT_TIMEOUT, TimeUnit.SECONDS).join(); - logger.info("Received response from Extension"); - } catch (CompletionException e) { - if (e.getCause() instanceof TimeoutException) { - logger.info("No response from extension to request."); - } - if (e.getCause() instanceof RuntimeException) { - throw (RuntimeException) e.getCause(); - } else if (e.getCause() instanceof Error) { - throw (Error) e.getCause(); - } else { - throw new RuntimeException(e.getCause()); - } - } - } - private ExtensionsSettings readFromExtensionsYml(Path filePath) throws IOException { Yaml yaml = new Yaml(); try (InputStream inputStream = Files.newInputStream(filePath)) { @@ -655,14 +526,6 @@ static String getRequestExtensionActionName() { return REQUEST_EXTENSION_ACTION_NAME; } - static String getIndicesExtensionPointActionName() { - return INDICES_EXTENSION_POINT_ACTION_NAME; - } - - static String getIndicesExtensionNameActionName() { - return INDICES_EXTENSION_NAME_ACTION_NAME; - } - static String getRequestExtensionClusterState() { return REQUEST_EXTENSION_CLUSTER_STATE; } diff --git a/server/src/main/java/org/opensearch/extensions/NoopExtensionsManager.java b/server/src/main/java/org/opensearch/extensions/NoopExtensionsManager.java index 6165423b767ce..eb9b389b7a4b1 100644 --- a/server/src/main/java/org/opensearch/extensions/NoopExtensionsManager.java +++ b/server/src/main/java/org/opensearch/extensions/NoopExtensionsManager.java @@ -9,7 +9,6 @@ package org.opensearch.extensions; import java.io.IOException; -import java.net.UnknownHostException; import java.nio.file.Path; import java.util.Optional; @@ -22,7 +21,6 @@ import org.opensearch.extensions.action.ExtensionActionRequest; import org.opensearch.extensions.action.ExtensionActionResponse; import org.opensearch.extensions.action.RemoteExtensionActionResponse; -import org.opensearch.index.IndexModule; import org.opensearch.transport.TransportService; /** @@ -70,11 +68,6 @@ public void initialize() { // no-op } - @Override - public void onIndexModule(IndexModule indexModule) throws UnknownHostException { - // no-op - } - @Override public Optional lookupInitializedExtensionById(final String extensionId) { // no-op not found diff --git a/server/src/main/java/org/opensearch/indices/IndicesService.java b/server/src/main/java/org/opensearch/indices/IndicesService.java index cdad2c45638e5..58a26f813d88d 100644 --- a/server/src/main/java/org/opensearch/indices/IndicesService.java +++ b/server/src/main/java/org/opensearch/indices/IndicesService.java @@ -148,7 +148,6 @@ import org.opensearch.indices.replication.common.ReplicationType; import org.opensearch.node.Node; import org.opensearch.plugins.IndexStorePlugin; -import org.opensearch.extensions.ExtensionsManager; import org.opensearch.plugins.PluginsService; import org.opensearch.repositories.RepositoriesService; import org.opensearch.script.ScriptService; @@ -289,7 +288,6 @@ public class IndicesService extends AbstractLifecycleComponent */ private final Settings settings; private final PluginsService pluginsService; - private final ExtensionsManager extensionsManager; private final NodeEnvironment nodeEnv; private final NamedXContentRegistry xContentRegistry; private final TimeValue shardsClosedTimeout; @@ -342,7 +340,6 @@ protected void doStart() { public IndicesService( Settings settings, PluginsService pluginsService, - ExtensionsManager extensionsManager, NodeEnvironment nodeEnv, NamedXContentRegistry xContentRegistry, AnalysisRegistry analysisRegistry, @@ -368,7 +365,6 @@ public IndicesService( this.settings = settings; this.threadPool = threadPool; this.pluginsService = pluginsService; - this.extensionsManager = extensionsManager; this.nodeEnv = nodeEnv; this.xContentRegistry = xContentRegistry; this.valuesSourceRegistry = valuesSourceRegistry; @@ -810,7 +806,6 @@ private synchronized IndexService createIndexService( indexModule.addIndexOperationListener(operationListener); } pluginsService.onIndexModule(indexModule); - extensionsManager.onIndexModule(indexModule); for (IndexEventListener listener : builtInListeners) { indexModule.addIndexEventListener(listener); } diff --git a/server/src/main/java/org/opensearch/node/Node.java b/server/src/main/java/org/opensearch/node/Node.java index 3827041a60aa3..316622717c9f9 100644 --- a/server/src/main/java/org/opensearch/node/Node.java +++ b/server/src/main/java/org/opensearch/node/Node.java @@ -707,7 +707,6 @@ protected Node( final IndicesService indicesService = new IndicesService( settings, pluginsService, - extensionsManager, nodeEnvironment, xContentRegistry, analysisModule.getAnalysisRegistry(), diff --git a/server/src/test/java/org/opensearch/extensions/ExtensionsManagerTests.java b/server/src/test/java/org/opensearch/extensions/ExtensionsManagerTests.java index 392e7e02ebbcc..42a050270466d 100644 --- a/server/src/test/java/org/opensearch/extensions/ExtensionsManagerTests.java +++ b/server/src/test/java/org/opensearch/extensions/ExtensionsManagerTests.java @@ -48,7 +48,6 @@ import org.opensearch.common.util.FeatureFlags; import org.opensearch.env.EnvironmentSettingsResponse; import org.opensearch.cluster.metadata.IndexMetadata; -import org.opensearch.cluster.metadata.IndexNameExpressionResolver; import org.opensearch.cluster.node.DiscoveryNode; import org.opensearch.cluster.service.ClusterService; import org.opensearch.common.bytes.BytesReference; @@ -65,29 +64,20 @@ import org.opensearch.common.settings.SettingsModule; import org.opensearch.common.transport.TransportAddress; import org.opensearch.common.util.PageCacheRecycler; -import org.opensearch.common.util.concurrent.ThreadContext; import org.opensearch.env.Environment; -import org.opensearch.env.TestEnvironment; import org.opensearch.extensions.proto.ExtensionRequestProto; import org.opensearch.extensions.rest.RegisterRestActionsRequest; import org.opensearch.extensions.settings.RegisterCustomSettingsRequest; import org.opensearch.identity.IdentityService; -import org.opensearch.index.IndexModule; -import org.opensearch.index.IndexSettings; -import org.opensearch.index.analysis.AnalysisRegistry; -import org.opensearch.index.engine.EngineConfigFactory; -import org.opensearch.index.engine.InternalEngineFactory; import org.opensearch.indices.breaker.NoneCircuitBreakerService; import org.opensearch.rest.RestController; import org.opensearch.test.FeatureFlagSetter; -import org.opensearch.test.IndexSettingsModule; import org.opensearch.test.MockLogAppender; import org.opensearch.test.OpenSearchTestCase; import org.opensearch.test.client.NoOpNodeClient; import org.opensearch.test.transport.MockTransportService; import org.opensearch.threadpool.TestThreadPool; import org.opensearch.threadpool.ThreadPool; -import org.opensearch.transport.NodeNotConnectedException; import org.opensearch.transport.Transport; import org.opensearch.transport.TransportResponse; import org.opensearch.transport.TransportService; @@ -838,40 +828,6 @@ public void testRegisterHandler() throws Exception { } - public void testOnIndexModule() throws Exception { - Files.write(extensionDir.resolve("extensions.yml"), extensionsYmlLines, StandardCharsets.UTF_8); - ExtensionsManager extensionsManager = new ExtensionsManager(extensionDir); - initialize(extensionsManager); - - Environment environment = TestEnvironment.newEnvironment(settings); - AnalysisRegistry emptyAnalysisRegistry = new AnalysisRegistry( - environment, - emptyMap(), - emptyMap(), - emptyMap(), - emptyMap(), - emptyMap(), - emptyMap(), - emptyMap(), - emptyMap(), - emptyMap() - ); - - IndexSettings indexSettings = IndexSettingsModule.newIndexSettings("test_index", settings); - IndexModule indexModule = new IndexModule( - indexSettings, - emptyAnalysisRegistry, - new InternalEngineFactory(), - new EngineConfigFactory(indexSettings), - Collections.emptyMap(), - () -> true, - new IndexNameExpressionResolver(new ThreadContext(Settings.EMPTY)), - Collections.emptyMap() - ); - expectThrows(NodeNotConnectedException.class, () -> extensionsManager.onIndexModule(indexModule)); - - } - public void testIncompatibleExtensionRegistration() throws IOException, IllegalAccessException { try (MockLogAppender mockLogAppender = MockLogAppender.createForLoggers(LogManager.getLogger(ExtensionsManager.class))) { diff --git a/server/src/test/java/org/opensearch/snapshots/SnapshotResiliencyTests.java b/server/src/test/java/org/opensearch/snapshots/SnapshotResiliencyTests.java index a51dc1c770f26..efa1db17d0461 100644 --- a/server/src/test/java/org/opensearch/snapshots/SnapshotResiliencyTests.java +++ b/server/src/test/java/org/opensearch/snapshots/SnapshotResiliencyTests.java @@ -195,7 +195,6 @@ import org.opensearch.ingest.IngestService; import org.opensearch.monitor.StatusInfo; import org.opensearch.node.ResponseCollectorService; -import org.opensearch.extensions.ExtensionsManager; import org.opensearch.plugins.PluginsService; import org.opensearch.repositories.RepositoriesService; import org.opensearch.repositories.Repository; @@ -1807,7 +1806,6 @@ public void onFailure(final Exception e) { indicesService = new IndicesService( settings, mock(PluginsService.class), - mock(ExtensionsManager.class), nodeEnv, namedXContentRegistry, new AnalysisRegistry(