diff options
Diffstat (limited to 'zkfacade')
5 files changed, 42 insertions, 19 deletions
diff --git a/zkfacade/pom.xml b/zkfacade/pom.xml index d9bd377ffa1..7563ef068a9 100644 --- a/zkfacade/pom.xml +++ b/zkfacade/pom.xml @@ -42,6 +42,12 @@ <scope>provided</scope> </dependency> <dependency> + <groupId>com.yahoo.vespa</groupId> + <artifactId>zookeeper-client-common</artifactId> + <version>${project.version}</version> + <scope>compile</scope> + </dependency> + <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> </dependency> diff --git a/zkfacade/src/main/java/com/yahoo/vespa/curator/Curator.java b/zkfacade/src/main/java/com/yahoo/vespa/curator/Curator.java index 4cbb6c95cb4..9a6ef3f74f1 100644 --- a/zkfacade/src/main/java/com/yahoo/vespa/curator/Curator.java +++ b/zkfacade/src/main/java/com/yahoo/vespa/curator/Curator.java @@ -4,14 +4,12 @@ package com.yahoo.vespa.curator; import com.google.inject.Inject; import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.cloud.config.CuratorConfig; -import com.yahoo.io.IOUtils; import com.yahoo.path.Path; -import com.yahoo.text.Utf8; import com.yahoo.vespa.curator.api.VespaCurator; import com.yahoo.vespa.curator.recipes.CuratorCounter; import com.yahoo.vespa.defaults.Defaults; -import com.yahoo.vespa.zookeeper.VespaSslContextProvider; import com.yahoo.vespa.zookeeper.VespaZooKeeperServer; +import com.yahoo.vespa.zookeeper.client.ZkClientConfigBuilder; import org.apache.curator.RetryPolicy; import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; @@ -30,6 +28,8 @@ import org.apache.zookeeper.data.Stat; import org.apache.zookeeper.server.quorum.QuorumPeerConfig; import java.io.File; +import java.io.IOException; +import java.io.UncheckedIOException; import java.time.Duration; import java.util.Arrays; import java.util.List; @@ -124,20 +124,12 @@ public class Curator implements VespaCurator, AutoCloseable { private static ZKClientConfig createClientConfig(Optional<File> clientConfigFile) { if (clientConfigFile.isPresent()) { - boolean useSecureClient = Boolean.parseBoolean(getEnvironmentVariable("VESPA_USE_TLS_FOR_ZOOKEEPER_CLIENT").orElse("false")); - StringBuilder configBuilder = new StringBuilder("zookeeper.client.secure=").append(useSecureClient).append("\n"); - if (useSecureClient) { - configBuilder.append("zookeeper.ssl.context.supplier.class=").append(VespaSslContextProvider.class.getName()).append("\n") - .append("zookeeper.ssl.enabledProtocols=").append(VespaSslContextProvider.enabledTlsProtocolConfigValue()).append("\n") - .append("zookeeper.ssl.ciphersuites=").append(VespaSslContextProvider.enabledTlsCiphersConfigValue()).append("\n") - .append("zookeeper.ssl.clientAuth=NEED\n"); - } - clientConfigFile.get().getParentFile().mkdirs(); - IOUtils.writeFile(clientConfigFile.get(), Utf8.toBytes(configBuilder.toString())); try { - return new ZKClientConfig(clientConfigFile.get()); + return new ZkClientConfigBuilder().toConfig(clientConfigFile.get().toPath()); } catch (QuorumPeerConfig.ConfigException e) { throw new RuntimeException("Unable to create ZooKeeper client config file " + clientConfigFile.get()); + } catch (IOException e) { + throw new UncheckedIOException(e); } } else { return new ZKClientConfig(); @@ -406,9 +398,4 @@ public class Curator implements VespaCurator, AutoCloseable { */ public int zooKeeperEnsembleCount() { return connectionSpec.ensembleSize(); } - private static Optional<String> getEnvironmentVariable(String variableName) { - return Optional.ofNullable(System.getenv().get(variableName)) - .filter(var -> !var.isEmpty()); - } - } diff --git a/zkfacade/src/main/java/org/apache/zookeeper/client/package-info.java b/zkfacade/src/main/java/org/apache/zookeeper/client/package-info.java new file mode 100644 index 00000000000..e8c8623647a --- /dev/null +++ b/zkfacade/src/main/java/org/apache/zookeeper/client/package-info.java @@ -0,0 +1,10 @@ +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +/** + * Required for export of {@link org.apache.zookeeper.client.ZKClientConfig}. + * + * @author bjorncs + */ +@ExportPackage +package org.apache.zookeeper.client; + +import com.yahoo.osgi.annotation.ExportPackage;
\ No newline at end of file diff --git a/zkfacade/src/main/java/org/apache/zookeeper/common/package-info.java b/zkfacade/src/main/java/org/apache/zookeeper/common/package-info.java new file mode 100644 index 00000000000..3da12af57ec --- /dev/null +++ b/zkfacade/src/main/java/org/apache/zookeeper/common/package-info.java @@ -0,0 +1,10 @@ +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +/** + * Required for export of {@link org.apache.zookeeper.client.ZKClientConfig} (which inherits from {@link org.apache.zookeeper.common.ZKConfig}). + * + * @author bjorncs + */ +@ExportPackage +package org.apache.zookeeper.common; + +import com.yahoo.osgi.annotation.ExportPackage;
\ No newline at end of file diff --git a/zkfacade/src/main/java/org/apache/zookeeper/server/quorum/package-info.java b/zkfacade/src/main/java/org/apache/zookeeper/server/quorum/package-info.java new file mode 100644 index 00000000000..833193c52bb --- /dev/null +++ b/zkfacade/src/main/java/org/apache/zookeeper/server/quorum/package-info.java @@ -0,0 +1,10 @@ +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +/** + * Required for export of {@link org.apache.zookeeper.client.ZKClientConfig} (which inherits from {@link org.apache.zookeeper.common.ZKConfig}). + * + * @author bjorncs + */ +@ExportPackage +package org.apache.zookeeper.server.quorum; + +import com.yahoo.osgi.annotation.ExportPackage;
\ No newline at end of file |