You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltacloud.apache.org by mf...@redhat.com on 2012/06/14 10:35:05 UTC

[PATCH core] Core: Fixed instance_action method to do proper redirect when :action method does not return valid Instance object

From: Michal Fojtik <mf...@redhat.com>


Signed-off-by: Michal fojtik <mf...@redhat.com>
---
 server/lib/deltacloud/helpers/deltacloud_helper.rb |   26 +++++++++----------
 1 files changed, 12 insertions(+), 14 deletions(-)

diff --git a/server/lib/deltacloud/helpers/deltacloud_helper.rb b/server/lib/deltacloud/helpers/deltacloud_helper.rb
index 6d8cb9b..de28590 100644
--- a/server/lib/deltacloud/helpers/deltacloud_helper.rb
+++ b/server/lib/deltacloud/helpers/deltacloud_helper.rb
@@ -110,25 +110,23 @@ module Deltacloud::Helpers
       end
 
       headers['X-Backend-Runtime'] = @benchmark.real.to_s
-      status 202
 
       if name == :destroy
-        respond_to do |format|
-          format.xml { return 204 }
-          format.json { return 204 }
-          format.html { return redirect(instances_url) }
+        response = respond_to do |format|
+          format.html { redirect(instances_url) }
         end
+        halt 204, response
       end
 
-      if @instance.class != Instance
-        response['Location'] = instance_url(params[:id])
-        halt
-      end
-
-      respond_to do |format|
-        format.xml { haml :"instances/show" }
-        format.html { haml :"instances/show" }
-        format.json {convert_to_json(:instance, @instance) }
+      unless @instance.class == Instance
+        redirect instance_url(params[:id])
+      else
+        response = respond_to do |format|
+          format.xml { haml :"instances/show" }
+          format.html { haml :"instances/show" }
+          format.json { xml_to_json("instances/show") }
+        end
+        halt 202, response
       end
     end
 
-- 
1.7.7.5 (Apple Git-26)