summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordavor <vorgrimmlerdavid@gmx.de>2012-03-20 13:47:56 +0100
committerdavor <vorgrimmlerdavid@gmx.de>2012-03-20 13:47:56 +0100
commita430f0cf2ece93f1359ac0fb2247fc6903804ed4 (patch)
tree3d8dc9a6d449e391215c49dd0bb6c821b7a907d3
parent5b53700d63ee55ed2e47331fa30723e873f204eb (diff)
parent6e395672a02d47218bc80769765d588437a12661 (diff)
Merge branch 'development' into jl
Conflicts: application.rb
-rw-r--r--application.rb21
1 files changed, 21 insertions, 0 deletions
diff --git a/application.rb b/application.rb
index 122361d..51ce621 100644
--- a/application.rb
+++ b/application.rb
@@ -401,6 +401,27 @@ end
+# Deletes datasets that have been created by a crossvalidatoin that does not exist anymore
+# (This can happen if a crossvalidation fails unexpectedly)
+delete '/cleanup' do
+ Dir["./#{@@datadir}/*json"].each do |file|
+ dataset = OpenTox::Dataset.from_json File.read(file)
+ if dataset.metadata[DC.creator] && dataset.metadata[DC.creator] =~ /crossvalidation\/[0-9]/
+ begin
+ cv = OpenTox::Crossvalidation.find(dataset.metadata[DC.creator],@subjectid)
+ raise unless cv
+ rescue
+ LOGGER.debug "deleting #{dataset.uri}, crossvalidation missing: #{dataset.metadata[DC.creator]}"
+ begin
+ dataset.delete @subjectid
+ rescue
+ end
+ end
+ end
+ end
+ "cleanup done"
+end
+
# Delete a dataset
# @return [text/plain] Status message
delete '/:id' do