class IDRAC::Client

def delete_all_sessions_with_basic_auth

Delete all sessions using Basic Authentication
def delete_all_sessions_with_basic_auth
  puts "Attempting to delete all sessions using Basic Authentication..."
  
  # First, get the list of sessions
  sessions_url = '/redfish/v1/SessionService/Sessions'
  
  # Create a connection with Basic Auth
  basic_auth_headers = {
    'Authorization' => "Basic #{Base64.strict_encode64("#{username}:#{password}")}",
    'Content-Type' => 'application/json'
  }
  
  begin
    # Get the list of sessions
    response = connection.get(sessions_url) do |req|
      req.headers.merge!(basic_auth_headers)
    end
    
    if response.status != 200
      puts "Failed to get sessions list: #{response.status} - #{response.body}"
      return false
    end
    
    # Parse the response to get session IDs
    begin
      sessions_data = JSON.parse(response.body)
      
      if sessions_data['Members'] && sessions_data['Members'].any?
        puts "Found #{sessions_data['Members'].count} active sessions"
        
        # Delete each session
        success = true
        sessions_data['Members'].each do |session|
          session_url = session['@odata.id']
          
          # Skip if no URL
          next unless session_url
          
          # Delete the session
          delete_response = connection.delete(session_url) do |req|
            req.headers.merge!(basic_auth_headers)
          end
          
          if delete_response.status == 200 || delete_response.status == 204
            puts "Successfully deleted session: #{session_url}"
          else
            puts "Failed to delete session #{session_url}: #{delete_response.status}"
            success = false
          end
          
          # Small delay between deletions
          sleep(1)
        end
        
        return success
      else
        puts "No active sessions found"
        return true
      end
    rescue JSON::ParserError => e
      puts "Error parsing sessions response: #{e.message}"
      return false
    end
  rescue => e
    puts "Error during session deletion with Basic Auth: #{e.message}"
    return false
  end
end