class IDRAC::Client
def _perform_get(path:, headers: {})
def _perform_get(path:, headers: {}) # For screenshot functionality, we need to use the WebUI cookies if web.cookies.nil? && path.include?('screen/screen.jpg') web.login unless web.session_id end debug "GET request to #{base_url}/#{path}", 1 headers_to_use = { "User-Agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36", "Accept-Encoding" => "deflate, gzip" } headers_to_use["Host"] = @host_header if @host_header if web.cookies headers_to_use["Cookie"] = web.cookies debug "Using WebUI cookies for request", 2 elsif @direct_mode # In direct mode, use Basic Auth headers_to_use["Authorization"] = "Basic #{Base64.strict_encode64("#{username}:#{password}")}" debug "Using Basic Auth for GET request", 2 elsif session.x_auth_token headers_to_use["X-Auth-Token"] = session.x_auth_token debug "Using X-Auth-Token for GET request", 2 end debug "Request headers: #{headers_to_use.merge(headers).inspect}", 3 response = HTTParty.get( "#{base_url}/#{path}", headers: headers_to_use.merge(headers), verify: false ) debug "Response status: #{response.code}", 1 debug "Response headers: #{response.headers.inspect}", 2 debug "Response body: #{response.body.to_s[0..500]}#{response.body.to_s.length > 500 ? '...' : ''}", 3 if response.body response end