From 987ce858da7ce9360128ada326c90fd2adfd6c0a Mon Sep 17 00:00:00 2001 From: Peter Bollen Date: Tue, 7 Feb 2017 13:21:42 +0100 Subject: [PATCH 1/2] add support for withVolumesFrom --- .../testcontainers/containers/Container.java | 9 +++++++++ .../containers/GenericContainer.java | 20 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/core/src/main/java/org/testcontainers/containers/Container.java b/core/src/main/java/org/testcontainers/containers/Container.java index 1bdd6933835..e32cf7103e8 100644 --- a/core/src/main/java/org/testcontainers/containers/Container.java +++ b/core/src/main/java/org/testcontainers/containers/Container.java @@ -129,6 +129,15 @@ public String getStderr() { */ SELF withFileSystemBind(String hostPath, String containerPath, BindMode mode); + /** + * Adds container volumes. + * + * @param otherContainer the other container object to add volumes from + * @param mode the bind mode + * @return this + */ + SELF withVolumesFrom(String otherContainer, BindMode mode); + /** * Set the ports that this container listens on * diff --git a/core/src/main/java/org/testcontainers/containers/GenericContainer.java b/core/src/main/java/org/testcontainers/containers/GenericContainer.java index dde57985759..05551a137c6 100644 --- a/core/src/main/java/org/testcontainers/containers/GenericContainer.java +++ b/core/src/main/java/org/testcontainers/containers/GenericContainer.java @@ -94,6 +94,9 @@ public class GenericContainer> @NonNull private boolean privilegedMode; + @NonNull + private List volumesFroms = new ArrayList<>(); + @NonNull private Map linkedContainers = new HashMap<>(); @@ -344,6 +347,10 @@ private void applyConfiguration(CreateContainerCmd createCommand) { .toArray(Bind[]::new); createCommand.withBinds(bindsArray); + VolumesFrom[] volumesFromsArray = volumesFroms.stream() + .toArray(VolumesFrom[]::new); + createCommand.withVolumesFrom(volumesFromsArray); + Set allLinks = new HashSet<>(); Set allLinkedContainerNetworks = new HashSet<>(); for (Map.Entry linkEntries : linkedContainers.entrySet()) { @@ -494,6 +501,19 @@ public SELF withFileSystemBind(String hostPath, String containerPath, BindMode m return self(); } + /** + * {@inheritDoc} + */ + @Override + public SELF withVolumesFrom(String otherContainer, BindMode mode) { + addVolumesFrom(otherContainer, mode); + return self(); + } + + private void addVolumesFrom(String otherContainer, BindMode mode) { + volumesFroms.add(new VolumesFrom(otherContainer, mode.accessMode)); + } + @Override public void addLink(LinkableContainer otherContainer, String alias) { this.linkedContainers.put(alias, otherContainer); From 4886beff3d73a7b61e3056365e8168131e52e56b Mon Sep 17 00:00:00 2001 From: Peter Bollen Date: Tue, 7 Feb 2017 13:45:28 +0100 Subject: [PATCH 2/2] implemented feedback --- .../java/org/testcontainers/containers/Container.java | 4 ++-- .../org/testcontainers/containers/GenericContainer.java | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/org/testcontainers/containers/Container.java b/core/src/main/java/org/testcontainers/containers/Container.java index e32cf7103e8..002d5163acd 100644 --- a/core/src/main/java/org/testcontainers/containers/Container.java +++ b/core/src/main/java/org/testcontainers/containers/Container.java @@ -132,11 +132,11 @@ public String getStderr() { /** * Adds container volumes. * - * @param otherContainer the other container object to add volumes from + * @param container the container to add volumes from * @param mode the bind mode * @return this */ - SELF withVolumesFrom(String otherContainer, BindMode mode); + SELF withVolumesFrom(Container container, BindMode mode); /** * Set the ports that this container listens on diff --git a/core/src/main/java/org/testcontainers/containers/GenericContainer.java b/core/src/main/java/org/testcontainers/containers/GenericContainer.java index 05551a137c6..4f1d45f9c44 100644 --- a/core/src/main/java/org/testcontainers/containers/GenericContainer.java +++ b/core/src/main/java/org/testcontainers/containers/GenericContainer.java @@ -505,13 +505,13 @@ public SELF withFileSystemBind(String hostPath, String containerPath, BindMode m * {@inheritDoc} */ @Override - public SELF withVolumesFrom(String otherContainer, BindMode mode) { - addVolumesFrom(otherContainer, mode); + public SELF withVolumesFrom(Container container, BindMode mode) { + addVolumesFrom(container, mode); return self(); } - private void addVolumesFrom(String otherContainer, BindMode mode) { - volumesFroms.add(new VolumesFrom(otherContainer, mode.accessMode)); + private void addVolumesFrom(Container container, BindMode mode) { + volumesFroms.add(new VolumesFrom(container.getContainerName(), mode.accessMode)); } @Override