From d1626481f20b24ff92a459988ae2d18f562fb9a2 Mon Sep 17 00:00:00 2001 From: Andrew Donald Kennedy Date: Fri, 1 Apr 2016 22:49:56 +0100 Subject: [PATCH] Added configuration for volume imports --- .../main/java/brooklyn/entity/container/DockerAttributes.java | 4 ++++ .../brooklyn/entity/container/docker/DockerContainer.java | 3 +++ .../brooklyn/entity/container/docker/DockerContainerImpl.java | 4 ++++ .../docker/application/VanillaDockerApplication.java | 3 +++ 4 files changed, 14 insertions(+) diff --git a/docker/src/main/java/brooklyn/entity/container/DockerAttributes.java b/docker/src/main/java/brooklyn/entity/container/DockerAttributes.java index 6d1f52e8..b8a3e665 100644 --- a/docker/src/main/java/brooklyn/entity/container/DockerAttributes.java +++ b/docker/src/main/java/brooklyn/entity/container/DockerAttributes.java @@ -125,6 +125,10 @@ private DockerAttributes() { } new TypeToken>() { }, "docker.container.volumes.export", "Container volume export configuration"); + public static final ConfigKey> DOCKER_CONTAINER_VOLUMES_FROM = ConfigKeys.newConfigKey( + new TypeToken>() { }, + "docker.container.volumes.import", "Container volume import configuration"); + public static final AttributeSensor> DOCKER_VOLUME_MAPPING = Sensors.newSensor( new TypeToken>() { }, "docker.container.volumes", "Container volume mappings"); diff --git a/docker/src/main/java/brooklyn/entity/container/docker/DockerContainer.java b/docker/src/main/java/brooklyn/entity/container/docker/DockerContainer.java index ad5d8b16..d1590964 100644 --- a/docker/src/main/java/brooklyn/entity/container/docker/DockerContainer.java +++ b/docker/src/main/java/brooklyn/entity/container/docker/DockerContainer.java @@ -105,6 +105,9 @@ public interface DockerContainer extends BasicStartable, HasNetworkAddresses, Ha @SetFromFlag("volumes") ConfigKey> DOCKER_CONTAINER_VOLUME_EXPORT = DockerAttributes.DOCKER_CONTAINER_VOLUME_EXPORT; + @SetFromFlag("volumesFrom") + ConfigKey> DOCKER_CONTAINER_VOLUMES_FROM = DockerAttributes.DOCKER_CONTAINER_VOLUMES_FROM; + @SetFromFlag("env") AttributeSensorAndConfigKey, Map> DOCKER_CONTAINER_ENVIRONMENT = ConfigKeys.newSensorAndConfigKey( new TypeToken>() { }, diff --git a/docker/src/main/java/brooklyn/entity/container/docker/DockerContainerImpl.java b/docker/src/main/java/brooklyn/entity/container/docker/DockerContainerImpl.java index aa42f544..d40d6be9 100644 --- a/docker/src/main/java/brooklyn/entity/container/docker/DockerContainerImpl.java +++ b/docker/src/main/java/brooklyn/entity/container/docker/DockerContainerImpl.java @@ -348,6 +348,10 @@ private DockerTemplateOptions getDockerTemplateOptions() { sensors().set(DockerAttributes.DOCKER_VOLUME_MAPPING, volumes); entity.sensors().set(DockerAttributes.DOCKER_VOLUME_MAPPING, volumes); options.volumes(volumes); + List imports = entity.config().get(DockerContainer.DOCKER_CONTAINER_VOLUMES_FROM); + if (imports != null) { + options.volumesFrom(imports); + } // Direct port mappings Map bindings = MutableMap.copyOf(entity.config().get(DockerAttributes.DOCKER_PORT_BINDINGS)); diff --git a/docker/src/main/java/brooklyn/entity/container/docker/application/VanillaDockerApplication.java b/docker/src/main/java/brooklyn/entity/container/docker/application/VanillaDockerApplication.java index ac74f030..476ec53b 100644 --- a/docker/src/main/java/brooklyn/entity/container/docker/application/VanillaDockerApplication.java +++ b/docker/src/main/java/brooklyn/entity/container/docker/application/VanillaDockerApplication.java @@ -78,6 +78,9 @@ public interface VanillaDockerApplication extends VanillaSoftwareProcess { @SetFromFlag("volumes") ConfigKey> DOCKER_CONTAINER_VOLUME_EXPORT = DockerAttributes.DOCKER_CONTAINER_VOLUME_EXPORT; + @SetFromFlag("volumesFrom") + ConfigKey> DOCKER_CONTAINER_VOLUMES_FROM = DockerAttributes.DOCKER_CONTAINER_VOLUMES_FROM; + @SetFromFlag("volumeMappings") AttributeSensorAndConfigKey, Map> DOCKER_HOST_VOLUME_MAPPING = DockerAttributes.DOCKER_HOST_VOLUME_MAPPING;