On 12/05/2011 05:09 PM, mtaylor(a)redhat.com wrote:
From: Martyn Taylor<mtaylor(a)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
ACK, looks good.
Could you please change the error codes to 400, though? 500 is for when
there's something wrong with the server, while this is a client issue
(sending a wrong request).
Thomas
--
No trees were killed to send this message, but a large number of
electrons were terribly inconvenienced.