summaryrefslogtreecommitdiff
path: root/lib/task.rb
diff options
context:
space:
mode:
authormr <mr@mrautenberg.de>2011-02-09 17:12:51 +0100
committermr <mr@mrautenberg.de>2011-02-09 17:12:51 +0100
commit87fa8c2c74484d85da3f581929a603f31ecc92d0 (patch)
tree26daabea2fc48af522b439da69d42c7cc5ea3826 /lib/task.rb
parent4109a5256e953a9962a6e46acb074b2d7d8d2bd9 (diff)
task with subtask from mguetlein
Diffstat (limited to 'lib/task.rb')
-rw-r--r--lib/task.rb30
1 files changed, 14 insertions, 16 deletions
diff --git a/lib/task.rb b/lib/task.rb
index 1a684df..7aa3dd5 100644
--- a/lib/task.rb
+++ b/lib/task.rb
@@ -107,20 +107,9 @@ module OpenTox
def self.from_rdfxml(rdfxml)
- file = Tempfile.new("ot-rdfxml")
- file.puts rdfxml
- file.close
- file = "file://"+file.path
-
- # PENDING
- raise "Parse from file not working: what is the base-object-uri??? (omitted in triples)"
-
- parser = Parser::Owl::Generic.new file
- metadata = parser.load_metadata
- puts metadata.inspect
-
- task = Task.new(uri)
- task.add_metadata(metadata)
+ owl = OpenTox::Parser::Owl.from_rdf(rdfxml, OT.Task)
+ task = Task.new(owl.uri)
+ task.add_metadata(owl.metadata)
task
end
@@ -149,7 +138,7 @@ module OpenTox
end
def cancel
- RestClientWrapper.put(File.join(@uri,'Cancelled'))
+ RestClientWrapper.put(File.join(@uri,'Cancelled'),{:cannot_be => "empty"})
load_metadata
end
@@ -247,6 +236,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
@@ -262,7 +252,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
@@ -278,6 +268,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
@@ -332,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