# File lib/fog/riakcs/provisioning.rb, line 49 def initialize(options = {}) require 'mime/types' configure_uri_options(options) @riakcs_access_key_id = options[:riakcs_access_key_id] @riakcs_secret_access_key = options[:riakcs_secret_access_key] @connection_options = options[:connection_options] || {} @persistent = options[:persistent] || false @raw_connection = Fog::Connection.new(riakcs_uri, @persistent, @connection_options) @s3_connection = Fog::Storage.new( :provider => 'AWS', :aws_access_key_id => @riakcs_access_key_id, :aws_secret_access_key => @riakcs_secret_access_key, :host => @host, :port => @port, :scheme => @scheme ) end
# File lib/fog/riakcs/requests/provisioning/create_user.rb, line 5 def create_user(email, name, options = {}) payload = Fog::JSON.encode({ :email => email, :name => name }) headers = { 'Content-Type' => 'application/json' } if(options[:anonymous]) request( :expects => [201], :method => 'POST', :path => 'user', :body => payload, :headers => headers ) else begin response = @s3_connection.put_object('riak-cs', 'user', payload, headers) if !response.body.empty? case response.headers['Content-Type'] when 'application/json' response.body = Fog::JSON.decode(response.body) end end response rescue Excon::Errors::Conflict => e raise Fog::RiakCS::Provisioning::UserAlreadyExists.new rescue Excon::Errors::BadRequest => e raise Fog::RiakCS::Provisioning::ServiceUnavailable.new end end end
# File lib/fog/riakcs/requests/provisioning/disable_user.rb, line 9 def disable_user(key_id) update_riakcs_user(key_id, { :status => 'disabled' }) end
# File lib/fog/riakcs/requests/provisioning/enable_user.rb, line 9 def enable_user(key_id) update_riakcs_user(key_id, { :status => 'enabled' }) end
# File lib/fog/riakcs/requests/provisioning/get_user.rb, line 8 def get_user(key_id) response = @s3_connection.get_object('riak-cs', "user/#{key_id}", { 'Accept' => 'application/json' }) response.body = Fog::JSON.decode(response.body) response end
# File lib/fog/riakcs/requests/provisioning/list_users.rb, line 8 def list_users(options = {}) response = @s3_connection.get_object('riak-cs', 'users', { 'Accept' => 'application/json', 'query' => options }) boundary = extract_boundary(response.headers['Content-Type']) parts = parse(response.body, boundary) decoded = parts.map { |part| Fog::JSON.decode(part[:body]) } response.body = decoded.flatten response end
# File lib/fog/riakcs/requests/provisioning/regrant_secret.rb, line 9 def regrant_secret(key_id) update_riakcs_user(key_id, { :new_key_secret => true }) end
# File lib/fog/riakcs/provisioning.rb, line 69 def request(params, parse_response = true, &block) begin response = @raw_connection.request(params.merge({ :host => @host, :path => "#{@path}/#{params[:path]}", }), &block) rescue Excon::Errors::HTTPStatusError => error if match = error.message.match(/<Code>(.*?)<\/Code>(?:.*<Message>(.*?)<\/Message>)?/) case match[1] when 'UserAlreadyExists' raise Fog::RiakCS::Provisioning.const_get(match[1]).new when 'ServiceUnavailable' raise Fog::RiakCS::Provisioning.const_get(match[1]).new else raise error end else raise error end end if !response.body.empty? && parse_response response.body = Fog::JSON.decode(response.body) end response end
Generated with the Darkfish Rdoc Generator 2.