class IDRAC::Client

def make_request_with_timeouts(method, path, body, headers, timeout, open_timeout)

Make request with timeout handling
def make_request_with_timeouts(method, path, body, headers, timeout, open_timeout)
  conn = session.connection
  original_timeout = conn.options.timeout
  original_open_timeout = conn.options.open_timeout
  
  begin
    conn.options.timeout = timeout if timeout
    conn.options.open_timeout = open_timeout if open_timeout
    
    conn.run_request(method, path, body, headers)
  ensure
    conn.options.timeout = original_timeout
    conn.options.open_timeout = original_open_timeout
  end
end