From 9249d7fbad992d6ab84d818d3ba2d9310fbfe1f7 Mon Sep 17 00:00:00 2001
From: Sinisa Veseli <sveseli@aps.anl.gov>
Date: Tue, 26 Jul 2016 18:06:35 +0000
Subject: [PATCH] attempt fix for occasional 'no such file' errors

---
 src/python/dm/common/utility/sftpUtility.py | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/src/python/dm/common/utility/sftpUtility.py b/src/python/dm/common/utility/sftpUtility.py
index 668bba64..f9f384e2 100755
--- a/src/python/dm/common/utility/sftpUtility.py
+++ b/src/python/dm/common/utility/sftpUtility.py
@@ -6,6 +6,7 @@ import stat
 import pysftp
 from dm.common.utility.timeUtility import TimeUtility
 from dm.common.utility.loggingManager import LoggingManager
+from dm.common.exceptions.commandFailed import CommandFailed
 import urlparse
 
 class SftpUtility:
@@ -90,8 +91,15 @@ class SftpUtility:
             if not self.sftpClient:
                 self.sftpClient = self.getSftpClient(self.host, self.port, self.username, self.password, self.privateKey)
             try:
-                md5Sum = self.sftpClient.execute('md5sum "%s"' % filePath)[0].split()[0]
+                #md5Sum = self.sftpClient.execute('md5sum "%s"' % filePath)[0].split()[0]
+                output = self.sftpClient.execute('md5sum "%s"' % filePath)[0]
+                if output.startswith("md5sum"):
+                    raise CommandFailed(output)
+                md5Sum = output.split()[0]
                 fileInfo['md5Sum'] = md5Sum
+            except CommandFailed, ex:
+                self.getLogger().error('Could not get md5sum for file %s: %s' % (filePath,ex))
+                raise
             except Exception, ex:
                 self.getLogger().error('Could not get md5sum for file %s: %s' % (filePath,ex))
                 self.closeConnection()
@@ -137,9 +145,9 @@ class SftpUtility:
 if __name__ == '__main__':
     #sftpUtility = SftpUtility('s1dserv', username='dmadmin', password='theKey12')
     sftpUtility = SftpUtility('s1dserv',privateKey='/home/beams/DMADMIN/.ssh/id_dsa')
-    files = sftpUtility.getFiles('/export/dm/test')
-    print files
+    #files = sftpUtility.getFiles('/export/dm/test')
+    #print files
     print sftpUtility.getMd5Sum('/export/dm/test/testfile01')
-    print 'Closing connection'
-    sftpUtility.closeConnection()
-    print sftpUtility.statFile('/export/dm/test/testfile01')
+    #print 'Closing connection'
+    #sftpUtility.closeConnection()
+    #print sftpUtility.statFile('/export/dm/test/testfile01')
-- 
GitLab