123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- import argparse
- from typing import Protocol
- import requests
- from renderer import Renderer
- parser = argparse.ArgumentParser(description="Prints the status of server nodes and their GPUs.")
- parser.add_argument(
- "-s",
- "--server",
- type=str,
- default="deimos",
- help="The name of the server to query."
- )
- parser.add_argument(
- "-p",
- "--port",
- type=str,
- default="8091",
- help="The port of the server to query.",
- )
- parser.add_argument(
- "-t",
- "--protocol",
- type=str,
- default="http",
- choices=("http", "https"),
- help="The protocol to use for the query.",
- )
- parser.add_argument(
- "-c",
- "--compact",
- action="store_true",
- help="Flag; if set, a compact overview will be displayed."
- )
- parser.add_argument(
- "-f",
- "--filter",
- type=str,
- nargs="*",
- default=None,
- help="The node names of nodes to filter for."
- )
- args = parser.parse_args()
- response = requests.get(f"{args.protocol}://{args.server}:{args.port}/api/clients/")
- if not args.compact:
- renderer = Renderer(
- columns=1,
- progress_bar_width=50,
- use_space_lines=True,
- node_names=args.filter
- )
- else:
- renderer = Renderer(
- columns=2,
- progress_bar_width=40,
- use_space_lines=False,
- node_names=args.filter,
- display_power=False,
- )
- print(renderer.render_info_dict(response.json()))
|