update(app): refactor commands
This commit is contained in:
@@ -1,33 +1,31 @@
|
||||
import click
|
||||
import requests
|
||||
|
||||
BASE_URL = "http://localhost:8000/k8s" # Backend URL for Kubernetes API
|
||||
|
||||
@click.group()
|
||||
def kubernetes_nodes():
|
||||
@click.pass_context
|
||||
def kubernetes_nodes(ctx):
|
||||
"""Commands for managing Kubernetes Nodes."""
|
||||
pass
|
||||
|
||||
@kubernetes_nodes.command("list")
|
||||
def list_command():
|
||||
handle_command("list")
|
||||
|
||||
@kubernetes_nodes.command("think")
|
||||
def think_command():
|
||||
handle_command("think")
|
||||
|
||||
|
||||
def handle_command(action):
|
||||
"""Handle commands related to Kubernetes nodes."""
|
||||
if action == "list":
|
||||
list_kubernetes_nodes()
|
||||
elif action == "analyze":
|
||||
analyze_kubernetes_cluster()
|
||||
|
||||
def list_kubernetes_nodes():
|
||||
@click.pass_context
|
||||
def list_command(ctx):
|
||||
"""List all Kubernetes nodes."""
|
||||
base_url = ctx.obj["BASE_URL"]
|
||||
list_kubernetes_nodes(base_url)
|
||||
|
||||
@kubernetes_nodes.command("analyze")
|
||||
@click.pass_context
|
||||
def analyze_command(ctx):
|
||||
"""Request an AI analysis of the Kubernetes cluster."""
|
||||
base_url = ctx.obj["BASE_URL"]
|
||||
analyze_kubernetes_cluster(base_url)
|
||||
|
||||
def list_kubernetes_nodes(base_url):
|
||||
"""List all Kubernetes nodes."""
|
||||
k8s_url = f"{base_url}/k8s/data"
|
||||
try:
|
||||
response = requests.get(f"{BASE_URL}/data")
|
||||
response = requests.get(k8s_url)
|
||||
if response.status_code == 200:
|
||||
nodes = response.json().get("nodes", [])
|
||||
click.echo("\n📦 Kubernetes Nodes:")
|
||||
@@ -43,10 +41,11 @@ def list_kubernetes_nodes():
|
||||
except requests.RequestException as e:
|
||||
click.echo(f"Error: {e}")
|
||||
|
||||
def analyze_kubernetes_cluster():
|
||||
def analyze_kubernetes_cluster(base_url):
|
||||
"""Request an AI analysis of the Kubernetes cluster."""
|
||||
analyze_url = f"{base_url}/think/k8s"
|
||||
try:
|
||||
response = requests.get(f"{BASE_URL}/think/k8s")
|
||||
response = requests.get(analyze_url)
|
||||
if response.status_code == 200:
|
||||
summary = response.json().get("summary", "No analysis provided.")
|
||||
click.echo("\n🤖 AI Analysis of Kubernetes Cluster:")
|
||||
|
||||
Reference in New Issue
Block a user