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 46c0548abc better warnings if connection object cannot be instantiated
46c0548abc is described below

commit 46c0548abc596ec8e776cc7962cebf898ff91145
Author: Alex Heneveld <[email protected]>
AuthorDate: Mon Aug 7 09:13:49 2023 +0100

    better warnings if connection object cannot be instantiated
---
 .../ssh/internal/RemoteExecTaskConfigHelper.java   | 27 +++++++++++++++-------
 1 file changed, 19 insertions(+), 8 deletions(-)

diff --git 
a/core/src/main/java/org/apache/brooklyn/util/core/task/ssh/internal/RemoteExecTaskConfigHelper.java
 
b/core/src/main/java/org/apache/brooklyn/util/core/task/ssh/internal/RemoteExecTaskConfigHelper.java
index df235220b5..0219f576e3 100644
--- 
a/core/src/main/java/org/apache/brooklyn/util/core/task/ssh/internal/RemoteExecTaskConfigHelper.java
+++ 
b/core/src/main/java/org/apache/brooklyn/util/core/task/ssh/internal/RemoteExecTaskConfigHelper.java
@@ -40,6 +40,7 @@ import 
org.apache.brooklyn.util.core.internal.ssh.sshj.SshjTool;
 import org.apache.brooklyn.util.core.task.Tasks;
 import org.apache.brooklyn.util.core.task.ssh.ConnectionDefinition;
 import 
org.apache.brooklyn.util.core.task.system.internal.ExecWithLoggingHelpers;
+import org.apache.brooklyn.util.exceptions.Exceptions;
 import org.apache.brooklyn.util.net.Networking;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -47,6 +48,7 @@ import org.slf4j.LoggerFactory;
 import java.net.InetAddress;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.atomic.AtomicReference;
 
 public class RemoteExecTaskConfigHelper {
     public interface RemoteExecCapability {
@@ -139,14 +141,23 @@ public class RemoteExecTaskConfigHelper {
         }
 
         private Map<String, Object> resolveConnectionSettings() {
-            MutableMap<String, Object> config = MutableMap.of();
-            definition.getOther()
-                    .forEach((k, v) -> config.put(k, v instanceof WrappedValue 
? ((WrappedValue<Object>) v).get() : v));
-            config.put("user", 
WrappedValue.getMaybe(definition.getUser()).or(() -> 
System.getProperty("user.name")));
-            config.put("password",  
WrappedValue.get(definition.getPassword()));
-            config.put("host", WrappedValue.get(definition.getHost()));
-            config.put("port", 
WrappedValue.getMaybe(definition.getPort()).or("22"));
-            return config;
+            AtomicReference<String> s = new AtomicReference<>();
+            try {
+                MutableMap<String, Object> config = MutableMap.of();
+                definition.getOther()
+                        .forEach((k, v) -> {
+                            s.set(k);
+                            config.put(k, v instanceof WrappedValue ? 
((WrappedValue<Object>) v).get() : v);
+                        });
+                s.set("user"); config.put(s.get(), 
WrappedValue.getMaybe(definition.getUser()).or(() -> 
System.getProperty("user.name")));
+                s.set("password"); config.put(s.get(), 
WrappedValue.get(definition.getPassword()));
+                s.set("host"); config.put(s.get(), 
WrappedValue.get(definition.getHost()));
+                s.set("port"); config.put(s.get(), 
WrappedValue.getMaybe(definition.getPort()).or("22"));
+                return config;
+            } catch (Throwable e) {
+                Exceptions.propagateIfFatal(e);
+                throw new IllegalArgumentException("Connection settings could 
not be resolved (resolving '"+s+"')", e);
+            }
         }
 
         @Override

Reply via email to