From 9cf20c9fa99bac82c8a4e455eb6c97ecb3f26776 Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Mon, 12 Mar 2012 14:27:08 +0100 Subject: actor uri added --- lib/error.rb | 9 +++++---- lib/task.rb | 7 +++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/error.rb b/lib/error.rb index 7fc2461..e3329be 100644 --- a/lib/error.rb +++ b/lib/error.rb @@ -47,7 +47,6 @@ module OpenTox # define global methods for raising errors, eg. bad_request_error Object.send(:define_method, klass.underscore.to_sym) do |message| defined?(@uri) ? uri = @uri : uri=nil - # TODO: insert uri from sinatra raise c, message, uri end end @@ -68,14 +67,16 @@ module OpenTox @http_code = http_code #@report = report#.to_yaml @report = {} - @report[RDF::OT.actor] = error.uri - @report[RDF::OT.message] = error.message + @report[RDF::OT.actor] = error.uri.to_s + @report[RDF::OT.message] = error.message.to_s @report[RDF::OT.statusCode] = @http_code @report[RDF::OT.errorCode] = error.class.to_s @report[RDF::OT.errorDetails] = caller.collect{|line| line unless line =~ /#{File.dirname(__FILE__)}/}.compact.join("\n") @report[RDF::OT.errorDetails] += "REST paramenters:\n#{error.request.args.inspect}" if defined? error.request - @report[RDF::OT.message] += "\n" + error.response.body if defined? error.response + @report[RDF::OT.message] += "\n" + error.response.body.to_s if defined? error.response # TODO fix Error cause + # should point to another errorReport, but errorReports do not have URIs + # create a separate service? #report[RDF::OT.errorCause] = @report if defined?(@report) end diff --git a/lib/task.rb b/lib/task.rb index 0562dc7..3f1b691 100644 --- a/lib/task.rb +++ b/lib/task.rb @@ -1,4 +1,3 @@ -require File.join(File.dirname(__FILE__),'error') DEFAULT_TASK_MAX_DURATION = 36000 module OpenTox @@ -9,7 +8,6 @@ module OpenTox def self.create service_uri, params={} - # TODO set/enforce request uri # TODO: run observer in same process? task = Task.new RestClientWrapper.post(service_uri,params).chomp pid = fork do @@ -19,7 +17,6 @@ module OpenTox rescue RestClientWrapper.put(File.join(task.uri,'Error'),{:errorReport => $!.report.to_yaml}) task.kill - #raise $! end end Process.detach(pid) @@ -43,7 +40,7 @@ module OpenTox def kill Process.kill(9,@pid) Process.kill(9,@observer_pid) - rescue # no need to raise an exeption if processes are not running + rescue # no need to raise an exeption if processes are not running end def description @@ -91,6 +88,8 @@ module OpenTox RestClientWrapper.head(@uri).code == 200 end + # TODO: add queued? + def error? code = RestClientWrapper.head(@uri).code code >= 400 and code != 503 -- cgit v1.2.3