""" Test using correct server aliases from GeViSet This will create a mapping and the API will automatically write it to GeViServer """ import requests import json BASE_URL = "http://localhost:8000" def authenticate(): response = requests.post(f'{BASE_URL}/api/v1/auth/login', json={ 'username': 'admin', 'password': 'admin123' }) return response.json()['access_token'] def main(): token = authenticate() headers = {'Authorization': f'Bearer {token}'} print("=" * 80) print("API TEST WITH CORRECT SERVER ALIASES") print("=" * 80) print() # Step 1: Delete existing test mapping print("Step 1: Cleaning up...") response = requests.get(f'{BASE_URL}/api/v1/configuration/action-mappings', headers=headers) for mapping in response.json().get('mappings', []): if mapping['name'] == 'API_CORRECT_ALIASES_TEST': print(f" Deleting existing mapping ID {mapping['id']}") requests.delete(f'{BASE_URL}/api/v1/configuration/action-mappings/{mapping['id']}', headers=headers) print() # Step 2: Create mapping with CORRECT server aliases from GeViSet print("Step 2: Creating mapping with correct server aliases...") print(" GSC Server: GEVISCOPE_01_UPDATED") print(" G-Core Server: gscope-cdu-10") print() new_mapping = { "name": "API_CORRECT_ALIASES_TEST", "input_action": "API_CORRECT_ALIASES_TEST", "output_actions": [ { "action": "PanLeft", "parameters": { "Caption": "GSC PanLeft Test", "GscServer": "GEVISCOPE_01_UPDATED", # CORRECT GSC alias "PTZ head": "101027" } }, { "action": "PanRight", "parameters": { "Caption": "G-Core PanRight Test", "GCoreServer": "gscope-cdu-10", # CORRECT G-Core alias "PTZ head": "101028" } } ], "enabled": True } response = requests.post( f'{BASE_URL}/api/v1/configuration/action-mappings', headers=headers, json=new_mapping ) if response.status_code not in [200, 201]: print(f"ERROR: Failed to create mapping: {response.status_code}") print(response.text) return result = response.json() print("[OK] Mapping created and written to GeViServer") print(f" Offset in GeViServer: {result.get('mapping', {}).get('offset', 'N/A')}") print() print("=" * 80) print("NEXT STEPS - CHECK IN GEVISET") print("=" * 80) print() print("1. Open GeViSet application") print("2. Connect to GeViServer (this downloads the configuration)") print("3. Find mapping 'API_CORRECT_ALIASES_TEST'") print("4. Check if Output Action 1 shows as 'PanLeft' (NOT 'CrossSwitch')") print("5. Check if Output Action 2 shows as 'PanRight' (NOT 'CrossSwitch')") print() print("If they still show as CrossSwitch, the issue is in how we write") print("the data to GeViServer, not in the server aliases.") if __name__ == '__main__': main()