class IDRAC::Client
def delete_all_sessions_with_basic_auth
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