Skip to content
Snippets Groups Projects
Commit 8adf3588 authored by Adam Laskowski's avatar Adam Laskowski
Browse files

BIS-1093: discarding hidden files in eln-lims-dropbox script

parent a997cb41
No related branches found
No related tags found
No related merge requests found
...@@ -32,8 +32,14 @@ def process(transaction): ...@@ -32,8 +32,14 @@ def process(transaction):
incoming = transaction.getIncoming(); incoming = transaction.getIncoming();
folderName = substring_up_to_hash(incoming.getName()); folderName = substring_up_to_hash(incoming.getName());
emailAddress = None emailAddress = None
discardHiddenFiles = transaction.getGlobalState().getThreadParameters().discardHiddenFiles()
try: try:
if discardHiddenFiles:
hiddenFiles = getHiddenFiles(incoming)
for filePath in hiddenFiles:
deleteFiles(filePath)
if not folderName.startswith('.'): if not folderName.startswith('.'):
datasetInfo = folderName.split("+"); datasetInfo = folderName.split("+");
entityKind = None; entityKind = None;
...@@ -89,7 +95,7 @@ def process(transaction): ...@@ -89,7 +95,7 @@ def process(transaction):
raise UserFailureException(INVALID_FORMAT_ERROR_MESSAGE + ":" + FAILED_TO_PARSE_SAMPLE_ERROR_MESSAGE); raise UserFailureException(INVALID_FORMAT_ERROR_MESSAGE + ":" + FAILED_TO_PARSE_SAMPLE_ERROR_MESSAGE);
hiddenFiles = getHiddenFiles(incoming) hiddenFiles = getHiddenFiles(incoming)
if hiddenFiles: if hiddenFiles and not discardHiddenFiles:
reportIssue(HIDDEN_FILES_ERROR_MESSAGE + ":" + FAILED_TO_PARSE_SAMPLE_ERROR_MESSAGE + ":\n" + pathListToStr(hiddenFiles)) reportIssue(HIDDEN_FILES_ERROR_MESSAGE + ":" + FAILED_TO_PARSE_SAMPLE_ERROR_MESSAGE + ":\n" + pathListToStr(hiddenFiles))
illegalFiles = getIllegalFiles(incoming) illegalFiles = getIllegalFiles(incoming)
...@@ -126,7 +132,7 @@ def process(transaction): ...@@ -126,7 +132,7 @@ def process(transaction):
raise UserFailureException(INVALID_FORMAT_ERROR_MESSAGE + ":" + FAILED_TO_PARSE_EXPERIMENT_ERROR_MESSAGE); raise UserFailureException(INVALID_FORMAT_ERROR_MESSAGE + ":" + FAILED_TO_PARSE_EXPERIMENT_ERROR_MESSAGE);
hiddenFiles = getHiddenFiles(incoming) hiddenFiles = getHiddenFiles(incoming)
if hiddenFiles: if hiddenFiles and not discardHiddenFiles:
reportIssue(HIDDEN_FILES_ERROR_MESSAGE + ":" + FAILED_TO_PARSE_EXPERIMENT_ERROR_MESSAGE + ":\n" + pathListToStr(hiddenFiles)) reportIssue(HIDDEN_FILES_ERROR_MESSAGE + ":" + FAILED_TO_PARSE_EXPERIMENT_ERROR_MESSAGE + ":\n" + pathListToStr(hiddenFiles))
illegalFiles = getIllegalFiles(incoming) illegalFiles = getIllegalFiles(incoming)
...@@ -188,7 +194,7 @@ def process(transaction): ...@@ -188,7 +194,7 @@ def process(transaction):
try: try:
for inputFile in filesInFolder: for inputFile in filesInFolder:
Files.move(inputFile.toPath(), Paths.get(tmpPath, inputFile.getName()), Files.move(inputFile.toPath(), Paths.get(tmpPath, inputFile.getName()),
StandardCopyOption.ATOMIC_MOVE); StandardCopyOption.ATOMIC_MOVE);
transaction.moveFile(tmpDir.getAbsolutePath(), dataSet); transaction.moveFile(tmpDir.getAbsolutePath(), dataSet);
finally: finally:
if tmpDir is not None: if tmpDir is not None:
...@@ -252,6 +258,17 @@ def getHiddenFiles(folder): ...@@ -252,6 +258,17 @@ def getHiddenFiles(folder):
return result return result
def deleteFiles(stringPath):
file = File(stringPath)
if not file.exists():
return
listFiles = file.listFiles()
if not listFiles is None:
for child in listFiles:
deleteFiles(str(child.getAbsolutePath()))
Files.delete(Paths.get(stringPath))
def getIllegalFiles(folder): def getIllegalFiles(folder):
result = [] result = []
if folder.getName() in ILLEGAL_FILES: if folder.getName() in ILLEGAL_FILES:
......
...@@ -7,3 +7,4 @@ incoming-share-id = ${default-incoming-share-id:1} ...@@ -7,3 +7,4 @@ incoming-share-id = ${default-incoming-share-id:1}
incoming-share-minimum-free-space-in-gb = ${default-incoming-share-minimum-free-space-in-gb:1} incoming-share-minimum-free-space-in-gb = ${default-incoming-share-minimum-free-space-in-gb:1}
h5-folders = ${dataset-uploader.h5-folders:false} h5-folders = ${dataset-uploader.h5-folders:false}
h5ar-folders = ${dataset-uploader.h5ar-folders:true} h5ar-folders = ${dataset-uploader.h5ar-folders:true}
discard-hidden-files = true
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