You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by iu...@apache.org on 2022/07/04 08:30:57 UTC
[brooklyn-server] branch master updated: Renamed all classes and refereces from Docker to Container
This is an automated email from the ASF dual-hosted git repository.
iuliana pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git
The following commit(s) were added to refs/heads/master by this push:
new 043134aae8 Renamed all classes and refereces from Docker to Container
new eda99f4b25 Merge pull request #1330 from iuliana/feature/docker-container
043134aae8 is described below
commit 043134aae8e82a0c16cd1f3a80cddd1aa73c09ad
Author: iuliana <iu...@cloudsoft.io>
AuthorDate: Fri Jul 1 17:54:12 2022 +0100
Renamed all classes and refereces from Docker to Container
---
software/base/README.adoc | 2 +-
...{DockerEffector.java => ContainerEffector.java} | 16 +++----
.../{DockerSensor.java => ContainerSensor.java} | 14 +++---
.../tasks/kubectl/ContainerTaskFactory.java | 4 +-
software/base/src/main/resources/catalog.bom | 12 ++---
...ffectorTest.java => ContainerEffectorTest.java} | 18 ++++----
...kerSensorTest.java => ContainerSensorTest.java} | 32 +++++++-------
...{DockerTaskTest.java => ContainerTaskTest.java} | 51 ++++++++++++++++------
.../org/apache/brooklyn/kubectl/sample-both.yaml | 8 ++--
.../brooklyn/kubectl/sample-effector-dev.yaml | 6 +--
.../apache/brooklyn/kubectl/sample-effector.yaml | 6 +--
.../org/apache/brooklyn/kubectl/sample-sensor.yaml | 2 +-
12 files changed, 98 insertions(+), 73 deletions(-)
diff --git a/software/base/README.adoc b/software/base/README.adoc
index e4c7541c59..d55dee39bd 100644
--- a/software/base/README.adoc
+++ b/software/base/README.adoc
@@ -23,7 +23,7 @@ This project contains useful software types for building applications.
== Kubectl components
-The `org.apache.brooklyn.tasks.kubectl` package contains types `DockerSensor` and `DockerEffector` that can be used to
+The `org.apache.brooklyn.tasks.kubectl` package contains types `ContainerSensor` and `ContainerEffector` that can be used to
declare simple actions to be executed on a container managed by a kubernetes cluster. To use them you have to make sure
the location where the app was deployed has `kubectl` installed and configured to use local or remote Kubernetes cluster.
diff --git a/software/base/src/main/java/org/apache/brooklyn/tasks/kubectl/DockerEffector.java b/software/base/src/main/java/org/apache/brooklyn/tasks/kubectl/ContainerEffector.java
similarity index 80%
rename from software/base/src/main/java/org/apache/brooklyn/tasks/kubectl/DockerEffector.java
rename to software/base/src/main/java/org/apache/brooklyn/tasks/kubectl/ContainerEffector.java
index 09fd759bad..5b34ae604e 100644
--- a/software/base/src/main/java/org/apache/brooklyn/tasks/kubectl/DockerEffector.java
+++ b/software/base/src/main/java/org/apache/brooklyn/tasks/kubectl/ContainerEffector.java
@@ -35,14 +35,14 @@ import java.util.concurrent.TimeUnit;
import static com.google.common.base.Preconditions.checkNotNull;
import static org.apache.brooklyn.core.mgmt.BrooklynTaskTags.EFFECTOR_TAG;
-public class DockerEffector extends AddEffectorInitializerAbstract implements ContainerCommons {
+public class ContainerEffector extends AddEffectorInitializerAbstract implements ContainerCommons {
- private static final Logger LOG = LoggerFactory.getLogger(DockerEffector.class);
+ private static final Logger LOG = LoggerFactory.getLogger(ContainerEffector.class);
- public DockerEffector() {
+ public ContainerEffector() {
}
- public DockerEffector(ConfigBag configBag) {
+ public ContainerEffector(ConfigBag configBag) {
super(configBag);
}
@@ -69,13 +69,13 @@ public class DockerEffector extends AddEffectorInitializerAbstract implements C
@Override
public String call(ConfigBag parameters) {
ConfigBag configBag = ConfigBag.newInstanceCopying(this.params).putAll(parameters);
- Task<String> dockerTask = new ContainerTaskFactory.ConcreteContainerTaskFactory<String>()
- .summary("Executing Docker Image: " + EntityInitializers.resolve(configBag, CONTAINER_IMAGE))
+ Task<String> containerTask = new ContainerTaskFactory.ConcreteContainerTaskFactory<String>()
+ .summary("Executing Container Image: " + EntityInitializers.resolve(configBag, CONTAINER_IMAGE))
.tag(entity().getId() + "-" + EFFECTOR_TAG)
.configure(configBag.getAllConfig())
.newTask();
- DynamicTasks.queueIfPossible(dockerTask).orSubmitAsync(entity());
- Object result = dockerTask.getUnchecked(Duration.of(5, TimeUnit.MINUTES));
+ DynamicTasks.queueIfPossible(containerTask).orSubmitAsync(entity());
+ Object result = containerTask.getUnchecked(Duration.of(5, TimeUnit.MINUTES));
return result.toString();
}
}
diff --git a/software/base/src/main/java/org/apache/brooklyn/tasks/kubectl/DockerSensor.java b/software/base/src/main/java/org/apache/brooklyn/tasks/kubectl/ContainerSensor.java
similarity index 87%
rename from software/base/src/main/java/org/apache/brooklyn/tasks/kubectl/DockerSensor.java
rename to software/base/src/main/java/org/apache/brooklyn/tasks/kubectl/ContainerSensor.java
index 600958d7f0..0d54e40680 100644
--- a/software/base/src/main/java/org/apache/brooklyn/tasks/kubectl/DockerSensor.java
+++ b/software/base/src/main/java/org/apache/brooklyn/tasks/kubectl/ContainerSensor.java
@@ -42,17 +42,17 @@ import java.util.concurrent.TimeUnit;
import static org.apache.brooklyn.core.mgmt.BrooklynTaskTags.SENSOR_TAG;
@SuppressWarnings({"UnstableApiUsage", "deprecation", "unchecked"})
-public class DockerSensor<T> extends AbstractAddSensorFeed<T> implements ContainerCommons {
+public class ContainerSensor<T> extends AbstractAddSensorFeed<T> implements ContainerCommons {
public static final ConfigKey<String> FORMAT = SshCommandSensor.FORMAT;
public static final ConfigKey<Boolean> LAST_YAML_DOCUMENT = SshCommandSensor.LAST_YAML_DOCUMENT;
- private static final Logger LOG = LoggerFactory.getLogger(DockerSensor.class);
+ private static final Logger LOG = LoggerFactory.getLogger(ContainerSensor.class);
- public DockerSensor() {
+ public ContainerSensor() {
}
- public DockerSensor(final ConfigBag parameters) {
+ public ContainerSensor(final ConfigBag parameters) {
super(parameters);
}
@@ -77,13 +77,13 @@ public class DockerSensor<T> extends AbstractAddSensorFeed<T> implements Contain
.callable(new Callable<Object>() {
@Override
public Object call() throws Exception {
- Task<String> dockerTask = new ContainerTaskFactory.ConcreteContainerTaskFactory<String>()
+ Task<String> containerTask = new ContainerTaskFactory.ConcreteContainerTaskFactory<String>()
.summary("Running " + EntityInitializers.resolve(configBag, SENSOR_NAME))
.tag(entity.getId() + "-" + SENSOR_TAG)
.configure(configBag.getAllConfig())
.newTask();
- DynamicTasks.queueIfPossible(dockerTask).orSubmitAsync(entity);
- Object result = dockerTask.getUnchecked(Duration.of(5, TimeUnit.MINUTES));
+ DynamicTasks.queueIfPossible(containerTask).orSubmitAsync(entity);
+ Object result = containerTask.getUnchecked(Duration.of(5, TimeUnit.MINUTES));
List<String> res = (List<String>) result;
while(!res.isEmpty() && Iterables.getLast(res).matches("namespace .* deleted\\s*")) res = res.subList(0, res.size()-1);
diff --git a/software/base/src/main/java/org/apache/brooklyn/tasks/kubectl/ContainerTaskFactory.java b/software/base/src/main/java/org/apache/brooklyn/tasks/kubectl/ContainerTaskFactory.java
index ff877993d8..9b175a1258 100644
--- a/software/base/src/main/java/org/apache/brooklyn/tasks/kubectl/ContainerTaskFactory.java
+++ b/software/base/src/main/java/org/apache/brooklyn/tasks/kubectl/ContainerTaskFactory.java
@@ -64,8 +64,10 @@ public class ContainerTaskFactory<T extends ContainerTaskFactory<T,RET>,RET> im
throw new IllegalStateException("You must specify containerImage when using " + this.getClass().getSimpleName());
}
+ final String cleanImageName = containerImage.contains(":") ? containerImage.substring(0, containerImage.indexOf(":")) : containerImage;
+
final String containerName = (Strings.isBlank(containerNameFromCfg)
- ? ( (Strings.isNonBlank(this.tag) ? this.tag + "-" : "").concat(containerImage).concat("-").concat(Strings.makeRandomId(10)))
+ ? ( (Strings.isNonBlank(this.tag) ? this.tag + "-" : "").concat(cleanImageName).concat("-").concat(Strings.makeRandomId(10)))
: containerNameFromCfg).replace(" ", "-")
.replace("/", "-")
.replace("_", "-")
diff --git a/software/base/src/main/resources/catalog.bom b/software/base/src/main/resources/catalog.bom
index 448b8908c2..98d004d49d 100644
--- a/software/base/src/main/resources/catalog.bom
+++ b/software/base/src/main/resources/catalog.bom
@@ -81,18 +81,18 @@ brooklyn.catalog:
description: Creates a pre-allocated server pool, which other applications can deploy to
#-----------------------------------------kubectl effector & sensor-------------------------------------------------------
- - id: org.apache.brooklyn.tasks.kubectl.DockerSensor
+ - id: org.apache.brooklyn.tasks.kubectl.ContainerSensor
format: java-type-name
itemType: bean
item:
- type: org.apache.brooklyn.tasks.kubectl.DockerSensor
- name: Docker Sensor
+ type: org.apache.brooklyn.tasks.kubectl.ContainerSensor
+ name: Container Sensor
description: A sensor that exposes a value produced by a Kubectl Job
- - id: org.apache.brooklyn.tasks.kubectl.DockerEffector
+ - id: org.apache.brooklyn.tasks.kubectl.ContainerEffector
format: java-type-name
itemType: bean
item:
- type: org.apache.brooklyn.tasks.kubectl.DockerEffector
- name: Docker Effector
+ type: org.apache.brooklyn.tasks.kubectl.ContainerEffector
+ name: Container Effector
description: An effector that runs a Kubectl Job
\ No newline at end of file
diff --git a/software/base/src/test/java/org/apache/brooklyn/tasks/kubectl/DockerEffectorTest.java b/software/base/src/test/java/org/apache/brooklyn/tasks/kubectl/ContainerEffectorTest.java
similarity index 88%
rename from software/base/src/test/java/org/apache/brooklyn/tasks/kubectl/DockerEffectorTest.java
rename to software/base/src/test/java/org/apache/brooklyn/tasks/kubectl/ContainerEffectorTest.java
index cfe6047e97..cee55084e3 100644
--- a/software/base/src/test/java/org/apache/brooklyn/tasks/kubectl/DockerEffectorTest.java
+++ b/software/base/src/test/java/org/apache/brooklyn/tasks/kubectl/ContainerEffectorTest.java
@@ -39,20 +39,20 @@ import static org.testng.Assert.assertTrue;
*/
@SuppressWarnings( "UnstableApiUsage")
@Test(groups = {"Live"})
-public class DockerEffectorTest extends BrooklynAppUnitTestSupport {
+public class ContainerEffectorTest extends BrooklynAppUnitTestSupport {
@Test
public void testEchoPerlCommand() {
final String message = ("hello " + Strings.makeRandomId(10)).toLowerCase();
ConfigBag parameters = ConfigBag.newInstance(ImmutableMap.of(
- DockerEffector.EFFECTOR_NAME, "test-container-effector",
+ ContainerEffector.EFFECTOR_NAME, "test-container-effector",
ContainerCommons.CONTAINER_IMAGE, "perl",
ContainerCommons.CONTAINER_IMAGE_PULL_POLICY, PullPolicy.IF_NOT_PRESENT,
ContainerCommons.COMMANDS, ImmutableList.of("/bin/bash", "-c", "echo " + message),
BrooklynConfigKeys.SHELL_ENVIRONMENT, ImmutableMap.<String, Object>of("HELLO", "WORLD")));
- DockerEffector initializer = new DockerEffector(parameters);
+ ContainerEffector initializer = new ContainerEffector(parameters);
TestEntity parentEntity = app.createAndManageChild(EntitySpec.create(TestEntity.class).addInitializer(initializer));
app.start(ImmutableList.of());
@@ -66,12 +66,12 @@ public class DockerEffectorTest extends BrooklynAppUnitTestSupport {
final String message = ("hello " + Strings.makeRandomId(10)).toLowerCase();
ConfigBag parameters = ConfigBag.newInstance(ImmutableMap.of(
- DockerEffector.EFFECTOR_NAME, "test-container-effector",
+ ContainerEffector.EFFECTOR_NAME, "test-container-effector",
ContainerCommons.CONTAINER_IMAGE, "bash",
ContainerCommons.ARGUMENTS, ImmutableList.of( "-c", "echo " + message),
BrooklynConfigKeys.SHELL_ENVIRONMENT, ImmutableMap.<String, Object>of("HELLO", "WORLD")));
- DockerEffector initializer = new DockerEffector(parameters);
+ ContainerEffector initializer = new ContainerEffector(parameters);
TestEntity parentEntity = app.createAndManageChild(EntitySpec.create(TestEntity.class).addInitializer(initializer));
app.start(ImmutableList.of());
@@ -83,12 +83,12 @@ public class DockerEffectorTest extends BrooklynAppUnitTestSupport {
@Test
public void testEchoVarBashCommand() {
ConfigBag parameters = ConfigBag.newInstance(ImmutableMap.of(
- DockerEffector.EFFECTOR_NAME, "test-container-effector",
+ ContainerEffector.EFFECTOR_NAME, "test-container-effector",
ContainerCommons.CONTAINER_IMAGE, "bash",
ContainerCommons.ARGUMENTS, ImmutableList.of( "-c", "echo $HELLO"),
BrooklynConfigKeys.SHELL_ENVIRONMENT, ImmutableMap.<String, Object>of("HELLO", "WORLD")));
- DockerEffector initializer = new DockerEffector(parameters);
+ ContainerEffector initializer = new ContainerEffector(parameters);
TestEntity parentEntity = app.createAndManageChild(EntitySpec.create(TestEntity.class).addInitializer(initializer));
app.start(ImmutableList.of());
@@ -100,12 +100,12 @@ public class DockerEffectorTest extends BrooklynAppUnitTestSupport {
@Test
public void testEchoMultiBashCommand() {
ConfigBag parameters = ConfigBag.newInstance(ImmutableMap.of(
- DockerEffector.EFFECTOR_NAME, "test-container-effector",
+ ContainerEffector.EFFECTOR_NAME, "test-container-effector",
ContainerCommons.CONTAINER_IMAGE, "bash",
ContainerCommons.ARGUMENTS, ImmutableList.of( "-c", "date; echo $HELLO"),
BrooklynConfigKeys.SHELL_ENVIRONMENT, ImmutableMap.<String, Object>of("HELLO", "WORLD")));
- DockerEffector initializer = new DockerEffector(parameters);
+ ContainerEffector initializer = new ContainerEffector(parameters);
TestEntity parentEntity = app.createAndManageChild(EntitySpec.create(TestEntity.class).addInitializer(initializer));
app.start(ImmutableList.of());
diff --git a/software/base/src/test/java/org/apache/brooklyn/tasks/kubectl/DockerSensorTest.java b/software/base/src/test/java/org/apache/brooklyn/tasks/kubectl/ContainerSensorTest.java
similarity index 83%
rename from software/base/src/test/java/org/apache/brooklyn/tasks/kubectl/DockerSensorTest.java
rename to software/base/src/test/java/org/apache/brooklyn/tasks/kubectl/ContainerSensorTest.java
index 00842fb5f0..638cb44a85 100644
--- a/software/base/src/test/java/org/apache/brooklyn/tasks/kubectl/DockerSensorTest.java
+++ b/software/base/src/test/java/org/apache/brooklyn/tasks/kubectl/ContainerSensorTest.java
@@ -32,7 +32,7 @@ import org.testng.annotations.Test;
@SuppressWarnings( "UnstableApiUsage")
@Test(groups = {"Live"})
-public class DockerSensorTest extends BrooklynAppUnitTestSupport {
+public class ContainerSensorTest extends BrooklynAppUnitTestSupport {
@Test
public void testEchoPerlCommand() {
@@ -42,10 +42,10 @@ public class DockerSensorTest extends BrooklynAppUnitTestSupport {
ContainerCommons.CONTAINER_IMAGE, "perl",
ContainerCommons.CONTAINER_IMAGE_PULL_POLICY, PullPolicy.IF_NOT_PRESENT,
ContainerCommons.COMMANDS, ImmutableList.of("/bin/bash", "-c","echo " + message) ,
- DockerSensor.SENSOR_PERIOD, "1s",
- DockerSensor.SENSOR_NAME, "test-echo-sensor"));
+ ContainerSensor.SENSOR_PERIOD, "1s",
+ ContainerSensor.SENSOR_NAME, "test-echo-sensor"));
- DockerSensor<String> initializer = new DockerSensor<>(parameters);
+ ContainerSensor<String> initializer = new ContainerSensor<>(parameters);
TestEntity parentEntity = app.createAndManageChild(EntitySpec.create(TestEntity.class).addInitializer(initializer));
app.start(ImmutableList.of());
@@ -61,10 +61,10 @@ public class DockerSensorTest extends BrooklynAppUnitTestSupport {
ContainerCommons.CONTAINER_IMAGE, "perl",
ContainerCommons.COMMANDS, ImmutableList.of("/bin/bash") ,
ContainerCommons.ARGUMENTS, ImmutableList.of("-c", "echo " + message) ,
- DockerSensor.SENSOR_PERIOD, "1s",
- DockerSensor.SENSOR_NAME, "test-echo-sensor"));
+ ContainerSensor.SENSOR_PERIOD, "1s",
+ ContainerSensor.SENSOR_NAME, "test-echo-sensor"));
- DockerSensor<String> initializer = new DockerSensor<>(parameters);
+ ContainerSensor<String> initializer = new ContainerSensor<>(parameters);
TestEntity parentEntity = app.createAndManageChild(EntitySpec.create(TestEntity.class).addInitializer(initializer));
app.start(ImmutableList.of());
@@ -79,10 +79,10 @@ public class DockerSensorTest extends BrooklynAppUnitTestSupport {
ConfigBag parameters = ConfigBag.newInstance(ImmutableMap.of(
ContainerCommons.CONTAINER_IMAGE, "perl",
ContainerCommons.ARGUMENTS, ImmutableList.of("echo", message) ,
- DockerSensor.SENSOR_PERIOD, "1s",
- DockerSensor.SENSOR_NAME, "test-echo-sensor"));
+ ContainerSensor.SENSOR_PERIOD, "1s",
+ ContainerSensor.SENSOR_NAME, "test-echo-sensor"));
- DockerSensor<String> initializer = new DockerSensor<>(parameters);
+ ContainerSensor<String> initializer = new ContainerSensor<>(parameters);
TestEntity parentEntity = app.createAndManageChild(EntitySpec.create(TestEntity.class).addInitializer(initializer));
app.start(ImmutableList.of());
@@ -97,10 +97,10 @@ public class DockerSensorTest extends BrooklynAppUnitTestSupport {
ConfigBag parameters = ConfigBag.newInstance(ImmutableMap.of(
ContainerCommons.CONTAINER_IMAGE, "bash",
ContainerCommons.ARGUMENTS, ImmutableList.of("-c", "echo " + message) ,
- DockerSensor.SENSOR_PERIOD, "1s",
- DockerSensor.SENSOR_NAME, "test-echo-sensor"));
+ ContainerSensor.SENSOR_PERIOD, "1s",
+ ContainerSensor.SENSOR_NAME, "test-echo-sensor"));
- DockerSensor<String> initializer = new DockerSensor<>(parameters);
+ ContainerSensor<String> initializer = new ContainerSensor<>(parameters);
TestEntity parentEntity = app.createAndManageChild(EntitySpec.create(TestEntity.class).addInitializer(initializer));
app.start(ImmutableList.of());
@@ -113,10 +113,10 @@ public class DockerSensorTest extends BrooklynAppUnitTestSupport {
ConfigBag parameters = ConfigBag.newInstance(ImmutableMap.of(
ContainerCommons.CONTAINER_IMAGE, "hashicorp/terraform",
ContainerCommons.COMMANDS, ImmutableList.of("terraform", "version" ),
- DockerSensor.SENSOR_PERIOD, "1s",
- DockerSensor.SENSOR_NAME, "tf-version-sensor"));
+ ContainerSensor.SENSOR_PERIOD, "1s",
+ ContainerSensor.SENSOR_NAME, "tf-version-sensor"));
- DockerSensor<String> initializer = new DockerSensor<>(parameters);
+ ContainerSensor<String> initializer = new ContainerSensor<>(parameters);
TestEntity parentEntity = app.createAndManageChild(EntitySpec.create(TestEntity.class).addInitializer(initializer));
app.start(ImmutableList.of());
diff --git a/software/base/src/test/java/org/apache/brooklyn/tasks/kubectl/DockerTaskTest.java b/software/base/src/test/java/org/apache/brooklyn/tasks/kubectl/ContainerTaskTest.java
similarity index 61%
rename from software/base/src/test/java/org/apache/brooklyn/tasks/kubectl/DockerTaskTest.java
rename to software/base/src/test/java/org/apache/brooklyn/tasks/kubectl/ContainerTaskTest.java
index e38520c76f..6786ca7043 100644
--- a/software/base/src/test/java/org/apache/brooklyn/tasks/kubectl/DockerTaskTest.java
+++ b/software/base/src/test/java/org/apache/brooklyn/tasks/kubectl/ContainerTaskTest.java
@@ -18,6 +18,7 @@
*/
package org.apache.brooklyn.tasks.kubectl;
+import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import org.apache.brooklyn.api.entity.EntitySpec;
@@ -30,7 +31,6 @@ import org.apache.brooklyn.test.Asserts;
import org.apache.brooklyn.util.collections.MutableList;
import org.apache.brooklyn.util.core.task.DynamicTasks;
import org.apache.brooklyn.util.time.Duration;
-import org.testng.annotations.Ignore;
import org.testng.annotations.Test;
import java.util.HashMap;
@@ -45,24 +45,24 @@ import static org.testng.AssertJUnit.assertTrue;
* These tests require Minikube installed locally
*/
@Test(groups = {"Live"})
-public class DockerTaskTest extends BrooklynAppUnitTestSupport {
+public class ContainerTaskTest extends BrooklynAppUnitTestSupport {
@Test
- public void testSuccessfulDockerTask() {
+ public void testSuccessfulContainerTask() {
TestEntity entity = app.createAndManageChild(EntitySpec.create(TestEntity.class));
Map<String,Object> configBag = new HashMap<>();
- configBag.put("name", "test-docker-task");
+ configBag.put("name", "test-container-task");
configBag.put("image", "perl");
configBag.put("commands", Lists.newArrayList("/bin/bash", "-c","echo 'hello test'"));
configBag.put("imagePullPolicy", PullPolicy.IF_NOT_PRESENT);
- Task<String> dockerTask = new ContainerTaskFactory.ConcreteContainerTaskFactory<String>()
- .summary("Running docker task")
+ Task<String> containerTask = new ContainerTaskFactory.ConcreteContainerTaskFactory<String>()
+ .summary("Running container task")
.configure(configBag)
.newTask();
- DynamicTasks.queueIfPossible(dockerTask).orSubmitAsync(entity);
- Object result = dockerTask.getUnchecked(Duration.of(5, TimeUnit.MINUTES));
+ DynamicTasks.queueIfPossible(containerTask).orSubmitAsync(entity);
+ Object result = containerTask.getUnchecked(Duration.of(5, TimeUnit.MINUTES));
List<String> res = (List<String>) result;
while(!res.isEmpty() && Iterables.getLast(res).matches("namespace .* deleted\\s*")) res = res.subList(0, res.size()-1);
@@ -70,25 +70,48 @@ public class DockerTaskTest extends BrooklynAppUnitTestSupport {
assertTrue(res2.startsWith("hello test"));
}
+ @Test
+ public void testSuccessfulContainerTerraformTask() {
+ TestEntity entity = app.createAndManageChild(EntitySpec.create(TestEntity.class));
+
+ Map<String,Object> configBag = new HashMap<>();
+ configBag.put("name", "test-container-task");
+ configBag.put("image", "hashicorp/terraform:latest");
+ configBag.put("commands", ImmutableList.of("terraform", "version" ));
+ configBag.put("imagePullPolicy", PullPolicy.IF_NOT_PRESENT);
+
+ Task<String> containerTask = new ContainerTaskFactory.ConcreteContainerTaskFactory<String>()
+ .summary("Running terraform-container task")
+ .configure(configBag)
+ .newTask();
+ DynamicTasks.queueIfPossible(containerTask).orSubmitAsync(entity);
+ Object result = containerTask.getUnchecked(Duration.of(5, TimeUnit.MINUTES));
+ List<String> res = (List<String>) result;
+ while(!res.isEmpty() && Iterables.getLast(res).matches("namespace .* deleted\\s*")) res = res.subList(0, res.size()-1);
+
+ String res2 = res.isEmpty() ? null : Iterables.getLast(res);
+ assertTrue(res2.startsWith("Terraform"));
+ }
+
@Test// tries to execute local command, wants it to fail, but even so best as integration
- public void testFailingDockerTask() {
+ public void testFailingContainerTask() {
TestEntity entity = app.createAndManageChild(EntitySpec.create(TestEntity.class));
List<String> commands = MutableList.of("/bin/bash", "-c","echo 'hello test' & exit 1");
Map<String,Object> configBag = new HashMap<>();
- configBag.put("name", "test-docker-task");
+ configBag.put("name", "test-container-task");
configBag.put("image", "perl");
configBag.put("commands", commands);
- Task<String> dockerTask = new ContainerTaskFactory.ConcreteContainerTaskFactory<String>()
+ Task<String> containerTask = new ContainerTaskFactory.ConcreteContainerTaskFactory<String>()
.summary("Running docker task")
.configure(configBag)
.newTask();
try {
- DynamicTasks.queueIfPossible(dockerTask).orSubmitAsync(entity).getTask().get();
- if (dockerTask instanceof HasTaskChildren) {
- for (Task<?> child: ((HasTaskChildren)dockerTask).getChildren()) {
+ DynamicTasks.queueIfPossible(containerTask).orSubmitAsync(entity).getTask().get();
+ if (containerTask instanceof HasTaskChildren) {
+ for (Task<?> child: ((HasTaskChildren)containerTask).getChildren()) {
if(child.getTags().contains(BrooklynTaskTags.INESSENTIAL_TASK) && child.isError()) {
child.get();
}
diff --git a/software/base/src/test/resources/org/apache/brooklyn/kubectl/sample-both.yaml b/software/base/src/test/resources/org/apache/brooklyn/kubectl/sample-both.yaml
index bb6b803c38..2c0cadecb8 100644
--- a/software/base/src/test/resources/org/apache/brooklyn/kubectl/sample-both.yaml
+++ b/software/base/src/test/resources/org/apache/brooklyn/kubectl/sample-both.yaml
@@ -19,17 +19,17 @@ name: container-both
services:
- type: 'org.apache.brooklyn.entity.stock.BasicStartable:1.1.0-SNAPSHOT'
brooklyn.initializers:
- - type: org.apache.brooklyn.tasks.kubectl.DockerEffector
+ - type: org.apache.brooklyn.tasks.kubectl.ContainerEffector
brooklyn.config:
shell.env:
- hello: hello-amp-docker-effector
+ hello: hello-amp-container-effector
image: bash
imagePullPolicy: NEVER
args:
- -c
- HELLO=$(ls -la) ; sleep 5 ; echo $HELLO ; echo $hello
- name: docker-effector
- - type: org.apache.brooklyn.tasks.kubectl.DockerSensor
+ name: container-effector
+ - type: org.apache.brooklyn.tasks.kubectl.ContainerSensor
brooklyn.config:
image: perl
imagePullPolicy: never
diff --git a/software/base/src/test/resources/org/apache/brooklyn/kubectl/sample-effector-dev.yaml b/software/base/src/test/resources/org/apache/brooklyn/kubectl/sample-effector-dev.yaml
index ab3c609894..af44ef4c56 100644
--- a/software/base/src/test/resources/org/apache/brooklyn/kubectl/sample-effector-dev.yaml
+++ b/software/base/src/test/resources/org/apache/brooklyn/kubectl/sample-effector-dev.yaml
@@ -19,10 +19,10 @@ name: container-effector-dev
services:
- type: 'org.apache.brooklyn.entity.stock.BasicStartable:1.1.0-SNAPSHOT'
brooklyn.initializers:
- - type: org.apache.brooklyn.tasks.kubectl.DockerEffector
+ - type: org.apache.brooklyn.tasks.kubectl.ContainerEffector
brooklyn.config:
- name: docker-effector
- description: Very simple Docker effector
+ name: container-effector
+ description: Very simple container effector
shell.env:
hello: world-amp
# hello: $brooklyn:external("hello", "hello")
diff --git a/software/base/src/test/resources/org/apache/brooklyn/kubectl/sample-effector.yaml b/software/base/src/test/resources/org/apache/brooklyn/kubectl/sample-effector.yaml
index ca9bede9a1..0722e71637 100644
--- a/software/base/src/test/resources/org/apache/brooklyn/kubectl/sample-effector.yaml
+++ b/software/base/src/test/resources/org/apache/brooklyn/kubectl/sample-effector.yaml
@@ -19,10 +19,10 @@ name: container-effector
services:
- type: 'org.apache.brooklyn.entity.stock.BasicStartable:1.1.0-SNAPSHOT'
brooklyn.initializers:
- - type: org.apache.brooklyn.tasks.kubectl.DockerEffector
+ - type: org.apache.brooklyn.tasks.kubectl.ContainerEffector
brooklyn.config:
- name: docker-effector
- description: Very simple Docker effector
+ name: container-effector
+ description: Very simple container effector
shell.env:
hello: world-amp
image: perl
diff --git a/software/base/src/test/resources/org/apache/brooklyn/kubectl/sample-sensor.yaml b/software/base/src/test/resources/org/apache/brooklyn/kubectl/sample-sensor.yaml
index cc02ecf047..eef1ebd01a 100644
--- a/software/base/src/test/resources/org/apache/brooklyn/kubectl/sample-sensor.yaml
+++ b/software/base/src/test/resources/org/apache/brooklyn/kubectl/sample-sensor.yaml
@@ -19,7 +19,7 @@ name: container-sensor
services:
- type: 'org.apache.brooklyn.entity.stock.BasicStartable:1.1.0-SNAPSHOT'
brooklyn.initializers:
- - type: org.apache.brooklyn.tasks.kubectl.DockerSensor
+ - type: org.apache.brooklyn.tasks.kubectl.ContainerSensor
brooklyn.config:
image: perl
commands: