diff --git a/lib/fog/compute/requests/hp/delete_image.rb b/lib/fog/compute/requests/hp/delete_image.rb new file mode 100644 index 000000000..074c33b10 --- /dev/null +++ b/lib/fog/compute/requests/hp/delete_image.rb @@ -0,0 +1,45 @@ +module Fog + module HP + class Compute + class Real + + # Delete an image + # + # ==== Parameters + # * image_id<~Integer> - Id of image to delete + # + def delete_image(image_id) + request( + :expects => 204, + :method => 'DELETE', + :path => "images/#{image_id}" + ) + end + + end + + class Mock + + def delete_image(image_id) + response = Excon::Response.new + if image = list_images_detail.body['images'].detect {|_| _['id'] == image_id} + if image['status'] == 'SAVING' + response.status = 409 + raise(Excon::Errors.status_error({:expects => 202}, response)) + else + self.data[:last_modified][:images].delete(image_id) + self.data[:images].delete(image_id) + response.status = 202 + end + response + else + response.status = 400 + raise(Excon::Errors.status_error({:expects => 202}, response)) + end + + end + + end + end + end +end