update(app): refactor commands

This commit is contained in:
Aleksandr Tcitlionok
2024-12-11 12:56:18 +00:00
parent 24e09330ea
commit b031148f61
7 changed files with 212 additions and 111 deletions

View File

@@ -1,3 +1,5 @@
import os
import configparser
import click
from .commands.metal import metal_nodes
from .commands.vm import virtual_machines
@@ -5,13 +7,29 @@ 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()
def cli():
@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.
"""
pass
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")