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