Repository: incubator-brooklyn
Updated Branches:
  refs/heads/master adc0ba61f -> 8c5dc9ddf


fix bug where missing script dir causes null script dir explicitly set in ssh 
tool

introduced in #476


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/62a285c5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/62a285c5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/62a285c5

Branch: refs/heads/master
Commit: 62a285c50541ce8ccb4a51c2a3e4fb31e0eca48c
Parents: adc0ba6
Author: Alex Heneveld <[email protected]>
Authored: Sun Feb 1 00:30:32 2015 +0000
Committer: Alex Heneveld <[email protected]>
Committed: Sun Feb 1 00:30:32 2015 +0000

----------------------------------------------------------------------
 .../brooklyn/location/basic/SshMachineLocation.java  |  2 +-
 .../basic/SshMachineLocationIntegrationTest.java     | 15 +++++++++++++++
 .../brooklyn/location/jclouds/JcloudsLocation.java   |  2 +-
 3 files changed, 17 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/62a285c5/core/src/main/java/brooklyn/location/basic/SshMachineLocation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/location/basic/SshMachineLocation.java 
b/core/src/main/java/brooklyn/location/basic/SshMachineLocation.java
index 9482d02..172b58c 100644
--- a/core/src/main/java/brooklyn/location/basic/SshMachineLocation.java
+++ b/core/src/main/java/brooklyn/location/basic/SshMachineLocation.java
@@ -647,7 +647,7 @@ public class SshMachineLocation extends AbstractLocation 
implements MachineLocat
     private Map<String, Object> 
augmentPropertiesWithSshConfigGivenToProps(Map<String, ?> props) {
         Map<String,Object> augmentedProps = Maps.newHashMap(props);
         for (ConfigKey<?> config : SSH_CONFIG_GIVEN_TO_PROPS) {
-            if (!props.containsKey(config.getName()))
+            if (!augmentedProps.containsKey(config.getName()) && 
hasConfig(config, true))
                 augmentedProps.put(config.getName(), getConfig(config));
         }
         return augmentedProps;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/62a285c5/core/src/test/java/brooklyn/location/basic/SshMachineLocationIntegrationTest.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/brooklyn/location/basic/SshMachineLocationIntegrationTest.java
 
b/core/src/test/java/brooklyn/location/basic/SshMachineLocationIntegrationTest.java
index 63f5902..9c85e95 100644
--- 
a/core/src/test/java/brooklyn/location/basic/SshMachineLocationIntegrationTest.java
+++ 
b/core/src/test/java/brooklyn/location/basic/SshMachineLocationIntegrationTest.java
@@ -114,4 +114,19 @@ public class SshMachineLocationIntegrationTest {
         int rc = sm.execScript("Test script directory execution", 
ImmutableList.of(command));
         assertEquals(rc, 0);
     }
+    
+    @Test(groups = "Integration")
+    public void testMissingLocationScriptDirIsAlsoOkay() throws Exception {
+        final String command = "echo hello";
+
+        Map<String, Object> locationConfig = ImmutableMap.<String, 
Object>builder()
+//                .put(SshMachineLocation.SCRIPT_DIR.getName(), "/var/tmp")
+                .build();
+
+        LocalhostMachineProvisioningLocation lhp = 
(LocalhostMachineProvisioningLocation) 
mgmt.getLocationRegistry().resolve("localhost", locationConfig);
+        SshMachineLocation sm = lhp.obtain();
+
+        int rc = sm.execScript("Test script directory execution", 
ImmutableList.of(command));
+        assertEquals(rc, 0);
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/62a285c5/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsLocation.java
----------------------------------------------------------------------
diff --git 
a/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsLocation.java
 
b/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsLocation.java
index 7abbaca..37272d4 100644
--- 
a/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsLocation.java
+++ 
b/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsLocation.java
@@ -1694,7 +1694,7 @@ public class JcloudsLocation extends 
AbstractCloudMachineProvisioningLocation im
                     .configureIfNotNull(CLOUD_REGION_ID, nodeRegion)
                     .configure(CALLER_CONTEXT, setup.get(CALLER_CONTEXT))
                     .configure(SshMachineLocation.DETECT_MACHINE_DETAILS, 
setup.get(SshMachineLocation.DETECT_MACHINE_DETAILS))
-                    .configure(SshMachineLocation.SCRIPT_DIR, 
setup.get(SshMachineLocation.SCRIPT_DIR))
+                    .configureIfNotNull(SshMachineLocation.SCRIPT_DIR, 
setup.get(SshMachineLocation.SCRIPT_DIR))
                     .configureIfNotNull(USE_PORT_FORWARDING, 
setup.get(USE_PORT_FORWARDING))
                     .configureIfNotNull(PORT_FORWARDER, 
setup.get(PORT_FORWARDER))
                     .configureIfNotNull(PORT_FORWARDING_MANAGER, 
setup.get(PORT_FORWARDING_MANAGER)));

Reply via email to