1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/aws/requests/s3/delete_bucket.rb
Wesley Beary b23594254c Fix s3 mocking behaviours:
1) delete_bucket should raise a 409 if the bucket is not empty
2) (get/put)_object should have 'Content-Type' headers
2009-09-02 20:15:32 -07:00

53 lines
1.2 KiB
Ruby

unless Fog.mocking?
module Fog
module AWS
class S3
# Delete an S3 bucket
#
# ==== Parameters
# * bucket_name<~String> - name of bucket to delete
#
# ==== Returns
# * response<~Fog::AWS::Response>:
# * status<~Integer> - 204
def delete_bucket(bucket_name)
request({
:expects => 204,
:headers => {},
:host => "#{bucket_name}.#{@host}",
:method => 'DELETE'
})
end
end
end
end
else
module Fog
module AWS
class S3
def delete_bucket(bucket_name)
response = Fog::Response.new
if Fog::AWS::S3.data[:buckets][bucket_name].nil?
response.status = 404
raise(Fog::Errors.status_error(204, 404, response))
elsif Fog::AWS::S3.data[:buckets][bucket_name] && !Fog::AWS::S3.data[:buckets][bucket_name][:objects].empty?
response.status = 409
raise(Fog::Errors.status_error(204, 409, response))
else
Fog::AWS::S3.data[:buckets].delete(bucket_name)
response.status = 204
end
response
end
end
end
end
end