diff options
author | Harald Musum <musum@verizonmedia.com> | 2020-05-30 09:30:51 +0200 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2020-05-30 09:30:51 +0200 |
commit | c279dfb3623d11d5fae34d53a28312919356633a (patch) | |
tree | 0eb9bb51bb84d1aa5c669cb849f98509ac5e1a64 /zookeeper-server | |
parent | 6480495811959e4ea110f25e6371811f5d01f23d (diff) |
Resolve path under vespa home if not absolute
Diffstat (limited to 'zookeeper-server')
2 files changed, 28 insertions, 19 deletions
diff --git a/zookeeper-server/zookeeper-server-3.5.8/src/main/java/com/yahoo/vespa/zookeeper/VespaZooKeeperServerImpl.java b/zookeeper-server/zookeeper-server-3.5.8/src/main/java/com/yahoo/vespa/zookeeper/VespaZooKeeperServerImpl.java index 15d5d2f6f31..7f5b6170947 100644 --- a/zookeeper-server/zookeeper-server-3.5.8/src/main/java/com/yahoo/vespa/zookeeper/VespaZooKeeperServerImpl.java +++ b/zookeeper-server/zookeeper-server-3.5.8/src/main/java/com/yahoo/vespa/zookeeper/VespaZooKeeperServerImpl.java @@ -28,7 +28,7 @@ public class VespaZooKeeperServerImpl extends AbstractComponent implements Runna this.zookeeperServerConfig = zookeeperServerConfig; new Configurator(zookeeperServerConfig).writeConfigToDisk(TransportSecurityUtils.getOptions()); zkServerThread = new Thread(this, "zookeeper server"); - zkServerThread.start(); + zkServerThread.start(); } private void shutdown() { diff --git a/zookeeper-server/zookeeper-server-common/src/main/java/com/yahoo/vespa/zookeeper/Configurator.java b/zookeeper-server/zookeeper-server-common/src/main/java/com/yahoo/vespa/zookeeper/Configurator.java index 119509dd9cc..44ea8cece34 100644 --- a/zookeeper-server/zookeeper-server-common/src/main/java/com/yahoo/vespa/zookeeper/Configurator.java +++ b/zookeeper-server/zookeeper-server-common/src/main/java/com/yahoo/vespa/zookeeper/Configurator.java @@ -12,9 +12,9 @@ import com.yahoo.security.X509CertificateUtils; import com.yahoo.security.tls.TlsContext; import com.yahoo.security.tls.TransportSecurityOptions; import com.yahoo.text.Utf8; +import com.yahoo.vespa.defaults.Defaults; import javax.net.ssl.SSLContext; -import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.nio.file.Files; @@ -26,29 +26,33 @@ import java.util.List; import java.util.Optional; import java.util.Set; import java.util.TreeSet; +import java.util.logging.Level; import java.util.stream.Collectors; import static com.yahoo.vespa.defaults.Defaults.getDefaults; public class Configurator { + + private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(Configurator.class.getName()); private static final String ZOOKEEPER_JMX_LOG4J_DISABLE = "zookeeper.jmx.log4j.disable"; static final String ZOOKEEPER_JUTE_MAX_BUFFER = "jute.maxbuffer"; private final ZookeeperServerConfig zookeeperServerConfig; - private final String configFilePath; - private final String jksKeyStoreFilePath; + private final Path configFilePath; + private final Path jksKeyStoreFilePath; public Configurator(ZookeeperServerConfig zookeeperServerConfig) { + log.log(Level.FINE, zookeeperServerConfig.toString()); this.zookeeperServerConfig = zookeeperServerConfig; - this.configFilePath = zookeeperServerConfig.zooKeeperConfigFile(); - this.jksKeyStoreFilePath = zookeeperServerConfig.jksKeyStoreFile(); + this.configFilePath = makeAbsolutePath(zookeeperServerConfig.zooKeeperConfigFile()); + this.jksKeyStoreFilePath = makeAbsolutePath(zookeeperServerConfig.jksKeyStoreFile()); System.setProperty(ZOOKEEPER_JMX_LOG4J_DISABLE, "true"); System.setProperty("zookeeper.snapshot.trust.empty", Boolean.valueOf(zookeeperServerConfig.trustEmptySnapshot()).toString()); System.setProperty(ZOOKEEPER_JUTE_MAX_BUFFER, Integer.valueOf(zookeeperServerConfig.juteMaxBuffer()).toString()); } void writeConfigToDisk(Optional<TransportSecurityOptions> transportSecurityOptions) { - new File(configFilePath).getParentFile().mkdirs(); + configFilePath.toFile().getParentFile().mkdirs(); try { writeZooKeeperConfigFile(zookeeperServerConfig, transportSecurityOptions); @@ -61,7 +65,7 @@ public class Configurator { private void writeZooKeeperConfigFile(ZookeeperServerConfig config, Optional<TransportSecurityOptions> transportSecurityOptions) throws IOException { - try (FileWriter writer = new FileWriter(configFilePath)) { + try (FileWriter writer = new FileWriter(configFilePath.toFile())) { writer.write(transformConfigToString(config, transportSecurityOptions)); } } @@ -118,7 +122,7 @@ public class Configurator { .withType(KeyStoreType.JKS) .withKeyEntry("foo", privateKey, certificates); - KeyStoreUtils.writeKeyStoreToFile(keyStoreBuilder.build(), Paths.get(jksKeyStoreFilePath)); + KeyStoreUtils.writeKeyStoreToFile(keyStoreBuilder.build(), jksKeyStoreFilePath); } private void ensureThisServerIsRepresented(int myid, List<ZookeeperServerConfig.Server> servers) { @@ -138,13 +142,18 @@ public class Configurator { sb.append("server.").append(server.id()).append("=").append(server.hostname()).append(":").append(server.quorumPort()).append(":").append(server.electionPort()).append("\n"); } - - - static Set<String> zookeeperServerHostnames(ZookeeperServerConfig zookeeperServerConfig) { return zookeeperServerConfig.server().stream().map(ZookeeperServerConfig.Server::hostname).collect(Collectors.toSet()); } + Path makeAbsolutePath(String filename) { + Path path = Paths.get(filename); + if (path.isAbsolute()) + return path; + else + return Paths.get(Defaults.getDefaults().underVespaHome(filename)); + } + private interface TlsConfig { default Set<String> allowedCiphers(SSLContext sslContext) { return new TreeSet<>(TlsContext.getAllowedCipherSuites(sslContext)); } @@ -162,7 +171,7 @@ public class Configurator { String configFieldPrefix(); - String jksKeyStoreFilePath(); + Path jksKeyStoreFilePath(); SSLContext sslContext(); @@ -195,9 +204,9 @@ public class Configurator { static class TlsClientServerConfig implements TlsConfig { private final SSLContext sslContext; - private final String jksKeyStoreFilePath; + private final Path jksKeyStoreFilePath; - TlsClientServerConfig(SSLContext sslContext, String jksKeyStoreFilePath) { + TlsClientServerConfig(SSLContext sslContext, Path jksKeyStoreFilePath) { this.sslContext = sslContext; this.jksKeyStoreFilePath = jksKeyStoreFilePath; } @@ -233,7 +242,7 @@ public class Configurator { } @Override - public String jksKeyStoreFilePath() { + public Path jksKeyStoreFilePath() { return jksKeyStoreFilePath; } @@ -246,9 +255,9 @@ public class Configurator { static class TlsQuorumConfig implements TlsConfig { private final SSLContext sslContext; - private final String jksKeyStoreFilePath; + private final Path jksKeyStoreFilePath; - TlsQuorumConfig(SSLContext sslContext, String jksKeyStoreFilePath) { + TlsQuorumConfig(SSLContext sslContext, Path jksKeyStoreFilePath) { this.sslContext = sslContext; this.jksKeyStoreFilePath = jksKeyStoreFilePath; } @@ -293,7 +302,7 @@ public class Configurator { } @Override - public String jksKeyStoreFilePath() { + public Path jksKeyStoreFilePath() { return jksKeyStoreFilePath; } |