# File lib/fog/storage/openstack.rb, line 63 def self.data @data ||= Hash.new do |hash, key| hash[key] = {} end end
# File lib/fog/storage/openstack.rb, line 73 def initialize(options = {}) require_mime_types @openstack_api_key = options[:openstack_api_key] @openstack_username = options[:openstack_username] @openstack_management_url = options[:openstack_management_url] || 'http://example:8774/v2/AUTH_1234' @openstack_management_uri = URI.parse(@openstack_management_url) @host = @openstack_management_uri.host @path = @openstack_management_uri.path @path.sub!(%r{/$}, '') @port = @openstack_management_uri.port @scheme = @openstack_management_uri.scheme end
# File lib/fog/storage/openstack.rb, line 69 def self.reset @data = nil end
# File lib/fog/storage/openstack.rb, line 96 def change_account(account) @original_path ||= @path version_string = @original_path.split('/')[1] @path = "/#{version_string}/#{account}" end
# File lib/fog/storage/openstack.rb, line 88 def data self.class.data[@openstack_username] end
# File lib/fog/storage/openstack/requests/put_object.rb, line 43 def put_object(container, object, data, options = {}, &block) dgst = Digest::MD5.new if block_given? Kernel.loop do chunk = yield break if chunk.empty? dgst.update chunk end elsif data.kind_of?(String) dgst.update data else dgst.file data end response = Excon::Response.new response.status = 201 response.body = '' response.headers = {'ETag' => dgst.hexdigest} response end
# File lib/fog/storage/openstack.rb, line 102 def reset_account_name @path = @original_path end
# File lib/fog/storage/openstack.rb, line 92 def reset_data self.class.data.delete(@openstack_username) end