From 1a9170a4b9cc66462bf998d06744b75115ee70ef Mon Sep 17 00:00:00 2001 From: Finn Carroll Date: Mon, 16 Dec 2024 11:23:01 -0800 Subject: [PATCH] Rename gRPC transport settings and move to aux package. Signed-off-by: Finn Carroll --- .../transport/grpc/GrpcModulePlugin.java | 31 ++--------- .../grpc/Netty4GrpcServerTransport.java | 16 +++--- .../grpc/Netty4GrpcServerTransportTests.java | 2 +- .../opensearch/aux/AuxTransportSettings.java | 55 +++++++++++++++++++ .../java/org/opensearch/aux/package-info.java | 12 ++++ .../org/opensearch/bootstrap/Security.java | 2 +- .../common/settings/ClusterSettings.java | 2 +- .../opensearch/grpc/AuxTransportSettings.java | 25 --------- 8 files changed, 82 insertions(+), 63 deletions(-) create mode 100644 server/src/main/java/org/opensearch/aux/AuxTransportSettings.java create mode 100644 server/src/main/java/org/opensearch/aux/package-info.java delete mode 100644 server/src/main/java/org/opensearch/grpc/AuxTransportSettings.java diff --git a/plugins/transport-grpc/src/main/java/org/opensearch/transport/grpc/GrpcModulePlugin.java b/plugins/transport-grpc/src/main/java/org/opensearch/transport/grpc/GrpcModulePlugin.java index f51cb3ef6edeb..d312dcc3daf9f 100644 --- a/plugins/transport-grpc/src/main/java/org/opensearch/transport/grpc/GrpcModulePlugin.java +++ b/plugins/transport-grpc/src/main/java/org/opensearch/transport/grpc/GrpcModulePlugin.java @@ -23,40 +23,17 @@ import java.util.Collections; import java.util.List; import java.util.Map; -import java.util.function.Function; import java.util.function.Supplier; -import static java.util.Collections.emptyList; -import static org.opensearch.common.settings.Setting.intSetting; -import static org.opensearch.common.settings.Setting.listSetting; +import static org.opensearch.aux.AuxTransportSettings.SETTING_AUX_BIND_HOST; +import static org.opensearch.aux.AuxTransportSettings.SETTING_AUX_HOST; +import static org.opensearch.aux.AuxTransportSettings.SETTING_AUX_PUBLISH_HOST; /** * Main class for the gRPC plugin */ public final class GrpcModulePlugin extends Plugin implements NetworkPlugin { public static final String GRPC_TRANSPORT_NAME = "grpc-transport"; - public static final Setting SETTING_GRPC_PUBLISH_PORT = intSetting("grpc.publish_port", -1, -1, Setting.Property.NodeScope); - - public static final Setting> SETTING_GRPC_HOST = listSetting( - "grpc.host", - emptyList(), - Function.identity(), - Setting.Property.NodeScope - ); - - public static final Setting> SETTING_GRPC_PUBLISH_HOST = listSetting( - "grpc.publish_host", - SETTING_GRPC_HOST, - Function.identity(), - Setting.Property.NodeScope - ); - - public static final Setting> SETTING_GRPC_BIND_HOST = listSetting( - "grpc.bind_host", - SETTING_GRPC_HOST, - Function.identity(), - Setting.Property.NodeScope - ); public static final Setting SETTING_GRPC_WORKER_COUNT = new Setting<>( "grpc.netty.worker_count", @@ -85,6 +62,6 @@ public Map> getAuxTransports( @Override public List> getSettings() { - return List.of(SETTING_GRPC_HOST, SETTING_GRPC_PUBLISH_HOST, SETTING_GRPC_BIND_HOST, SETTING_GRPC_WORKER_COUNT); + return List.of(SETTING_AUX_HOST, SETTING_AUX_PUBLISH_HOST, SETTING_AUX_BIND_HOST, SETTING_GRPC_WORKER_COUNT); } } diff --git a/plugins/transport-grpc/src/main/java/org/opensearch/transport/grpc/Netty4GrpcServerTransport.java b/plugins/transport-grpc/src/main/java/org/opensearch/transport/grpc/Netty4GrpcServerTransport.java index 20d9bea0d4504..f53e15ea9f696 100644 --- a/plugins/transport-grpc/src/main/java/org/opensearch/transport/grpc/Netty4GrpcServerTransport.java +++ b/plugins/transport-grpc/src/main/java/org/opensearch/transport/grpc/Netty4GrpcServerTransport.java @@ -41,12 +41,12 @@ import io.grpc.protobuf.services.HealthStatusManager; import io.grpc.protobuf.services.ProtoReflectionService; +import static org.opensearch.aux.AuxTransportSettings.SETTING_AUX_BIND_HOST; +import static org.opensearch.aux.AuxTransportSettings.SETTING_AUX_PORT; +import static org.opensearch.aux.AuxTransportSettings.SETTING_AUX_PUBLISH_HOST; +import static org.opensearch.aux.AuxTransportSettings.SETTING_AUX_PUBLISH_PORT; import static org.opensearch.common.network.NetworkService.resolvePublishPort; import static org.opensearch.common.util.concurrent.OpenSearchExecutors.daemonThreadFactory; -import static org.opensearch.grpc.AuxTransportSettings.SETTING_AUX_PORT; -import static org.opensearch.transport.grpc.GrpcModulePlugin.SETTING_GRPC_BIND_HOST; -import static org.opensearch.transport.grpc.GrpcModulePlugin.SETTING_GRPC_PUBLISH_HOST; -import static org.opensearch.transport.grpc.GrpcModulePlugin.SETTING_GRPC_PUBLISH_PORT; import static org.opensearch.transport.grpc.GrpcModulePlugin.SETTING_GRPC_WORKER_COUNT; public class Netty4GrpcServerTransport extends AbstractLifecycleComponent implements LifecycleComponent { @@ -69,12 +69,12 @@ public Netty4GrpcServerTransport(Settings settings, List servic this.services = Objects.requireNonNull(services); this.networkService = Objects.requireNonNull(networkService); - final List httpBindHost = SETTING_GRPC_BIND_HOST.get(settings); + final List httpBindHost = SETTING_AUX_BIND_HOST.get(settings); this.bindHosts = (httpBindHost.isEmpty() ? NetworkService.GLOBAL_NETWORK_BIND_HOST_SETTING.get(settings) : httpBindHost).toArray( Strings.EMPTY_ARRAY ); - final List httpPublishHost = SETTING_GRPC_PUBLISH_HOST.get(settings); + final List httpPublishHost = SETTING_AUX_PUBLISH_HOST.get(settings); this.publishHosts = (httpPublishHost.isEmpty() ? NetworkService.GLOBAL_NETWORK_PUBLISH_HOST_SETTING.get(settings) : httpPublishHost) .toArray(Strings.EMPTY_ARRAY); @@ -151,7 +151,7 @@ private void bindServer() { throw new BindTransportException("Failed to resolve publish address", e); } - final int publishPort = resolvePublishPort(SETTING_GRPC_PUBLISH_PORT.get(settings), boundAddresses, publishInetAddress); + final int publishPort = resolvePublishPort(SETTING_AUX_PUBLISH_PORT.get(settings), boundAddresses, publishInetAddress); if (publishPort < 0) { throw new BindTransportException( "Failed to auto-resolve grpc publish port, multiple bound addresses " @@ -162,7 +162,7 @@ private void bindServer() { + "Please specify a unique port by setting " + SETTING_AUX_PORT.getKey() + " or " - + SETTING_GRPC_PUBLISH_PORT.getKey() + + SETTING_AUX_PUBLISH_PORT.getKey() ); } diff --git a/plugins/transport-grpc/src/test/java/org/opensearch/transport/grpc/Netty4GrpcServerTransportTests.java b/plugins/transport-grpc/src/test/java/org/opensearch/transport/grpc/Netty4GrpcServerTransportTests.java index 57d0e56524434..30b6291997005 100644 --- a/plugins/transport-grpc/src/test/java/org/opensearch/transport/grpc/Netty4GrpcServerTransportTests.java +++ b/plugins/transport-grpc/src/test/java/org/opensearch/transport/grpc/Netty4GrpcServerTransportTests.java @@ -8,9 +8,9 @@ package org.opensearch.transport.grpc; +import org.opensearch.aux.AuxTransportSettings; import org.opensearch.common.network.NetworkService; import org.opensearch.common.settings.Settings; -import org.opensearch.grpc.AuxTransportSettings; import org.opensearch.test.OpenSearchTestCase; import org.hamcrest.MatcherAssert; import org.junit.Before; diff --git a/server/src/main/java/org/opensearch/aux/AuxTransportSettings.java b/server/src/main/java/org/opensearch/aux/AuxTransportSettings.java new file mode 100644 index 0000000000000..d81bad2df717a --- /dev/null +++ b/server/src/main/java/org/opensearch/aux/AuxTransportSettings.java @@ -0,0 +1,55 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.aux; + +import org.opensearch.common.settings.Setting; +import org.opensearch.common.settings.Setting.Property; +import org.opensearch.common.transport.PortsRange; + +import java.util.List; +import java.util.function.Function; + +import static java.util.Collections.emptyList; +import static org.opensearch.common.settings.Setting.intSetting; +import static org.opensearch.common.settings.Setting.listSetting; + +/** + * Auxiliary transport server settings. + * + * @opensearch.internal + */ +public final class AuxTransportSettings { + + public static final Setting SETTING_AUX_PORT = new Setting<>("aux.port", "9400-9500", PortsRange::new, Property.NodeScope); + + public static final Setting SETTING_AUX_PUBLISH_PORT = intSetting("aux.publish_port", -1, -1, Setting.Property.NodeScope); + + public static final Setting> SETTING_AUX_HOST = listSetting( + "aux.host", + emptyList(), + Function.identity(), + Setting.Property.NodeScope + ); + + public static final Setting> SETTING_AUX_PUBLISH_HOST = listSetting( + "aux.publish_host", + SETTING_AUX_HOST, + Function.identity(), + Setting.Property.NodeScope + ); + + public static final Setting> SETTING_AUX_BIND_HOST = listSetting( + "aux.bind_host", + SETTING_AUX_HOST, + Function.identity(), + Setting.Property.NodeScope + ); + + private AuxTransportSettings() {} +} diff --git a/server/src/main/java/org/opensearch/aux/package-info.java b/server/src/main/java/org/opensearch/aux/package-info.java new file mode 100644 index 0000000000000..6402c5654b359 --- /dev/null +++ b/server/src/main/java/org/opensearch/aux/package-info.java @@ -0,0 +1,12 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +/** + * Settings and configuration helpers for optional auxiliary client/server transports provided by installed plugins. + */ +package org.opensearch.aux; diff --git a/server/src/main/java/org/opensearch/bootstrap/Security.java b/server/src/main/java/org/opensearch/bootstrap/Security.java index cec64cba4b5f4..8eb197cfe8985 100644 --- a/server/src/main/java/org/opensearch/bootstrap/Security.java +++ b/server/src/main/java/org/opensearch/bootstrap/Security.java @@ -32,12 +32,12 @@ package org.opensearch.bootstrap; +import org.opensearch.aux.AuxTransportSettings; import org.opensearch.cli.Command; import org.opensearch.common.SuppressForbidden; import org.opensearch.common.io.PathUtils; import org.opensearch.common.settings.Settings; import org.opensearch.env.Environment; -import org.opensearch.grpc.AuxTransportSettings; import org.opensearch.http.HttpTransportSettings; import org.opensearch.plugins.PluginInfo; import org.opensearch.plugins.PluginsService; diff --git a/server/src/main/java/org/opensearch/common/settings/ClusterSettings.java b/server/src/main/java/org/opensearch/common/settings/ClusterSettings.java index be26802f84736..8103d5325491c 100644 --- a/server/src/main/java/org/opensearch/common/settings/ClusterSettings.java +++ b/server/src/main/java/org/opensearch/common/settings/ClusterSettings.java @@ -41,6 +41,7 @@ import org.opensearch.action.support.AutoCreateIndex; import org.opensearch.action.support.DestructiveOperations; import org.opensearch.action.support.replication.TransportReplicationAction; +import org.opensearch.aux.AuxTransportSettings; import org.opensearch.bootstrap.BootstrapSettings; import org.opensearch.client.Client; import org.opensearch.cluster.ClusterModule; @@ -111,7 +112,6 @@ import org.opensearch.gateway.remote.RemoteClusterStateService; import org.opensearch.gateway.remote.RemoteIndexMetadataManager; import org.opensearch.gateway.remote.model.RemoteRoutingTableBlobStore; -import org.opensearch.grpc.AuxTransportSettings; import org.opensearch.http.HttpTransportSettings; import org.opensearch.index.IndexModule; import org.opensearch.index.IndexSettings; diff --git a/server/src/main/java/org/opensearch/grpc/AuxTransportSettings.java b/server/src/main/java/org/opensearch/grpc/AuxTransportSettings.java deleted file mode 100644 index f93a369f52212..0000000000000 --- a/server/src/main/java/org/opensearch/grpc/AuxTransportSettings.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package org.opensearch.grpc; - -import org.opensearch.common.settings.Setting; -import org.opensearch.common.settings.Setting.Property; -import org.opensearch.common.transport.PortsRange; - -/** - * Transport settings for gRPC connections - * - * @opensearch.internal - */ -public final class AuxTransportSettings { - - public static final Setting SETTING_AUX_PORT = new Setting<>("aux.port", "9400-9500", PortsRange::new, Property.NodeScope); - - private AuxTransportSettings() {} -}