From 085602bd456fc1cece88c16b174f41ff311cb643 Mon Sep 17 00:00:00 2001 From: Sinisa Veseli <sveseli@aps.anl.gov> Date: Thu, 12 Nov 2015 22:52:26 +0000 Subject: [PATCH] fixed gridftp plugin bug with relative directory --- src/python/dm/__init__.py | 2 +- .../dm/common/processing/plugins/fileTransferPlugin.py | 4 ++-- .../common/processing/plugins/gridftpFileTransferPlugin.py | 7 +++++-- .../impl/rsyncWithChecksumAndDeleteFileTransferPlugin.py | 2 +- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/python/dm/__init__.py b/src/python/dm/__init__.py index 5010cdf4..85013a64 100644 --- a/src/python/dm/__init__.py +++ b/src/python/dm/__init__.py @@ -1 +1 @@ -__version__ = "0.6 (2015.11.06)" +__version__ = "0.6 (2015.11.09)" diff --git a/src/python/dm/common/processing/plugins/fileTransferPlugin.py b/src/python/dm/common/processing/plugins/fileTransferPlugin.py index 0c230983..6c3d928c 100755 --- a/src/python/dm/common/processing/plugins/fileTransferPlugin.py +++ b/src/python/dm/common/processing/plugins/fileTransferPlugin.py @@ -26,7 +26,7 @@ class FileTransferPlugin(FileProcessor): storageHost = experiment.get('storageHost') storageDirectory = experiment.get('storageDirectory') - destUrl = self.getDestUrl(storageHost, storageDirectory) + destUrl = self.getDestUrl(filePath, dataDirectory, storageHost, storageDirectory) srcUrl = self.getSrcUrl(filePath, dataDirectory) self.start(srcUrl, destUrl) @@ -36,7 +36,7 @@ class FileTransferPlugin(FileProcessor): srcUrl = os.path.relpath(filePath, dataDirectory) return srcUrl - def getDestUrl(self, storageHost, storageDirectory): + def getDestUrl(self, filePath, dataDirectory, storageHost, storageDirectory): destUrl = '%s:%s' % (storageHost, storageDirectory) return destUrl diff --git a/src/python/dm/common/processing/plugins/gridftpFileTransferPlugin.py b/src/python/dm/common/processing/plugins/gridftpFileTransferPlugin.py index 6999ccdf..cfb3b5f4 100755 --- a/src/python/dm/common/processing/plugins/gridftpFileTransferPlugin.py +++ b/src/python/dm/common/processing/plugins/gridftpFileTransferPlugin.py @@ -1,5 +1,6 @@ #!/usr/bin/env python +import os from fileTransferPlugin import FileTransferPlugin class GridftpFileTransferPlugin(FileTransferPlugin): @@ -16,8 +17,10 @@ class GridftpFileTransferPlugin(FileTransferPlugin): srcUrl = '%s/%s' % (self.src,filePath) return srcUrl - def getDestUrl(self, storageHost, storageDirectory): - destUrl = 'sshftp://%s/%s/' % (storageHost, storageDirectory) + def getDestUrl(self, filePath, dataDirectory, storageHost, storageDirectory): + dirName = os.path.dirname(os.path.relpath(filePath, dataDirectory)).strip() + fileName = os.path.basename(filePath) + destUrl = 'sshftp://%s/%s/%s/%s' % (storageHost, storageDirectory, dirName, fileName) return destUrl ####################################################################### diff --git a/src/python/dm/daq_web_service/service/impl/rsyncWithChecksumAndDeleteFileTransferPlugin.py b/src/python/dm/daq_web_service/service/impl/rsyncWithChecksumAndDeleteFileTransferPlugin.py index 2db93d4a..f397d566 100755 --- a/src/python/dm/daq_web_service/service/impl/rsyncWithChecksumAndDeleteFileTransferPlugin.py +++ b/src/python/dm/daq_web_service/service/impl/rsyncWithChecksumAndDeleteFileTransferPlugin.py @@ -25,7 +25,7 @@ class RsyncWithChecksumAndDeleteFileTransferPlugin(FileTransferPlugin): experimentFilePath = fileInfo.get('experimentFilePath') storageHost = experiment.get('storageHost') storageDirectory = experiment.get('storageDirectory') - destUrl = self.getDestUrl(storageHost, storageDirectory) + destUrl = self.getDestUrl(filePath, dataDirectory, storageHost, storageDirectory) # Use relative path with respect to data directory as a source os.chdir(dataDirectory) srcUrl = self.getSrcUrl(filePath, dataDirectory) -- GitLab