summaryrefslogtreecommitdiff
path: root/lib/task.rb
diff options
context:
space:
mode:
authormguetlein <martin.guetlein@gmail.com>2011-02-09 14:06:12 +0100
committermguetlein <martin.guetlein@gmail.com>2011-02-09 14:06:12 +0100
commit9a523f0fb2d5ee0058af5b5b82e01f39549f68fb (patch)
tree5e50e6630112c3b647ea13ba27c2c919772d155c /lib/task.rb
parentf907690dc7d3f82c75a51718a3abfa7750dedaa5 (diff)
fix rdf parsing to work with ambit dataset service with a&a, minor changes
Diffstat (limited to 'lib/task.rb')
-rw-r--r--lib/task.rb26
1 files changed, 9 insertions, 17 deletions
diff --git a/lib/task.rb b/lib/task.rb
index 742afb4..27dc1c2 100644
--- a/lib/task.rb
+++ b/lib/task.rb
@@ -94,23 +94,11 @@ module OpenTox
def self.from_yaml(yaml)
@metadata = YAML.load(yaml)
end
-
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
@@ -176,7 +164,7 @@ module OpenTox
end
def load_metadata
- if (CONFIG[:yaml_hosts].include?(URI.parse(uri).host))
+ if (CONFIG[:yaml_hosts].include?(URI.parse(@uri).host))
result = RestClientWrapper.get(@uri, {:accept => 'application/x-yaml'}, nil, false)
@metadata = YAML.load result.to_s
@http_code = result.code
@@ -184,6 +172,7 @@ module OpenTox
@metadata = Parser::Owl::Generic.new(@uri).load_metadata
@http_code = RestClientWrapper.get(uri, {:accept => 'application/rdf+xml'}, nil, false).code
end
+ raise "could not load task metadata for task "+@uri.to_s if @metadata==nil || @metadata.size==0
end
# create is private now, use OpenTox::Task.as_task
@@ -274,11 +263,14 @@ module OpenTox
end
private
+ VALID_TASK_STATES = ["Cancelled", "Completed", "Running", "Error"]
+
def check_state
begin
+ raise "illegal task state, invalid status: '"+@metadata[OT.hasStatus].to_s+"'" unless
+ @metadata[OT.hasStatus] unless VALID_TASK_STATES.include?(@metadata[OT.hasStatus])
raise "illegal task state, task is completed, resultURI is no URI: '"+@metadata[OT.resultURI].to_s+
"'" unless @metadata[OT.resultURI] and @metadata[OT.resultURI].to_s.uri? if completed?
-
if @http_code == 202
raise "#{@uri}: illegal task state, code is 202, but hasStatus is not Running: '"+@metadata[OT.hasStatus]+"'" unless running?
elsif @http_code == 201