On 10/07/2011 12:28 PM, mtaylor(a)redhat.com wrote:
From: Martyn Taylor<mtaylor(a)redhat.com>
---
.../controllers/api/provider_images_controller.rb | 12 ++++++++++--
.../controllers/api/target_images_controller.rb | 17 +++++++++++++++++
src/app/views/api/provider_images/_image.xml.haml | 14 +++++++++-----
src/app/views/api/target_images/_image.xml.haml | 17 ++++++++++-------
4 files changed, 46 insertions(+), 14 deletions(-)
diff --git a/src/app/controllers/api/provider_images_controller.rb
b/src/app/controllers/api/provider_images_controller.rb
index e5426d7..16e3e1a 100644
--- a/src/app/controllers/api/provider_images_controller.rb
+++ b/src/app/controllers/api/provider_images_controller.rb
@@ -37,7 +37,15 @@ module Api
if @image
respond_with(@image)
else
- render :nothing => true, :status => 404
+ status = Aeolus::Image::Factory::ProviderImage.status(id)
+ if !status.nil?
+ @image = Aeolus::Image::Factory::ProviderImage.new(:id => id,
+ :href =>
api_provider_image_url(id),
+ :status => status)
+ respond_with(@image)
+ else
+ render :text => "Resource Not Found", :status => 404
+ end
end
end
@@ -77,4 +85,4 @@ module Api
end
end
end
-end
\ No newline at end of file
+end
diff --git a/src/app/controllers/api/target_images_controller.rb
b/src/app/controllers/api/target_images_controller.rb
index 99a946f..0a4945a 100644
--- a/src/app/controllers/api/target_images_controller.rb
+++ b/src/app/controllers/api/target_images_controller.rb
@@ -41,5 +41,22 @@ module Api
end
end
+ def show
+ id = params[:id]
+ @image = Aeolus::Image::Warehouse::TargetImage.find(id)
+ if @image
+ respond_with(@image)
+ else
+ status = Aeolus::Image::Factory::TargetImage.status(id)
+ if !status.nil?
+ @image = Aeolus::Image::Factory::TargetImage.new(:id => id,
+ :href =>
api_target_image_url(id),
+ :status => status)
+ respond_with(@image)
+ else
+ render :text => "Resource Not Found", :status => 404
+ end
+ end
+ end
end
end
diff --git a/src/app/views/api/provider_images/_image.xml.haml
b/src/app/views/api/provider_images/_image.xml.haml
index ee49143..40ff44f 100644
--- a/src/app/views/api/provider_images/_image.xml.haml
+++ b/src/app/views/api/provider_images/_image.xml.haml
@@ -1,6 +1,10 @@
!!!XML
-%provider_image{:id => image.uuid, :href => api_provider_image_url(image.uuid)
}
- %icicle= image.icicle
- %object_type= image.object_type
- %target_identifier= image.target_identifier
- %target_image{:id => image.target_image.uuid, :href =>
api_target_image_url(image.target_image.uuid)}
+%provider_image{:id => image.id, :href => api_provider_image_url(image.id) }
+ - if @image.respond_to?('status')
+ %status=(a)image.status
+ - else
+ %icicle= image.icicle
+ %object_type= image.object_type
+ %target_identifier= image.target_identifier
+ %status="COMPLETE"
+ %target_image{:id => image.target_image.uuid, :href =>
api_target_image_url(image.target_image.uuid)}
diff --git a/src/app/views/api/target_images/_image.xml.haml
b/src/app/views/api/target_images/_image.xml.haml
index 6616346..894e24a 100644
--- a/src/app/views/api/target_images/_image.xml.haml
+++ b/src/app/views/api/target_images/_image.xml.haml
@@ -1,9 +1,12 @@
!!!XML
%target_image{:id => image.uuid, :href => api_target_image_url(image.uuid) }
- %icicle= image.icicle
- %object_type= image.object_type
- %template= image.template
- %build{:href=>api_build_url(image.build.uuid), :id=>image.build.uuid}
- %provider_images
- - image.provider_images.each do |pimg|
- %provider_image{:id => pimg.uuid, :href =>
api_provider_image_url(pimg.uuid)}
+ - if @image.respond_to?('status')
+ %status=(a)image.status
+ - else
+ %icicle= image.icicle
+ %object_type= image.object_type
+ %template= image.template
+ %build{:href=>api_build_url(image.build.uuid), :id=>image.build.uuid}
+ %provider_images
+ - image.provider_images.each do |pimg|
+ %provider_image{:id => pimg.uuid, :href =>
api_provider_image_url(pimg.uuid)}
Unfortunately, this breaks two more rspec tests:
2) Api::ProviderImagesController XML format responses for#index
Failure/Error:
resp['provider_images']['provider_image']['id'].should ==
@pimage.uuid
expected: "17"
got: "69848738603880" (using ==)
# ./spec/controllers/api/provider_images_controller_spec.rb:56
3) Api::ProviderImagesController XML format responses for#show
Failure/Error: resp['provider_image']['id'].should == @pimage.uuid
expected: "17"
got: "69848739519320" (using ==)
# ./spec/controllers/api/provider_images_controller_spec.rb:83
Finished in 1088.25 seconds
295 examples, 3 failures
Failed examples:
rspec ./spec/controllers/api/provider_images_controller_spec.rb:54 #
Api::ProviderImagesController XML format responses for#index
rspec ./spec/controllers/api/provider_images_controller_spec.rb:81 #
Api::ProviderImagesController XML format responses for#show