summaryrefslogtreecommitdiff
path: root/lib/task.rb
diff options
context:
space:
mode:
authormguetlein <martin.guetlein@gmail.com>2011-02-08 16:58:32 +0100
committermguetlein <martin.guetlein@gmail.com>2011-02-08 16:58:32 +0100
commitf907690dc7d3f82c75a51718a3abfa7750dedaa5 (patch)
tree51a93ead9930a46101c2bcf5c5182b1391f396a1 /lib/task.rb
parentc37cc91893457cb91ddb2a32b9ac76090bd6c521 (diff)
set waiting_for in task
Diffstat (limited to 'lib/task.rb')
-rw-r--r--lib/task.rb13
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/task.rb b/lib/task.rb
index ca18d7b..742afb4 100644
--- a/lib/task.rb
+++ b/lib/task.rb
@@ -139,7 +139,7 @@ module OpenTox
end
def cancel
- RestClientWrapper.put(File.join(@uri,'Cancelled'))
+ RestClientWrapper.put(File.join(@uri,'Cancelled'),{:cannot_be => "empty"})
load_metadata
end
@@ -237,6 +237,7 @@ module OpenTox
# @param [optional,Numeric] dur seconds pausing before cheking again for completion
def wait_for_completion( waiting_task=nil, dur=0.3)
+ waiting_task.waiting_for(self.uri) if waiting_task
due_to_time = Time.new + DEFAULT_TASK_MAX_DURATION
LOGGER.debug "start waiting for task "+@uri.to_s+" at: "+Time.new.to_s+", waiting at least until "+due_to_time.to_s
@@ -252,7 +253,7 @@ module OpenTox
raise "max wait time exceeded ("+DEFAULT_TASK_MAX_DURATION.to_s+"sec), task: '"+@uri.to_s+"'"
end
end
-
+ waiting_task.waiting_for(nil) if waiting_task
LOGGER.debug "Task '"+@metadata[OT.hasStatus].to_s+"': "+@uri.to_s+", Result: "+@metadata[OT.resultURI].to_s
end
@@ -268,6 +269,10 @@ module OpenTox
end
end
+ def waiting_for(task_uri)
+ RestClientWrapper.put(File.join(@uri,'Running'),{:waiting_for => task_uri})
+ end
+
private
def check_state
begin
@@ -321,6 +326,10 @@ module OpenTox
end
end
+ def waiting_for(task_uri)
+ @task.waiting_for(task_uri)
+ end
+
def progress(pct)
raise "no numeric >= 0 and <= 100 : '"+pct.to_s+"'" unless pct.is_a?(Numeric) and pct>=0 and pct<=100
#puts "subtask := "+pct.to_s+" -> task := "+(@min + @delta * pct.to_f * 0.01).to_s