From 87b0c11ceddd77a75c5e70a6fce7780b3b50c767 Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Mon, 4 Jan 2010 09:02:59 +0000
Subject: [PATCH] LMS-1267 refactoring  out checkPathCopier

SVN: 14121
---
 .../cisd/common/filesystem/FileUtilities.java | 31 +++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/common/source/java/ch/systemsx/cisd/common/filesystem/FileUtilities.java b/common/source/java/ch/systemsx/cisd/common/filesystem/FileUtilities.java
index 6e0c0a28140..02ce907d11e 100644
--- a/common/source/java/ch/systemsx/cisd/common/filesystem/FileUtilities.java
+++ b/common/source/java/ch/systemsx/cisd/common/filesystem/FileUtilities.java
@@ -51,6 +51,7 @@ import ch.systemsx.cisd.base.exceptions.InterruptedExceptionUnchecked;
 import ch.systemsx.cisd.common.concurrent.IActivityObserver;
 import ch.systemsx.cisd.common.concurrent.RecordingActivityObserverSensor;
 import ch.systemsx.cisd.common.concurrent.InactivityMonitor.IDescribingActivitySensor;
+import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException;
 import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException;
 import ch.systemsx.cisd.common.exceptions.UnknownLastChangedException;
 import ch.systemsx.cisd.common.logging.ISimpleLogger;
@@ -1502,4 +1503,34 @@ public final class FileUtilities
         return fileNames;
     }
 
+    /**
+     * Checks remote connections for specified path copier.
+     */
+    public static void checkPathCopier(IPathCopier copier, String host, String rsyncExecutableOnHostOrNull,
+            String rsyncModuleOrNull, String rsyncPasswordFileOrNull)
+    {
+        if (rsyncModuleOrNull != null)
+        {
+            final boolean connectionOK =
+                    copier.checkRsyncConnectionViaRsyncServer(host, rsyncModuleOrNull,
+                            rsyncPasswordFileOrNull);
+            if (connectionOK == false)
+            {
+                throw ConfigurationFailureException.fromTemplate(
+                        "Connection to rsync module %s::%s failed", host,
+                        rsyncModuleOrNull);
+            }
+        } else
+        {
+            final boolean connectionOK =
+                    copier.checkRsyncConnectionViaSsh(host, rsyncExecutableOnHostOrNull);
+            if (connectionOK == false)
+            {
+                throw ConfigurationFailureException.fromTemplate(
+                        "No good rsync executable found on host '%s'", host);
+            }
+        }
+    
+    }
+
 }
-- 
GitLab