From: Michal Fojtik <[email protected]>
---
server/lib/deltacloud/base_driver/exceptions.rb | 3 ++
.../lib/deltacloud/drivers/rhevm/rhevm_driver.rb | 23 ++++++++++++-------
server/tests/drivers/mock/api_test.rb | 4 +-
3 files changed, 19 insertions(+), 11 deletions(-)
diff --git a/server/lib/deltacloud/base_driver/exceptions.rb
b/server/lib/deltacloud/base_driver/exceptions.rb
index e7b6ac8..38f18d2 100644
--- a/server/lib/deltacloud/base_driver/exceptions.rb
+++ b/server/lib/deltacloud/base_driver/exceptions.rb
@@ -28,6 +28,9 @@ module Deltacloud
end
class BackendError < DeltacloudException
+
+ attr_accessor :cause
+
def initialize(e, details)
super(500, e.class.name, e.message, e.backtrace, details)
end
diff --git a/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
b/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
index fbaaf64..7aa6a2a 100644
--- a/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
+++ b/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
@@ -277,15 +277,20 @@ class RHEVMDriver < Deltacloud::BaseDriver
)
end
- # Disabling this error catching will lead to more verbose messages
- # on console (eg. response from RHEV-M API (so far I didn't figure our
- # how to pass those message to our exception handling tool)
- def catched_exceptions_list
- {
- :auth => [RestClient::Unauthorized],
- :error => [RestClient::InternalServerError],
- :glob => [ /(RestClient|RHEVM)::(\w+)/ ]
- }
+ exceptions do
+
+ on /RestClient::Unauthorized/ do
+ status 401
+ end
+
+ on /RestClient::InternalServerError/ do
+ status 502
+ end
+
+ on /(RestClient|RHEVM)/ do
+ status 500
+ end
+
end
end
diff --git a/server/tests/drivers/mock/api_test.rb
b/server/tests/drivers/mock/api_test.rb
index 0d86ef5..5767103 100644
--- a/server/tests/drivers/mock/api_test.rb
+++ b/server/tests/drivers/mock/api_test.rb
@@ -69,7 +69,7 @@ module DeltacloudUnitTest
with_provider("storage") do
get_auth_url '/api/instances'
- last_response.status.should == 404
+ last_response.status.should == 403
end
end
@@ -79,7 +79,7 @@ module DeltacloudUnitTest
with_provider("storage") do
get_url '/api/docs/instances'
- last_response.status.should == 404
+ last_response.status.should == 403
end
end
--
1.7.4.1