You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltacloud.apache.org by jv...@redhat.com on 2012/12/04 00:03:46 UTC

DTACLOUD-379 add handling to omit backtrace

Adds exception override to avoid producing traceback for RHEVm error when
to remove an Image currently in use by an Instance. 

[PATCH] DTACLOUD-379 - add handling to omit backtrace

Posted by jv...@redhat.com.
From: Joe VLcek <jv...@redhat.com>

---
 server/lib/deltacloud/drivers/exceptions.rb         | 7 +++++--
 server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb | 4 ++++
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/server/lib/deltacloud/drivers/exceptions.rb b/server/lib/deltacloud/drivers/exceptions.rb
index 7bbf510..ff5409e 100644
--- a/server/lib/deltacloud/drivers/exceptions.rb
+++ b/server/lib/deltacloud/drivers/exceptions.rb
@@ -73,9 +73,10 @@ module Deltacloud
     end
 
     class BackendError < DeltacloudException
-      def initialize(e, message=nil)
+      def initialize(e, message=nil, no_backtrace=false)
         message ||= e.message
-        super(500, e.class.name, message, e.backtrace, message)
+        backtrace = e.backtrace unless no_backtrace
+        super(500, e.class.name, message, backtrace, message)
       end
     end
 
@@ -148,6 +149,7 @@ module Deltacloud
       end
 
       def handler(e)
+        no_backtrace = true
         return @handler if @handler
         case @status
           when 202 then AcceptedButNotCompletedError.new(e, @message)
@@ -161,6 +163,7 @@ module Deltacloud
           when 501 then NotImplemented.new(e, @message)
           when 502 then ProviderError.new(e, @message)
           when 504 then ProviderTimeout.new(e, @message)
+          when 599 then BackendError.new(e, @message, no_backtrace)
         end
       end
 
diff --git a/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb b/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
index 37e6622..b9c7862 100644
--- a/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
+++ b/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
@@ -325,6 +325,10 @@ class RhevmDriver < Deltacloud::BaseDriver
 
   exceptions do
 
+    on /Cannot delete Template. Template is being used/ do
+      status 599
+    end
+
     on /Unauthorized/ do
       status 401
     end
-- 
1.7.11.7