From 792de68f0b3e10379fc69a9565747d978fb6f4be Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Thu, 22 Mar 2012 12:55:18 +0100 Subject: improved error reporting for failed system calls --- lib/overwrite.rb | 8 +------- lib/task.rb | 11 +++++++---- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/lib/overwrite.rb b/lib/overwrite.rb index d99e5a2..4ba6811 100644 --- a/lib/overwrite.rb +++ b/lib/overwrite.rb @@ -68,17 +68,11 @@ module Kernel stdout = stdout_stream.read stderr = stderr_stream.read end - internal_server_error stdout + stderr if !status.success? + internal_server_error "`" + cmd + "` failed.\n" + stdout + stderr if !status.success? return stdout rescue internal_server_error $!.message end - alias_method :system!, :system - - def system cmd - `#{cmd}` - return true - end end diff --git a/lib/task.rb b/lib/task.rb index f19a918..6923e28 100644 --- a/lib/task.rb +++ b/lib/task.rb @@ -8,14 +8,12 @@ module OpenTox def self.create service_uri, params={} - # TODO: run observer in same process? task = Task.new RestClientWrapper.post(service_uri,params).chomp pid = fork do begin result_uri = yield task.completed result_uri rescue - puts $!.report.to_yaml RestClientWrapper.put(File.join(task.uri,'Error'),{:errorReport => $!.report.to_yaml}) if $!.respond_to? :report task.kill end @@ -80,7 +78,7 @@ module OpenTox end - # get only header for ststus requests + # get only header for status requests def running? RestClientWrapper.head(@uri).code == 202 end @@ -98,6 +96,11 @@ module OpenTox code >= 400 and code != 503 end + def errorReport + # TODO: fix rdf output at task service + not_implemented_error "RDF output of errorReports has to be fixed at task service" + end + [:hasStatus, :resultURI].each do |method| define_method method do response = self.[](RDF::OT[method]) @@ -106,6 +109,6 @@ module OpenTox end end - #TODO: subtasks + #TODO: subtasks (only for progress) end -- cgit v1.2.3