changing config parameters to Object so we can support yml lists etc. in opensearch.yml (#18799)

Co-authored-by: Matthias Oesterheld <33032967+moesterheld@users.noreply.github.com>
This commit is contained in:
Jan Heise
2024-03-27 16:40:24 +01:00
committed by GitHub
parent 389790717f
commit 81acc1b60e
4 changed files with 14 additions and 14 deletions

View File

@@ -97,7 +97,7 @@ public class OpensearchConfigurationProvider implements Provider<OpensearchConfi
.findFirst();
try {
ImmutableMap.Builder<String, String> opensearchProperties = ImmutableMap.builder();
ImmutableMap.Builder<String, Object> opensearchProperties = ImmutableMap.builder();
if (localConfiguration.getInitialClusterManagerNodes() != null && !localConfiguration.getInitialClusterManagerNodes().isBlank()) {
opensearchProperties.put("cluster.initial_cluster_manager_nodes", localConfiguration.getInitialClusterManagerNodes());
@@ -136,8 +136,8 @@ public class OpensearchConfigurationProvider implements Provider<OpensearchConfi
}
}
private ImmutableMap<String, String> commonOpensearchConfig(final Configuration localConfiguration) {
final ImmutableMap.Builder<String, String> config = ImmutableMap.builder();
private ImmutableMap<String, Object> commonOpensearchConfig(final Configuration localConfiguration) {
final ImmutableMap.Builder<String, Object> config = ImmutableMap.builder();
localConfiguration.getOpensearchNetworkHost().ifPresent(
networkHost -> config.put("network.host", networkHost));
config.put("path.data", datanodeConfiguration.datanodeDirectories().getDataTargetDir().toString());
@@ -146,8 +146,8 @@ public class OpensearchConfigurationProvider implements Provider<OpensearchConfi
config.put("network.bind_host", localConfiguration.getBindAddress());
// https://opensearch.org/docs/latest/tuning-your-cluster/availability-and-recovery/snapshots/snapshot-restore/#shared-file-system
if (localConfiguration.getPathRepo() != null && !localConfiguration.getPathRepo().isEmpty()) {
config.put("path.repo", String.join(",", localConfiguration.getPathRepo()));
if(localConfiguration.getPathRepo() != null && !localConfiguration.getPathRepo().isEmpty()) {
config.put("path.repo", localConfiguration.getPathRepo());
}
//config.put("network.publish_host", Tools.getLocalCanonicalHostname());

View File

@@ -115,8 +115,8 @@ public class OpensearchCommandLineProcess implements Closeable {
opensearchCli.keystore().add("s3.client.default.secret_key", config.s3RepositoryConfiguration().getS3ClientDefaultSecretKey());
}
private static Map<String, String> getOpensearchConfigurationArguments(OpensearchConfiguration config) {
Map<String, String> allArguments = new LinkedHashMap<>(config.asMap());
private static Map<String, Object> getOpensearchConfigurationArguments(OpensearchConfiguration config) {
Map<String, Object> allArguments = new LinkedHashMap<>(config.asMap());
// now copy all the environment values to the configuration arguments. Opensearch won't do it for us,
// because we are using tar distriburion and opensearch does this only for docker dist. See opensearch-env script

View File

@@ -168,7 +168,7 @@ public class OpensearchProcessService extends AbstractIdleService implements Pro
private void configure(Map<String, String> additionalConfig) {
final OpensearchConfiguration original = configurationProvider.get();
final var finalAdditionalConfig = new HashMap<String, String>();
final var finalAdditionalConfig = new HashMap<String, Object>();
finalAdditionalConfig.putAll(original.additionalConfiguration());
finalAdditionalConfig.putAll(additionalConfig);

View File

@@ -43,11 +43,11 @@ public record OpensearchConfiguration(
S3RepositoryConfiguration s3RepositoryConfiguration,
String nodeSearchCacheSize,
Map<String, String> additionalConfiguration
Map<String, Object> additionalConfiguration
) {
public Map<String, String> asMap() {
public Map<String, Object> asMap() {
Map<String, String> config = new LinkedHashMap<>();
Map<String, Object> config = new LinkedHashMap<>();
config.put("action.auto_create_index", "false");
@@ -78,7 +78,7 @@ public record OpensearchConfiguration(
config.put("discovery.seed_providers", "file");
config.put("node.search.cache.size", nodeSearchCacheSize);
if(s3RepositoryConfiguration.isRepositoryEnabled()) {
if (s3RepositoryConfiguration.isRepositoryEnabled()) {
config.putAll(s3RepositoryConfiguration.toOpensearchProperties());
}
@@ -97,12 +97,12 @@ public record OpensearchConfiguration(
}
public HttpHost getRestBaseUrl() {
final boolean sslEnabled = Boolean.parseBoolean(asMap().getOrDefault("plugins.security.ssl.http.enabled", "false"));
final boolean sslEnabled = Boolean.parseBoolean(asMap().getOrDefault("plugins.security.ssl.http.enabled", "false").toString());
return new HttpHost(hostname(), httpPort(), sslEnabled ? "https" : "http");
}
public HttpHost getClusterBaseUrl() {
final boolean sslEnabled = Boolean.parseBoolean(asMap().getOrDefault("plugins.security.ssl.http.enabled", "false"));
final boolean sslEnabled = Boolean.parseBoolean(asMap().getOrDefault("plugins.security.ssl.http.enabled", "false").toString());
return new HttpHost(hostname(), transportPort(), sslEnabled ? "https" : "http");
}