You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by lu...@apache.org on 2012/10/04 19:25:24 UTC
git commit: Core: Make exceptions in console shorter (DTACLOUD-333)
Updated Branches:
refs/heads/master 633b9b958 -> ae7a11b93
Core: Make exceptions in console shorter (DTACLOUD-333)
* Fixed 100+ lines exceptions in console
* Use ExceptionHandler to log exceptions
* Fix case when exception is raised in CIMI and client
use 'text/html' media type (browsers...)
Signed-off-by: Michal fojtik <mf...@redhat.com>
TrackedAt: http://tracker.deltacloud.org/patch/a39d42cd708fb922feeed368e6de93cd2617ac93
Project: http://git-wip-us.apache.org/repos/asf/deltacloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltacloud/commit/ae7a11b9
Tree: http://git-wip-us.apache.org/repos/asf/deltacloud/tree/ae7a11b9
Diff: http://git-wip-us.apache.org/repos/asf/deltacloud/diff/ae7a11b9
Branch: refs/heads/master
Commit: ae7a11b93488d1d894888a7def75f585d5b67c18
Parents: 633b9b9
Author: Michal Fojtik <mf...@redhat.com>
Authored: Thu Oct 4 13:36:46 2012 +0200
Committer: David Lutterkort <lu...@redhat.com>
Committed: Thu Oct 4 10:25:13 2012 -0700
----------------------------------------------------------------------
server/lib/cimi/collections/base.rb | 5 +--
server/lib/cimi/server.rb | 4 +++
server/lib/deltacloud/collections/base.rb | 4 +--
server/lib/deltacloud/helpers/deltacloud_helper.rb | 16 ++++++++++++++-
4 files changed, 22 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/ae7a11b9/server/lib/cimi/collections/base.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/collections/base.rb b/server/lib/cimi/collections/base.rb
index ed61d17..c1fad3d 100644
--- a/server/lib/cimi/collections/base.rb
+++ b/server/lib/cimi/collections/base.rb
@@ -30,10 +30,9 @@ module CIMI::Collections
register Rack::RespondTo
- enable :xhtml
- enable :dump_errors
- enable :show_errors
+ enable :method_override
disable :show_exceptions
+ disable :dump_errors
set :config, Deltacloud[:cimi]
set :root_url, config.root_url
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/ae7a11b9/server/lib/cimi/server.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/server.rb b/server/lib/cimi/server.rb
index 86aaf3c..f0445f8 100644
--- a/server/lib/cimi/server.rb
+++ b/server/lib/cimi/server.rb
@@ -43,6 +43,10 @@ module CIMI
include CIMI::Collections
include CIMI::Model
+ enable :method_override
+ disable :show_exceptions
+ disable :dump_errors
+
helpers Sinatra::Rabbit::URLFor(CIMI.collections)
get '/' do
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/ae7a11b9/server/lib/deltacloud/collections/base.rb
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/collections/base.rb b/server/lib/deltacloud/collections/base.rb
index d5182ca..203b558 100644
--- a/server/lib/deltacloud/collections/base.rb
+++ b/server/lib/deltacloud/collections/base.rb
@@ -25,11 +25,9 @@ module Deltacloud::Collections
helpers Sinatra::Rabbit::URLHelper
register Rack::RespondTo
- enable :xhtml
- enable :dump_errors
- enable :show_errors
enable :method_override
disable :show_exceptions
+ disable :dump_errors
set :config, Deltacloud[:deltacloud]
set :root_url, config.root_url
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/ae7a11b9/server/lib/deltacloud/helpers/deltacloud_helper.rb
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/helpers/deltacloud_helper.rb b/server/lib/deltacloud/helpers/deltacloud_helper.rb
index 36205e4..69d74a3 100644
--- a/server/lib/deltacloud/helpers/deltacloud_helper.rb
+++ b/server/lib/deltacloud/helpers/deltacloud_helper.rb
@@ -89,10 +89,24 @@ module Deltacloud::Helpers
@error, @code = (request.env['sinatra.error'] || @exception), code
@code = 500 if not @code and not @error.class.method_defined? :code
response.status = @code || @error.code
+ log = Deltacloud::ExceptionHandler.logger
+ message = @error.respond_to?(:message) ? @error.message : translate_error_code(@code)
+ backtrace = (@error.respond_to?(:backtrace) and !@error.backtrace.nil?) ?
+ "\n\n#{@error.backtrace[0..10].join("\n")}\n\n" : ''
+ log.error "[#{@code}] #{[@error.class.to_s, message].join(':')}#{backtrace}"
respond_to do |format|
format.xml { haml :"errors/#{@code || @error.code}", :layout => false }
format.json { xml_to_json("errors/#{@code || @error.code}") }
- format.html { haml :"errors/#{@code || @error.code}", :layout => :error }
+ format.html {
+ begin
+ haml :"errors/#{@code || @error.code}", :layout => :error
+ rescue RuntimeError
+ # If the HTML representation of error is missing, then try to report
+ # it through XML
+ @media_type=:xml
+ haml :"errors/#{@code || @error.code}", :layout => false
+ end
+ }
end
end