[PATCH aeolus-conductor] BZ#754956 Return appropriate error code when parent not found

mtaylor at redhat.com mtaylor at redhat.com
Mon Dec 5 16:09:08 UTC 2011


From: Martyn Taylor <mtaylor at redhat.com>

---
 src/app/controllers/api/builds_controller.rb       |    8 ++++++--
 .../controllers/api/provider_images_controller.rb  |    8 ++++++--
 .../controllers/api/target_images_controller.rb    |    8 ++++++--
 3 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/src/app/controllers/api/builds_controller.rb b/src/app/controllers/api/builds_controller.rb
index bc7670f..b9170aa 100644
--- a/src/app/controllers/api/builds_controller.rb
+++ b/src/app/controllers/api/builds_controller.rb
@@ -25,8 +25,12 @@ module Api
     layout :false
 
     def index
-      if params[:image_id]
-        @builds = Aeolus::Image::Warehouse::Image.find(params[:image_id]).image_builds
+      if id = params[:image_id]
+        if image = Aeolus::Image::Warehouse::Image.find(id)
+          @builds = image.image_builds
+        else
+          raise(Aeolus::Conductor::API::ImageNotFound.new(500, t("api.error_messages.image_not_found", :image => params[:image_id])))
+        end
       else
         @builds = Aeolus::Image::Warehouse::ImageBuild.all
       end
diff --git a/src/app/controllers/api/provider_images_controller.rb b/src/app/controllers/api/provider_images_controller.rb
index 9cbc191..65383c2 100644
--- a/src/app/controllers/api/provider_images_controller.rb
+++ b/src/app/controllers/api/provider_images_controller.rb
@@ -25,8 +25,12 @@ module Api
     layout :false
 
     def index
-      if params[:target_image_id]
-        @images = Aeolus::Image::Warehouse::TargetImage.find(params[:target_image_id]).provider_images
+      if id = params[:target_image_id]
+        if target_image = Aeolus::Image::Warehouse::TargetImage.find(params[:target_image_id])
+          @images = target_image.provider_images
+        else
+          raise(Aeolus::Conductor::API::TargetImageNotFound.new(500, t("api.error_messages.target_image_not_found", :targetimage => id)))
+        end
       else
         @images = Aeolus::Image::Warehouse::ProviderImage.all
       end
diff --git a/src/app/controllers/api/target_images_controller.rb b/src/app/controllers/api/target_images_controller.rb
index 5b2acb5..0430a6e 100644
--- a/src/app/controllers/api/target_images_controller.rb
+++ b/src/app/controllers/api/target_images_controller.rb
@@ -25,8 +25,12 @@ module Api
     layout :false
 
     def index
-      if params[:build_id]
-        @images = Aeolus::Image::Warehouse::ImageBuild.find(params[:build_id]).target_images
+      if id = params[:build_id]
+        if build = Aeolus::Image::Warehouse::ImageBuild.find(params[:build_id])
+          @images = build.target_images
+        else
+          raise(Aeolus::Conductor::API::BuildNotFound.new(500, t("api.error_messages.build_not_found", :build => id)))
+        end
       else
         @images = Aeolus::Image::Warehouse::TargetImage.all
       end
-- 
1.7.6.4




More information about the aeolus-devel mailing list