""" Explore the complete GeViServer configuration tree to understand all available action types including GSC and G-Core specific ones """ import requests import json BASE_URL = "http://localhost:8000" def authenticate() -> str: response = requests.post(f'{BASE_URL}/api/v1/auth/login', json={ 'username': 'admin', 'password': 'admin123' }) if response.status_code != 200: raise Exception(f"Authentication failed") return response.json()['access_token'] def explore_config_tree(token: str, path: str = ""): """Recursively explore configuration tree""" headers = {'Authorization': f'Bearer {token}'} url = f'{BASE_URL}/api/v1/configuration/folders' if path: url += f'?path={path}' response = requests.get(url, headers=headers) if response.status_code != 200: print(f"Failed to get {path}: {response.status_code}") return None return response.json() def find_action_folders(token: str): """Find all folders related to actions""" print("="*80) print("EXPLORING GEVISERVER CONFIGURATION TREE") print("="*80) print() # Get root folders root = explore_config_tree(token, "") if not root: print("Failed to get root configuration") return print("ROOT FOLDERS:") for folder in root.get('folders', []): print(f" - {folder}") print() # Check MappingRules folder print("Exploring MappingRules folder...") mapping_rules = explore_config_tree(token, "MappingRules") if mapping_rules: print(f"MappingRules subfolders: {len(mapping_rules.get('folders', []))}") for folder in mapping_rules.get('folders', [])[:10]: print(f" - {folder}") print() # Check GeViGCoreServer folder print("Exploring GeViGCoreServer folder...") gcore = explore_config_tree(token, "GeViGCoreServer") if gcore: print(f"G-Core servers: {len(gcore.get('folders', []))}") for folder in gcore.get('folders', [])[:10]: print(f" - {folder}") print() # Check GeViGscServer folder print("Exploring GeViGscServer folder...") gsc = explore_config_tree(token, "GeViGscServer") if gsc: print(f"GSC servers: {len(gsc.get('folders', []))}") for folder in gsc.get('folders', [])[:10]: print(f" - {folder}") print() def main(): try: token = authenticate() find_action_folders(token) except Exception as e: print(f"[ERROR] {str(e)}") import traceback traceback.print_exc() if __name__ == '__main__': main()