From f3de39ab9acf72d25a0febf12a0b21d91ea66156 Mon Sep 17 00:00:00 2001 From: Lan Liang Date: Sat, 17 Sep 2022 17:33:15 +0800 Subject: [PATCH] Add param of withBindVolumn for EtcdClusterExtension Signed-off-by: Lan Liang --- .../main/java/io/etcd/jetcd/launcher/Etcd.java | 9 ++++++++- .../io/etcd/jetcd/launcher/EtcdClusterImpl.java | 4 +++- .../io/etcd/jetcd/launcher/EtcdContainer.java | 16 +++++++++++++--- .../io/etcd/jetcd/test/EtcdClusterExtension.java | 5 +++++ 4 files changed, 29 insertions(+), 5 deletions(-) diff --git a/jetcd-launcher/src/main/java/io/etcd/jetcd/launcher/Etcd.java b/jetcd-launcher/src/main/java/io/etcd/jetcd/launcher/Etcd.java index ade38d502..eb36c34e2 100644 --- a/jetcd-launcher/src/main/java/io/etcd/jetcd/launcher/Etcd.java +++ b/jetcd-launcher/src/main/java/io/etcd/jetcd/launcher/Etcd.java @@ -46,6 +46,7 @@ public static class Builder { private boolean ssl = false; private List additionalArgs; private Network network; + private boolean bindVolumn = true; public Builder withClusterName(String clusterName) { this.clusterName = clusterName; @@ -87,6 +88,11 @@ public Builder withNetwork(Network network) { return this; } + public Builder withBindVolumn(boolean bindVolumn) { + this.bindVolumn = bindVolumn; + return this; + } + public EtcdCluster build() { return new EtcdClusterImpl( image, @@ -95,7 +101,8 @@ public EtcdCluster build() { nodes, ssl, additionalArgs, - network != null ? network : Network.newNetwork()); + network != null ? network : Network.newNetwork(), + bindVolumn); } } } diff --git a/jetcd-launcher/src/main/java/io/etcd/jetcd/launcher/EtcdClusterImpl.java b/jetcd-launcher/src/main/java/io/etcd/jetcd/launcher/EtcdClusterImpl.java index f10e1e70c..e7ba40b84 100644 --- a/jetcd-launcher/src/main/java/io/etcd/jetcd/launcher/EtcdClusterImpl.java +++ b/jetcd-launcher/src/main/java/io/etcd/jetcd/launcher/EtcdClusterImpl.java @@ -43,7 +43,8 @@ public EtcdClusterImpl( int nodes, boolean ssl, Collection additionalArgs, - Network network) { + Network network, + boolean bindVolumn) { this.clusterName = clusterName; this.network = network; @@ -57,6 +58,7 @@ public EtcdClusterImpl( .withClusterToken(clusterName) .withSll(ssl) .withAdditionalArgs(additionalArgs) + .withBindVolumn(bindVolumn) .withNetwork(network); return answer; diff --git a/jetcd-launcher/src/main/java/io/etcd/jetcd/launcher/EtcdContainer.java b/jetcd-launcher/src/main/java/io/etcd/jetcd/launcher/EtcdContainer.java index fd4c73a8f..8231a0d61 100644 --- a/jetcd-launcher/src/main/java/io/etcd/jetcd/launcher/EtcdContainer.java +++ b/jetcd-launcher/src/main/java/io/etcd/jetcd/launcher/EtcdContainer.java @@ -56,6 +56,7 @@ public class EtcdContainer extends GenericContainer { private final Set nodes; private String clusterToken; + private boolean bindVolumn = true; private boolean ssl; private Path dataDirectory; private Collection additionalArgs; @@ -79,6 +80,11 @@ public EtcdContainer withClusterToken(String clusterToken) { this.clusterToken = clusterToken; return self(); } + + public EtcdContainer withBindVolumn(boolean bindVolumn){ + this.bindVolumn=bindVolumn; + return self(); + } public EtcdContainer withAdditionalArgs(Collection additionalArgs) { if (additionalArgs != null) { @@ -94,8 +100,10 @@ protected void configure() { return; } - dataDirectory = createDataDirectory(node); - addFileSystemBind(dataDirectory.toString(), Etcd.ETCD_DATA_DIR, BindMode.READ_WRITE, SelinuxContext.SHARED); + if(bindVolumn){ + dataDirectory = createDataDirectory(node); + addFileSystemBind(dataDirectory.toString(), Etcd.ETCD_DATA_DIR, BindMode.READ_WRITE, SelinuxContext.SHARED); + } withExposedPorts(Etcd.ETCD_PEER_PORT, Etcd.ETCD_CLIENT_PORT); withNetworkAliases(node); @@ -203,7 +211,9 @@ public void start() { @Override public void close() { super.close(); - deleteDataDirectory(dataDirectory); + if(bindVolumn) { + deleteDataDirectory(dataDirectory); + } } public String node() { diff --git a/jetcd-test/src/main/java/io/etcd/jetcd/test/EtcdClusterExtension.java b/jetcd-test/src/main/java/io/etcd/jetcd/test/EtcdClusterExtension.java index a44d7bcb9..1f71fc329 100644 --- a/jetcd-test/src/main/java/io/etcd/jetcd/test/EtcdClusterExtension.java +++ b/jetcd-test/src/main/java/io/etcd/jetcd/test/EtcdClusterExtension.java @@ -138,6 +138,11 @@ public Builder withSsl(boolean ssl) { return this; } + public Builder withBindVolumn(boolean bindVolumn) { + builder.withBindVolumn(bindVolumn); + return this; + } + public Builder withAdditionalArgs(Collection additionalArgs) { builder.withAdditionalArgs(additionalArgs); return this;