Skip to content
Snippets Groups Projects
Commit 2ba0c75b authored by sveseli's avatar sveseli
Browse files

resolve issue with non-printable characters in proposal institution; resolve...

resolve issue with non-printable characters in proposal institution; resolve problem with target directory for gridftp plugin
parent 90decd96
No related branches found
No related tags found
No related merge requests found
__version__ = "1.0 (2017.01.26)" __version__ = "1.1 (2017.03.01)"
#!/usr/bin/env python #!/usr/bin/env python
import datetime import datetime
import string
from suds.wsse import Security from suds.wsse import Security
from suds.wsse import UsernameToken from suds.wsse import UsernameToken
...@@ -98,12 +99,15 @@ class BssClient: ...@@ -98,12 +99,15 @@ class BssClient:
'badge' : experimenter.badge, 'badge' : experimenter.badge,
'email' : experimenter.email, 'email' : experimenter.email,
'firstName' : experimenter.firstName, 'firstName' : experimenter.firstName,
'instId' : experimenter.instId,
'institution' : experimenter.institution,
'lastName' : experimenter.lastName 'lastName' : experimenter.lastName
}) })
if hasattr(experimenter, 'piFlag'): if hasattr(experimenter, 'piFlag'):
user['piFlag'] = experimenter.piFlag user['piFlag'] = experimenter.piFlag
if hasattr(experimenter, 'instId'):
user['instId'] = experimenter.instId
if hasattr(experimenter, 'institution'):
# Remove non-printable characters
user['institution'] = ''.join(filter(lambda x:x in string.printable, experimenter.institution))
experimenters.append(user) experimenters.append(user)
proposalInfo = ProposalInfo({ proposalInfo = ProposalInfo({
......
...@@ -76,13 +76,18 @@ class GridftpFileTransferPlugin(FileTransferPlugin): ...@@ -76,13 +76,18 @@ class GridftpFileTransferPlugin(FileTransferPlugin):
(scheme, host, port, replacementDirPath) = FtpUtility.parseFtpUrl(dataDirectory) (scheme, host, port, replacementDirPath) = FtpUtility.parseFtpUrl(dataDirectory)
self.logger.debug('Replacement dir path: %s' % replacementDirPath) self.logger.debug('Replacement dir path: %s' % replacementDirPath)
self.logger.debug('Number of original files: %s' % len(filePathsDict)) self.logger.debug('Number of original files: %s' % len(filePathsDict))
self.logger.debug('Looking for existing files in %s' % storageDirectory)
ftpUtility = SftpUtility(storageHost) ftpUtility = SftpUtility(storageHost)
destDirectory = storageDirectory destDirectory = storageDirectory
if targetDirectory: if targetDirectory:
destDirectory = '%s/%s/' % (destDirectory, targetDirectory) destDirectory = '%s/%s/' % (destDirectory, targetDirectory)
storageFilePathsDict = ftpUtility.getFiles(destDirectory, {}, replacementDirPath) storageFilePathsDict = {}
self.logger.debug('There are %s files in %s' % (len(storageFilePathsDict), destDirectory)) try:
self.logger.debug('Looking for existing files in %s' % destDirectory)
storageFilePathsDict = ftpUtility.getFiles(destDirectory, {}, replacementDirPath)
self.logger.debug('There are %s files in %s' % (len(storageFilePathsDict), destDirectory))
except Exception, ex:
self.logger.warn('Could not find existing files in %s, assuming there are none (got error: %s)' % (destDirectory,ex))
# Remove file from plugin dict if we do not need to transfer it # Remove file from plugin dict if we do not need to transfer it
for (filePath,storageFilePathDict) in storageFilePathsDict.items(): for (filePath,storageFilePathDict) in storageFilePathsDict.items():
filePathDict = filePathsDict.get(filePath) filePathDict = filePathsDict.get(filePath)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment