module CloudControl::Connection

Public Instance Methods

append_query(uri, query) click to toggle source
# File lib/cloudcontrol/connection.rb, line 26
def append_query(uri, query)
  if uri.include?('?')
    uri << '&'
  else
    uri << '?'
  end
  uri << query
end
build_request(type, endpoint, query = nil, body = nil, xml=true) click to toggle source
# File lib/cloudcontrol/connection.rb, line 3
def build_request(type, endpoint, query = nil, body = nil, xml=true)
  uri = api_base + endpoint
  append_query(uri, query) if query

  if xml
    request = Typhoeus::Request.new(
      uri,
      method: type,
      body: body,
      userpwd: "#{@username}:#{@password}",
        headers: { 'Content-Type' =>'text/xml', 'User-Agent' => 'ACP Ruby SDK' }
    )
  else
    request = Typhoeus::Request.new(
      uri,
      method: type,
      body: body,
      userpwd: "#{@username}:#{@password}",
        headers: { 'Accept' => 'application/json', 'User-Agent' => 'ACP Ruby SDK' }
    )
  end
end
log_response(request, response) click to toggle source
# File lib/cloudcontrol/connection.rb, line 41
def log_response(request, response)
  if response.success?
    log "...........success!", :yellow
  elsif response.timed_out?
    log_error "ERROR\n-----", :red
    log_error "got a time out"
  elsif response.code == 0
    # Could not get an http response, something's wrong.
    log_error "ERROR\n-----", :red
    log_error response.return_message
  else
    # Received a non-successful http response.
    log_error "ERROR\n-----", :red
    log_error "HTTP request failed: " + response.code.to_s, :red
    log_error response.body, :yellow
  end
end
perform_request(request) click to toggle source
# File lib/cloudcontrol/connection.rb, line 36
def perform_request(request)
  log "\nrequesting #{request.url}...", :yellow
  request.run
end