You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2022/07/04 09:12:23 UTC

[brooklyn-server] branch master updated: Use Duration instead of a String for timeout

This is an automated email from the ASF dual-hosted git repository.

heneveld 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 9f72bac6f3 Use Duration instead of a String for timeout
     new 4ff57648a8 Merge branch 'apache:master' into improvements/container-effector
9f72bac6f3 is described below

commit 9f72bac6f3b78ed24cc53eaebb1c9ddbcc57ddf6
Author: Mykola Mandra <my...@cloudsoft.io>
AuthorDate: Mon Jul 4 10:07:13 2022 +0100

    Use Duration instead of a String for timeout
    
    Signed-off-by: Mykola Mandra <my...@cloudsoft.io>
---
 .../java/org/apache/brooklyn/tasks/kubectl/ContainerCommons.java     | 5 +++--
 .../java/org/apache/brooklyn/tasks/kubectl/ContainerTaskFactory.java | 4 ++--
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/software/base/src/main/java/org/apache/brooklyn/tasks/kubectl/ContainerCommons.java b/software/base/src/main/java/org/apache/brooklyn/tasks/kubectl/ContainerCommons.java
index 6f4064759c..8e48ffedc7 100644
--- a/software/base/src/main/java/org/apache/brooklyn/tasks/kubectl/ContainerCommons.java
+++ b/software/base/src/main/java/org/apache/brooklyn/tasks/kubectl/ContainerCommons.java
@@ -24,6 +24,7 @@ import org.apache.brooklyn.config.ConfigKey;
 import org.apache.brooklyn.core.config.BasicConfigKey;
 import org.apache.brooklyn.core.config.ConfigKeys;
 import org.apache.brooklyn.core.config.SetConfigKey;
+import org.apache.brooklyn.util.time.Duration;
 
 import java.util.List;
 import java.util.Map;
@@ -41,7 +42,7 @@ public interface ContainerCommons {
     ConfigKey<List> COMMANDS = ConfigKeys.newConfigKey(List.class,"commands", "Commands to execute for container", Lists.newArrayList());
     ConfigKey<List> ARGUMENTS = ConfigKeys.newConfigKey(List.class,"args", "Arguments to execute for container", Lists.newArrayList());
 
-    ConfigKey<String> TIMEOUT = ConfigKeys.newStringConfigKey("timeout", "Container wait timeout", "5m");
+    ConfigKey<Duration> TIMEOUT = ConfigKeys.newConfigKey(Duration.class, "timeout", "Container wait timeout", Duration.minutes(1));
 
     ConfigKey<String> WORKING_DIR = ConfigKeys.newStringConfigKey("workingDir", "Location where the container commands are executed");
     BasicConfigKey<Map<String,String>> VOLUME_MOUNTS = SetConfigKey.builder(new TypeToken<Map<String,String>>()  {}, "volumeMounts")
@@ -53,7 +54,7 @@ public interface ContainerCommons {
     String NAMESPACE_CREATE_CMD = "kubectl create namespace brooklyn-%s"; // namespace name
     String NAMESPACE_SET_CMD = "kubectl config set-context --current --namespace=brooklyn-%s"; // namespace name
     String JOBS_CREATE_CMD = "kubectl apply -f %s"; // deployment.yaml absolute path
-    String JOBS_FEED_CMD = "kubectl wait --timeout=%s --for=condition=complete job/%s"; // timeout, containerName
+    String JOBS_FEED_CMD = "kubectl wait --timeout=%ds --for=condition=complete job/%s"; // timeout, containerName
     String JOBS_LOGS_CMD = "kubectl logs jobs/%s"; // containerName
     String NAMESPACE_DELETE_CMD = "kubectl delete namespace brooklyn-%s"; // namespace name
 
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 5c7c92756b..69ea212065 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
@@ -87,9 +87,9 @@ public class ContainerTaskFactory<T extends ContainerTaskFactory<T,RET>,RET>  im
                 .build();
 
 
-        final String timeout = EntityInitializers.resolve(configBag, TIMEOUT);
+        final long timeoutInSeconds = EntityInitializers.resolve(configBag, TIMEOUT).toSeconds();
         Task<String> runCommandsTask = buildKubeTask(configBag, "Submit job", String.format(JOBS_CREATE_CMD,jobYamlLocation)).asTask();
-        Task<String> waitTask =  buildKubeTask(configBag, "Wait For Completion", String.format(JOBS_FEED_CMD,timeout,containerName)).asTask();
+        Task<String> waitTask =  buildKubeTask(configBag, "Wait For Completion", String.format(JOBS_FEED_CMD,timeoutInSeconds,containerName)).asTask();
         if(!devMode) {
             // making these two inessential to insure proper namespace cleanup
             BrooklynTaskTags.addTagDynamically(runCommandsTask, BrooklynTaskTags.INESSENTIAL_TASK);