#!/usr/bin/env python3 """Test UniFi connection and authentication.""" import requests import urllib3 import json urllib3.disable_warnings() # Load your actual configuration with open('network_configuration.json', 'r') as f: config = json.load(f) host = config['unifi']['host'] username = config['unifi']['username'] password = config['unifi']['password'] site = config['unifi'].get('site', 'default') print(f'Testing connection to: {host}') print(f'Username: {username}') print(f'Site: {site}') print('=' * 60) # Test UniFi OS login (modern) print('\n1. Attempting UniFi OS login (/api/auth/login)...') try: session = requests.Session() response = session.post( f'{host}/api/auth/login', json={'username': username, 'password': password}, verify=False, timeout=10 ) print(f' Status code: {response.status_code}') print(f' Response: {response.text[:200]}') if response.status_code == 200: print(' ✓ UniFi OS authentication successful!') except Exception as e: print(f' ✗ Error: {e}') # Test legacy UniFi Controller login (older controllers) print('\n2. Attempting legacy UniFi Controller login (/api/login)...') try: session2 = requests.Session() response2 = session2.post( f'{host}/api/login', json={'username': username, 'password': password}, verify=False, timeout=10 ) print(f' Status code: {response2.status_code}') print(f' Response: {response2.text[:200]}') if response2.status_code == 200: print(' ✓ Legacy UniFi authentication successful!') except Exception as e: print(f' ✗ Error: {e}') print('\n' + '=' * 60)