From: Martyn Taylor <mtaylor(a)redhat.com>
---
src/app/controllers/api/builds_controller.rb | 7 ++++---
src/app/controllers/api/images_controller.rb | 7 ++++---
.../controllers/api/provider_images_controller.rb | 6 +++---
.../controllers/api/target_images_controller.rb | 7 ++++---
src/app/views/api/builds/destroy.xml.haml | 8 ++++++++
src/app/views/api/images/destroy.xml.haml | 8 ++++++++
src/app/views/api/provider_images/destroy.xml.haml | 6 ++++++
src/app/views/api/target_images/destroy.xml.haml | 8 ++++++++
src/spec/controllers/api/builds_controller_spec.rb | 3 ++-
src/spec/controllers/api/images_controller_spec.rb | 4 ++--
.../api/target_images_controller_spec.rb | 3 ++-
11 files changed, 51 insertions(+), 16 deletions(-)
create mode 100644 src/app/views/api/builds/destroy.xml.haml
create mode 100644 src/app/views/api/images/destroy.xml.haml
create mode 100644 src/app/views/api/provider_images/destroy.xml.haml
create mode 100644 src/app/views/api/target_images/destroy.xml.haml
diff --git a/src/app/controllers/api/builds_controller.rb
b/src/app/controllers/api/builds_controller.rb
index 15397fe..9494b49 100644
--- a/src/app/controllers/api/builds_controller.rb
+++ b/src/app/controllers/api/builds_controller.rb
@@ -47,9 +47,10 @@ module Api
def destroy
begin
- if build = Aeolus::Image::Warehouse::ImageBuild.find(params[:id])
- if build.delete!
- render :text => "Build Deleted", :status => 200
+ if @build = Aeolus::Image::Warehouse::ImageBuild.find(params[:id])
+ @provider_images = @build.provider_images
+ if @build.delete!
+ respond_with(@build, @provider_images)
end
else
raise(Aeolus::Conductor::API::BuildNotFound.new(404, "Could not find Build
" + params[:id]))
diff --git a/src/app/controllers/api/images_controller.rb
b/src/app/controllers/api/images_controller.rb
index 56cd993..87fdf7e 100644
--- a/src/app/controllers/api/images_controller.rb
+++ b/src/app/controllers/api/images_controller.rb
@@ -76,9 +76,10 @@ module Api
def destroy
begin
- if image = Aeolus::Image::Warehouse::Image.find(params[:id])
- if image.delete!
- render :xml => "<status>Image Deleted</status>",
:status => 200
+ if @image = Aeolus::Image::Warehouse::Image.find(params[:id])
+ @provider_images = @image.provider_images
+ if @image.delete!
+ respond_with(@image, @provider_images)
end
else
raise(Aeolus::Conductor::API::ImageNotFound.new(404, "Could not find Image
" + params[:id]))
diff --git a/src/app/controllers/api/provider_images_controller.rb
b/src/app/controllers/api/provider_images_controller.rb
index e126493..94e451d 100644
--- a/src/app/controllers/api/provider_images_controller.rb
+++ b/src/app/controllers/api/provider_images_controller.rb
@@ -87,9 +87,9 @@ module Api
def destroy
begin
- if image = Aeolus::Image::Warehouse::ProviderImage.find(params[:id])
- if image.delete!
- render :text => "Provider Image Deleted", :status => 200
+ if @image = Aeolus::Image::Warehouse::ProviderImage.find(params[:id])
+ if @image.delete!
+ respond_with(@image)
end
else
raise(Aeolus::Conductor::API::ProviderImageNotFound.new(404, "Could not
find a ProviderImage for id " + params[:id]))
diff --git a/src/app/controllers/api/target_images_controller.rb
b/src/app/controllers/api/target_images_controller.rb
index 0c676e4..3fca497 100644
--- a/src/app/controllers/api/target_images_controller.rb
+++ b/src/app/controllers/api/target_images_controller.rb
@@ -55,9 +55,10 @@ module Api
def destroy
begin
- if image = Aeolus::Image::Warehouse::TargetImage.find(params[:id])
- if image.delete!
- render :text => "Target Image Deleted", :status => 200
+ if @image = Aeolus::Image::Warehouse::TargetImage.find(params[:id])
+ @provider_images = @image.provider_images
+ if @image.delete!
+ respond_with(@image, @provider_images)
end
else
raise(Aeolus::Conductor::API::TargetImageNotFound.new(404, "Could not find
TargetImage " + params[:id]))
diff --git a/src/app/views/api/builds/destroy.xml.haml
b/src/app/views/api/builds/destroy.xml.haml
new file mode 100644
index 0000000..450da0d
--- /dev/null
+++ b/src/app/views/api/builds/destroy.xml.haml
@@ -0,0 +1,8 @@
+!!!XML
+%build{:id => @build.id, :href => api_image_url((a)build.id) }
+ %status="DELETED"
+ %content
+ - @provider_images.each do |pi|
+ %provider_content
+ %provider= pi.provider
+ %target_identifier= pi.target_identifier
\ No newline at end of file
diff --git a/src/app/views/api/images/destroy.xml.haml
b/src/app/views/api/images/destroy.xml.haml
new file mode 100644
index 0000000..fb59961
--- /dev/null
+++ b/src/app/views/api/images/destroy.xml.haml
@@ -0,0 +1,8 @@
+!!!XML
+%image{:id => @image.id, :href => api_image_url((a)image.id) }
+ %status="DELETED"
+ %content
+ - @provider_images.each do |pi|
+ %provider_content
+ %provider= pi.provider
+ %target_identifier= pi.target_identifier
\ No newline at end of file
diff --git a/src/app/views/api/provider_images/destroy.xml.haml
b/src/app/views/api/provider_images/destroy.xml.haml
new file mode 100644
index 0000000..9e89c46
--- /dev/null
+++ b/src/app/views/api/provider_images/destroy.xml.haml
@@ -0,0 +1,6 @@
+!!!XML
+%provider_image{:id => @image.id, :href => api_image_url((a)image.id) }
+ %content
+ %provider_content
+ %provider= @image.provider
+ %target_identifier= @image.target_identifier
\ No newline at end of file
diff --git a/src/app/views/api/target_images/destroy.xml.haml
b/src/app/views/api/target_images/destroy.xml.haml
new file mode 100644
index 0000000..3c13a01
--- /dev/null
+++ b/src/app/views/api/target_images/destroy.xml.haml
@@ -0,0 +1,8 @@
+!!!XML
+%target_image{:id => @image.id, :href => api_image_url((a)image.id) }
+ %status="DELETED"
+ %content
+ - @provider_images.each do |pi|
+ %provider_content
+ %provider= pi.provider
+ %target_identifier= pi.target_identifier
\ No newline at end of file
diff --git a/src/spec/controllers/api/builds_controller_spec.rb
b/src/spec/controllers/api/builds_controller_spec.rb
index 195ea9e..4ff69ef 100644
--- a/src/spec/controllers/api/builds_controller_spec.rb
+++ b/src/spec/controllers/api/builds_controller_spec.rb
@@ -37,7 +37,8 @@ describe Api::BuildsController do
@build = mock(Aeolus::Image::Warehouse::ImageBuild,
:id => '10',
:image => @image,
- :target_images => [@target_image])
+ :target_images => [@target_image],
+ :provider_images => [mock(ProviderImage, :target_identifier =>
"ami-1234567")] * 2)
end
context "when authenticated as admin" do
diff --git a/src/spec/controllers/api/images_controller_spec.rb
b/src/spec/controllers/api/images_controller_spec.rb
index 1da4e04..6b5836a 100644
--- a/src/spec/controllers/api/images_controller_spec.rb
+++ b/src/spec/controllers/api/images_controller_spec.rb
@@ -36,7 +36,8 @@ describe Api::ImagesController do
:name => 'test',
:description => 'test image',
:image_builds => [@build],
- :build => @build
+ :build => @build,
+ :provider_images => [mock(ProviderImage, :target_identifier =>
"ami-1234567")] * 2
)
Aeolus::Image::Warehouse::ImageBuild.stub(:where).and_return([@build])
end
@@ -285,7 +286,6 @@ describe Api::ImagesController do
context "and delete succeeds" do
before(:each) do
@image.stub(:delete!).and_return(true)
-
delete :destroy, :id => @image.id
end
diff --git a/src/spec/controllers/api/target_images_controller_spec.rb
b/src/spec/controllers/api/target_images_controller_spec.rb
index 2fd1eb4..73206ce 100644
--- a/src/spec/controllers/api/target_images_controller_spec.rb
+++ b/src/spec/controllers/api/target_images_controller_spec.rb
@@ -27,7 +27,8 @@ describe Api::TargetImagesController do
send_and_accept_xml
@pimage = mock(Aeolus::Image::Warehouse::ProviderImage,
- :id => '42')
+ :id => '42',
+ :target_identifier => "ami-1234567")
@build = mock(Aeolus::Image::Warehouse::ImageBuild,
:id => '543')
@timage = mock(Aeolus::Image::Warehouse::TargetImage,
--
1.7.6.4