""" Query GeViServer to get ALL available actions including server-specific ones """ import requests import json # First, get authentication token login_response = requests.post('http://localhost:8000/api/v1/auth/login', json={ 'username': 'admin', 'password': 'admin123' }) if login_response.status_code != 200: print(f"Login failed: {login_response.status_code}") print("Please update the username/password in this script") exit(1) token = login_response.json()['access_token'] headers = {'Authorization': f'Bearer {token}'} # Get all configured servers print("=" * 60) print("QUERYING GEVISERVER FOR ALL AVAILABLE ACTIONS") print("=" * 60) print() # Get GCore servers gcore_response = requests.get('http://localhost:8000/api/v1/configuration/servers/gcore', headers=headers) if gcore_response.status_code == 200: gcore_servers = gcore_response.json().get('servers', []) print(f"Found {len(gcore_servers)} GCore servers:") for server in gcore_servers: print(f" - {server.get('name', 'Unknown')} (ID: {server.get('id')})") else: print(f"Could not get GCore servers: {gcore_response.status_code}") gcore_servers = [] print() # Get GeViScope servers geviscope_response = requests.get('http://localhost:8000/api/v1/configuration/servers/geviscope', headers=headers) if geviscope_response.status_code == 200: geviscope_servers = geviscope_response.json().get('servers', []) print(f"Found {len(geviscope_servers)} GeViScope servers:") for server in geviscope_servers: print(f" - {server.get('name', 'Unknown')} (ID: {server.get('id')})") else: print(f"Could not get GeViScope servers: {geviscope_response.status_code}") geviscope_servers = [] print() print("=" * 60) # Now generate all possible action categories categories = { # Base categories (from SDK docs) "Base": ["System", "Camera Control", "Video", "Viewer", "Backup", "Digital Contacts", "Remote Export", "Lenel Access Control", "Cash Management", "Device", "Viewer Notification", "Ski Data", "Logistics", "Point of Sale", "License Plate System"], # GCore server actions (prefix: G-Core:) "G-Core": [], # GeViScope server actions (prefix: GSC: or server name:) "GeViScope": [] } # Add GCore-specific actions for each server for server in gcore_servers: server_name = server.get('name', f"GCore{server.get('id')}") categories["G-Core"].append(f"{server_name}") # Add GeViScope-specific actions for each server for server in geviscope_servers: server_name = server.get('name', f"GSC{server.get('id')}") categories["GeViScope"].append(f"{server_name}") print("\nALL AVAILABLE ACTION CATEGORIES:") print("-" * 60) total = 0 for cat_type, items in categories.items(): if items: print(f"\n{cat_type}:") for item in items: print(f" - {item}") total += len(items) print() print("=" * 60) print(f"TOTAL CATEGORIES: {total}") print("=" * 60)