Methods

Class/Module Index [+]

Quicksearch

Fog::Softlayer::Slapi

Public Class Methods

slapi_request(service, path, options) click to toggle source

Sends the real request to the real SoftLayer service.

@param [String] service

...ayer.com/rest/v3/Softlayer_Service_Name...

@param path [String]

...ayer.com/rest/v3/Softlayer_Service_Name/path.json

@param [Hash] options @option options [Array<Hash>] :body

HTTP request body parameters

@option options [String] :softlayer_api_url

Override the default (or configured) API endpoint

@option options [String] :softlayer_username

Email or user identifier for user based authentication

@option options [String] :softlayer_api_key

Password for user based authentication

@return [Excon::Response]

# File lib/fog/softlayer/core.rb, line 34
def self.slapi_request(service, path, options)
    # default HTTP method to get if not passed
    http_method = options[:http_method] || :get
    # set the target base url
    @request_url = options[:softlayer_api_url] || Fog::Softlayer::SL_API_URL
    # tack on the username and password
    credentialize_url(options[:username], options[:api_key])
    # set the SoftLayer Service name
    set_sl_service(service)
    # set the request path (known as the "method" in SL docs)
    set_sl_path(path)
    # set the query params if any


    # build request params
    params = { :headers => user_agent_header }
    params[:headers]['Content-Type'] = 'application/json'
    params[:expects] = options[:expected] || [200,201]
    params[:body] = Fog::JSON.encode({:parameters => [ options[:body] ]}) unless options[:body].nil?
    params[:query] = options[:query] unless options[:query].nil?

    # initialize connection object
    @connection = Fog::Core::Connection.new(@request_url, false, params)

    # send it
    response = @connection.request(:method => http_method)

    # decode it
    response.body = Fog::JSON.decode(response.body)
    response
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.