Don't create install dir in copy-pre-install-resources unless there are 
resources to install.

Lots of unit tests assume that no ssh connection will be established when 
testing localhot entities. The addition of copy-pre-install-resources breaks 
the tests if local ssh is not configured properly. Create install dir only if 
there are resources to copy (and therefore the test expects it will try to ssh).


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

Branch: refs/heads/master
Commit: 47c6f4e74f31a521e7cb0c4ff35f5f00ba489732
Parents: 2889611
Author: Svetoslav Neykov <[email protected]>
Authored: Mon Jun 1 17:50:43 2015 +0300
Committer: Svetoslav Neykov <[email protected]>
Committed: Tue Jun 2 19:48:40 2015 +0300

----------------------------------------------------------------------
 .../basic/AbstractSoftwareProcessDriver.java    | 38 ++++++++++----------
 1 file changed, 20 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/47c6f4e7/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessDriver.java
----------------------------------------------------------------------
diff --git 
a/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessDriver.java
 
b/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessDriver.java
index a5a4cde..9fa6950 100644
--- 
a/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessDriver.java
+++ 
b/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessDriver.java
@@ -31,7 +31,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import brooklyn.config.ConfigKey;
-import brooklyn.entity.software.SshEffectorTasks;
 import brooklyn.location.Location;
 import brooklyn.util.ResourceUtils;
 import brooklyn.util.collections.MutableMap;
@@ -296,27 +295,30 @@ public abstract class AbstractSoftwareProcessDriver 
implements SoftwareProcessDr
         // Ensure environment variables are not looked up here, otherwise 
sub-classes might
         // lookup port numbers and fail with ugly error if port is not set; 
better to wait
         // until in Entity's code (e.g. customize) where such checks are done 
explicitly.
-        createDirectory(getInstallDir(), "create install directory");
 
-        // TODO see comment in copyResource, that should be queued as a task 
like the above
-        // (better reporting in activities console)
-
-        if (files != null && files.size() > 0) {
-            for (String source : files.keySet()) {
-                String target = files.get(source);
-                String destination = Os.isAbsolutish(target) ? target : 
Os.mergePathsUnix(getInstallDir(), target);
-                copyResource(source, destination, true);
+        boolean hasAnythingToCopy = ((files != null && files.size() > 0) || 
(templates != null && templates.size() > 0));
+        if (hasAnythingToCopy) {
+            createDirectory(getInstallDir(), "create install directory");
+    
+            // TODO see comment in copyResource, that should be queued as a 
task like the above
+            // (better reporting in activities console)
+    
+            if (files != null && files.size() > 0) {
+                for (String source : files.keySet()) {
+                    String target = files.get(source);
+                    String destination = Os.isAbsolutish(target) ? target : 
Os.mergePathsUnix(getInstallDir(), target);
+                    copyResource(source, destination, true);
+                }
             }
-        }
-
-        if (templates != null && templates.size() > 0) {
-            for (String source : templates.keySet()) {
-                String target = templates.get(source);
-                String destination = Os.isAbsolutish(target) ? target : 
Os.mergePathsUnix(getInstallDir(), target);
-                copyTemplate(source, destination, true, MutableMap.<String, 
Object>of());
+    
+            if (templates != null && templates.size() > 0) {
+                for (String source : templates.keySet()) {
+                    String target = templates.get(source);
+                    String destination = Os.isAbsolutish(target) ? target : 
Os.mergePathsUnix(getInstallDir(), target);
+                    copyTemplate(source, destination, true, 
MutableMap.<String, Object>of());
+                }
             }
         }
-
     }
 
     protected abstract void createDirectory(String directoryName, String 
summaryForLogging);

Reply via email to