summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.ch>2012-03-12 14:27:08 +0100
committerChristoph Helma <helma@in-silico.ch>2012-03-12 14:27:08 +0100
commit9cf20c9fa99bac82c8a4e455eb6c97ecb3f26776 (patch)
treee97abf097700bbc79651e3981ce8f89786039a49
parenta6d8cafba8142e9020a388f0b48366c3d0d40d72 (diff)
actor uri added
-rw-r--r--lib/error.rb9
-rw-r--r--lib/task.rb7
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