mirror of
https://ak-git.vectorsigma.ru/terghalin/metalcheck-cli.git
synced 2026-02-21 17:40:31 +09:00
43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
import os
|
|
import configparser
|
|
import click
|
|
from .commands.metal import metal_nodes
|
|
from .commands.vm import virtual_machines
|
|
from .commands.k8s import kubernetes_nodes
|
|
from .commands.export import export_data
|
|
from .visual import visual_dashboard
|
|
|
|
# Default configuration file path
|
|
CONFIG_FILE_PATH = os.path.expanduser("~/.config/metalcheck.conf")
|
|
|
|
# Load configuration
|
|
def load_config():
|
|
config = configparser.ConfigParser()
|
|
if os.path.exists(CONFIG_FILE_PATH):
|
|
config.read(CONFIG_FILE_PATH)
|
|
return config
|
|
|
|
@click.group()
|
|
@click.option("--base-url", help="Set the backend base URL.")
|
|
@click.pass_context
|
|
def cli(ctx, base_url):
|
|
"""
|
|
Metal Check CLI: A command-line interface for managing and monitoring Metal Check resources.
|
|
"""
|
|
config = load_config()
|
|
|
|
# Default backend URL
|
|
default_base_url = config.get("DEFAULT", "base_url", fallback="http://localhost:8000")
|
|
ctx.ensure_object(dict)
|
|
ctx.obj["BASE_URL"] = base_url or default_base_url
|
|
|
|
# Register commands
|
|
cli.add_command(metal_nodes, name="metal")
|
|
cli.add_command(virtual_machines, name="vm")
|
|
cli.add_command(kubernetes_nodes, name="k8s")
|
|
cli.add_command(export_data, name="export")
|
|
cli.add_command(visual_dashboard, name="visual")
|
|
|
|
if __name__ == "__main__":
|
|
cli()
|