diff --git a/.gitignore b/.gitignore index dbe68da..da7ebd1 100644 --- a/.gitignore +++ b/.gitignore @@ -184,3 +184,4 @@ output_*.json *.jsonl .scienv synapse_data* +.synapse_deploy_cache.json diff --git a/synapse-api b/synapse-api index 8dbfdb1..c3d730e 160000 --- a/synapse-api +++ b/synapse-api @@ -1 +1 @@ -Subproject commit 8dbfdb126a833161926d0bc47a6d888859901539 +Subproject commit c3d730e6fac727b1ce2d3eef66202f185d736a37 diff --git a/synapse/cli/rpc.py b/synapse/cli/rpc.py index f955c5d..b298b8a 100644 --- a/synapse/cli/rpc.py +++ b/synapse/cli/rpc.py @@ -13,6 +13,7 @@ from rich.console import Console from rich.pretty import pprint +from rich.table import Table from synapse.cli.query import StreamingQueryClient from synapse.utils.log import log_entry_to_str @@ -39,6 +40,9 @@ def add_commands(subparsers): e.add_argument("config_file", type=str) e.set_defaults(func=configure) + e = subparsers.add_parser("taps", help="List available taps") + e.set_defaults(func=list_taps) + f = subparsers.add_parser("logs", help="Get logs from the device") f.add_argument("--output", "-o", type=str, help="Optional file to write logs to") f.add_argument( @@ -244,3 +248,22 @@ def parse_datetime(time_str: Optional[str]) -> Optional[datetime]: finally: if output_file: output_file.close() + + +def list_taps(args): + console = Console() + + request = QueryRequest() + request.query_type = QueryRequest.kListTaps + request.list_taps_query.SetInParent() + response = syn.Device(args.uri, args.verbose).query(request) + + table = Table(title="Available Taps", show_lines=True) + table.add_column("Name", style="cyan") + table.add_column("Message Type", style="green") + table.add_column("Endpoint", style="green") + + for tap in response.list_taps_response.taps: + table.add_row(tap.name, tap.message_type, tap.endpoint) + + console.print(table)