class IDRAC::Session

def create

Create a Redfish session
def create
  # Skip if we're in direct mode
  if @direct_mode
    debug "Skipping Redfish session creation (direct mode)", 0, :light_yellow
    return false
  end
  
  # Determine the correct session endpoint based on Redfish version
  session_endpoint = determine_session_endpoint
  
  payload = { "UserName" => username, "Password" => password }
  
  debug "Attempting to create Redfish session at #{base_url}#{session_endpoint}", 0
  debug "SSL verification: #{verify_ssl ? 'Enabled' : 'Disabled'}", 1
  print_connection_debug_info if @verbosity >= 2
  
  # Try creation methods in sequence
  return true if create_session_with_content_type(session_endpoint, payload)
  return true if create_session_with_basic_auth(session_endpoint, payload)
  return true if handle_max_sessions_and_retry(session_endpoint, payload)
  return true if create_session_with_form_urlencoded(session_endpoint, payload)
  
  # If all attempts fail, switch to direct mode
  @direct_mode = true
  false
end