Adding quick server checker.

This commit is contained in:
Michael Woods
2025-02-18 23:15:20 -05:00
parent 9878a2df0e
commit a74ed0c447

View File

@@ -3,12 +3,14 @@ from packetserver.client.cli.config import get_config, default_app_dir, config_p
from packetserver.client.cli.constants import DEFAULT_DB_FILE from packetserver.client.cli.constants import DEFAULT_DB_FILE
from packetserver.client import Client from packetserver.client import Client
from packetserver.common.constants import yes_values from packetserver.common.constants import yes_values
from packetserver.common import Request, Response
from packetserver.client.cli.util import format_list_dicts, exit_client from packetserver.client.cli.util import format_list_dicts, exit_client
import ZODB import ZODB
import ZODB.FileStorage import ZODB.FileStorage
import ax25 import ax25
import sys import sys
import os import os
import json
import os.path import os.path
from pathlib import Path from pathlib import Path
from packetserver.client import Client from packetserver.client import Client
@@ -86,6 +88,25 @@ def cli(ctx, conf, server, agwpe, port, callsign):
ctx.obj['bbs'] = server ctx.obj['bbs'] = server
ctx.obj['db'] = db ctx.obj['db'] = db
@click.command()
@click.pass_context
def query_server(ctx):
"""Query the server for basic info."""
client = ctx.obj['client']
req = Request.blank()
req.path = ""
req.method = Request.Method.GET
resp = client.send_receive_callsign(req, ctx.obj['bbs'])
if resp is None:
click.echo(f"No response from {ctx.obj['bbs']}")
exit_client(client, 1)
else:
if resp.status_code != 200:
exit_client(client, 1, message=f"Error contacting server: {resp.payload}")
else:
click.echo(json.dumps(resp.payload, indent=2))
exit_client(client, 0)
@click.command() @click.command()
@click.argument('username', required=False, default='') @click.argument('username', required=False, default='')
@@ -118,6 +139,7 @@ def user(ctx, list_users, output_format, username):
exit_client(client, 0) exit_client(client, 0)
cli.add_command(user) cli.add_command(user)
cli.add_command(query_server)
if __name__ == '__main__': if __name__ == '__main__':
cli() cli()