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