summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.ch>2012-07-18 21:59:10 +0200
committerChristoph Helma <helma@in-silico.ch>2012-07-18 21:59:10 +0200
commit38b04ae22624bfa2f44f4ad598a0a40a193e7f44 (patch)
tree95bdd279f6ad6736ca993915fca41f8145e06803
parent03d8866d13857a8b18ecbb932c8dbb4f35b662f4 (diff)
error code parsing fixed
-rw-r--r--application.rb21
1 files changed, 12 insertions, 9 deletions
diff --git a/application.rb b/application.rb
index 77426d3..6cf815a 100644
--- a/application.rb
+++ b/application.rb
@@ -4,8 +4,8 @@ module OpenTox
helpers do
def status_code uri
- sparql = "SELECT ?o WHERE { GRAPH <#{uri}> { <#{uri}> <#{RDF::OT.hasStatus}> ?o. } }"
- status = Backend::FourStore.query(sparql,"text/uri-list")
+ sparql = "SELECT DISTINCT ?o WHERE { GRAPH <#{uri}> { <#{uri}> <#{RDF::OT.hasStatus}> ?o. } }"
+ status = Backend::FourStore.query(sparql,"text/uri-list")#.strip.to_s
case status
when "Completed"
200
@@ -15,8 +15,10 @@ module OpenTox
503
when "Error"
sparql = "SELECT ?code WHERE { GRAPH <#{uri}> { <#{uri}> <#{RDF::OT.error}> ?error. ?error <#{RDF::OT.statusCode}> ?code } }"
- code = Backend::FourStore.query(sparql,"text/uri-list").to_i
- code ? code : 500
+ code = Backend::FourStore.query(sparql,"text/uri-list")
+ code != "" ? code.to_i : 500
+ else
+ 500
end
end
@@ -25,14 +27,13 @@ module OpenTox
get '/task/:id/?' do
uri = uri("/task/#{params[:id]}")
code = status_code(uri)
- #code = 200
if @accept == "text/uri-list" # return resultURI
halt code, uri unless code == 200
sparql = "SELECT ?o WHERE { GRAPH <#{uri}> { <#{uri}> <#{RDF::OT.resultURI}> ?o. } }"
result_uri = Backend::FourStore.query(sparql,"text/uri-list").gsub(/"|'/,'').gsub(/\^\^.*$/,'')
halt code, result_uri
else
- rdf = FourStore.get(uri, request.env['HTTP_ACCEPT'])
+ rdf = FourStore.get(uri, @accept)
halt code, rdf
end
end
@@ -59,9 +60,11 @@ module OpenTox
sparql << "DELETE DATA { GRAPH <#{uri}> {<#{uri}> <#{RDF::OT.hasStatus}> \"Running\"}}"
sparql << "INSERT DATA { GRAPH <#{uri}> {<#{uri}> <#{RDF::OT.hasStatus}> \"Error\"}}"
sparql << "INSERT DATA { GRAPH <#{uri}> {<#{uri}> <#{RDF::OT.finished_at}> \"#{DateTime.now}\"}}"
- id = params[:errorReport].split("\n").first.sub(/^(_:\w+) .*/,'\1')
- params[:errorReport] += "\n<#{uri}> <#{RDF::OT.error}> #{id} ."
- Backend::FourStore.post uri, params[:errorReport], "text/plain" if params[:errorReport]
+ if params[:errorReport]
+ id = params[:errorReport].split("\n").first.sub(/^(_:\w+) .*/,'\1')
+ params[:errorReport] += "\n<#{uri}> <#{RDF::OT.error}> #{id} ."
+ Backend::FourStore.post uri, params[:errorReport], "text/plain"
+ end
#if task.waiting_for and task.waiting_for.uri?
# try cancelling the child task
else