You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltacloud.apache.org by ma...@redhat.com on 2012/12/10 11:40:21 UTC
[PATCH] Proposed fix for DTACLOUD-379
From: marios <ma...@redhat.com>
https://issues.apache.org/jira/browse/DTACLOUD-379
Signed-off-by: marios <ma...@redhat.com>
---
server/lib/deltacloud/drivers/exceptions.rb | 8 ++++++++
server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb | 8 +++++---
2 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/server/lib/deltacloud/drivers/exceptions.rb b/server/lib/deltacloud/drivers/exceptions.rb
index 7bbf510..5663dae 100644
--- a/server/lib/deltacloud/drivers/exceptions.rb
+++ b/server/lib/deltacloud/drivers/exceptions.rb
@@ -58,6 +58,13 @@ module Deltacloud
end
end
+ class Conflict < DeltacloudException
+ def initialize(e, message=nil)
+ message ||= e.message
+ super(409, e.class.name, message, e.backtrace)
+ end
+ end
+
class MethodNotAllowed < DeltacloudException
def initialize(e, message=nil)
message ||= e.message
@@ -157,6 +164,7 @@ module Deltacloud
when 406 then UnknownMediaTypeError.new(e, @message)
when 405 then MethodNotAllowed.new(e, @message)
when 400 then ValidationFailure.new(e, @message)
+ when 409 then Conflict.new(e, @message)
when 500 then BackendError.new(e, @message)
when 501 then NotImplemented.new(e, @message)
when 502 then ProviderError.new(e, @message)
diff --git a/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb b/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
index 37e6622..7709be4 100644
--- a/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
+++ b/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
@@ -118,9 +118,7 @@ class RhevmDriver < Deltacloud::BaseDriver
def destroy_image(credentials, image_id)
client = new_client(credentials)
safely do
- unless client.destroy_template(image_id)
- raise "ERROR: Unable to remove image"
- end
+ client.destroy_template(image_id)
end
end
@@ -342,6 +340,10 @@ class RhevmDriver < Deltacloud::BaseDriver
status 404
end
+ on /(Cannot delete Template. Template is being used)/ do
+ status 409
+ end
+
on /(RestClient|RHEVM|OVIRT)/ do
status 500
end
--
1.7.11.7