lib/fog/riakcs.rb in fog-1.19.0 vs lib/fog/riakcs.rb in fog-1.20.0

- old
+ new

@@ -1,122 +1,2 @@ -require(File.expand_path(File.join(File.dirname(__FILE__), 'core'))) - -module Fog - module RiakCS - - module MultipartUtils - require 'net/http' - - class Headers - include Net::HTTPHeader - - def initialize - initialize_http_header({}) - end - - # Parse a single header line into its key and value - # @param [String] chunk a single header line - def self.parse(chunk) - line = chunk.strip - # thanks Net::HTTPResponse - return [nil,nil] if chunk =~ /\AHTTP(?:\/(\d+\.\d+))?\s+(\d\d\d)\s*(.*)\z/in - m = /\A([^:]+):\s*/.match(line) - [m[1], m.post_match] rescue [nil, nil] - end - - # Parses a header line and adds it to the header collection - # @param [String] chunk a single header line - def parse(chunk) - key, value = self.class.parse(chunk) - add_field(key, value) if key && value - end - end - - def parse(data, boundary) - contents = data.match(end_boundary_regex(boundary)).pre_match rescue "" - contents.split(inner_boundary_regex(boundary)).reject(&:empty?).map do |part| - parse_multipart_section(part) - end.compact - end - - def extract_boundary(header_string) - $1 if header_string =~ /boundary=([A-Za-z0-9\'()+_,-.\/:=?]+)/ - end - - private - def end_boundary_regex(boundary) - /\r?\n--#{Regexp.escape(boundary)}--\r?\n?/ - end - - def inner_boundary_regex(boundary) - /\r?\n--#{Regexp.escape(boundary)}\r?\n/ - end - - def parse_multipart_section(part) - headers = Headers.new - if md = part.match(/\r?\n\r?\n/) - body = md.post_match - md.pre_match.split(/\r?\n/).each do |line| - headers.parse(line) - end - - if headers["content-type"] =~ /multipart\/mixed/ - boundary = extract_boundary(headers.to_hash["content-type"].first) - parse(body, boundary) - else - {:headers => headers.to_hash, :body => body} - end - end - end - end - - module UserUtils - def update_riakcs_user(key_id, user) - response = @s3_connection.put_object('riak-cs', "user/#{key_id}", Fog::JSON.encode(user), { 'Content-Type' => 'application/json' }) - if !response.body.empty? - response.body = Fog::JSON.decode(response.body) - end - response - end - - def update_mock_user(key_id, user) - if data[key_id] - if status = user[:status] - data[key_id][:status] = status - end - - if user[:new_key_secret] - data[key_id][:key_secret] = rand(100).to_s - end - - Excon::Response.new.tap do |response| - response.status = 200 - response.body = data[key_id] - end - else - Excon::Response.new.tap do |response| - response.status = 403 - end - end - end - end - - module Utils - def configure_uri_options(options = {}) - @host = options[:host] || 'localhost' - @persistent = options[:persistent] || true - @port = options[:port] || 8080 - @scheme = options[:scheme] || 'http' - end - - def riakcs_uri - "#{@scheme}://#{@host}:#{@port}" - end - end - - extend Fog::Provider - - service(:provisioning, 'riakcs/provisioning', 'Provisioning') - service(:usage, 'riakcs/usage', 'Usage') - - end -end +require 'fog/riakcs/provisioning' +require 'fog/riakcs/usage'