mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
42 lines
1.1 KiB
Ruby
42 lines
1.1 KiB
Ruby
module Fog
|
|
module Storage
|
|
class Rackspace
|
|
|
|
class Real
|
|
|
|
# Create a new container
|
|
#
|
|
# ==== Parameters
|
|
# * name<~String> - Name for container, should be < 256 bytes and must not contain '/'
|
|
# @raise [Fog::Storage::Rackspace::NotFound] - HTTP 404
|
|
# @raise [Fog::Storage::Rackspace::BadRequest] - HTTP 400
|
|
# @raise [Fog::Storage::Rackspace::InternalServerError] - HTTP 500
|
|
# @raise [Fog::Storage::Rackspace::ServiceError]
|
|
def put_container(name, options={})
|
|
request(
|
|
:expects => [201, 202],
|
|
:method => 'PUT',
|
|
:headers => options,
|
|
:path => Fog::Rackspace.escape(name)
|
|
)
|
|
end
|
|
|
|
end
|
|
|
|
class Mock
|
|
def put_container(name, options={})
|
|
existed = ! mock_container(name).nil?
|
|
container = add_container(name)
|
|
options.keys.each do |k|
|
|
container.meta[k] = options[k].to_s if k =~ /^X-Container-Meta/
|
|
end
|
|
|
|
response = Excon::Response.new
|
|
response.status = existed ? 202 : 201
|
|
response
|
|
end
|
|
end
|
|
|
|
end
|
|
end
|
|
end
|