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
_______________________________________________
aeolus-devel mailing list
aeolus-devel(a)lists.fedorahosted.org
https://fedorahosted.org/mailman/listinfo/aeolus-devel
Just for the record, feel free to push this once you've fixed the tests.
Thomas