update(app): refactor commands
This commit is contained in:
@@ -1,38 +1,38 @@
|
||||
import click
|
||||
import requests
|
||||
|
||||
BASE_URL = "http://localhost:8000/vm" # Backend URL for Virtual Machines API
|
||||
|
||||
@click.group()
|
||||
def virtual_machines():
|
||||
@click.pass_context
|
||||
def virtual_machines(ctx):
|
||||
"""Commands for managing Virtual Machines."""
|
||||
pass
|
||||
|
||||
@virtual_machines.command("list")
|
||||
def list_command():
|
||||
handle_command("list")
|
||||
@click.pass_context
|
||||
def list_command(ctx):
|
||||
"""List all virtual machines."""
|
||||
base_url = ctx.obj["BASE_URL"]
|
||||
list_virtual_machines(base_url)
|
||||
|
||||
@virtual_machines.command("add")
|
||||
def add_command():
|
||||
handle_command("add")
|
||||
@click.pass_context
|
||||
def add_command(ctx):
|
||||
"""Add a new virtual machine."""
|
||||
base_url = ctx.obj["BASE_URL"]
|
||||
add_virtual_machine(base_url)
|
||||
|
||||
@virtual_machines.command("delete")
|
||||
def delete_command():
|
||||
handle_command("delete")
|
||||
@click.pass_context
|
||||
def delete_command(ctx):
|
||||
"""Delete a virtual machine."""
|
||||
base_url = ctx.obj["BASE_URL"]
|
||||
delete_virtual_machine(base_url)
|
||||
|
||||
def handle_command(action):
|
||||
"""Handle commands related to Virtual Machines."""
|
||||
if action == "list":
|
||||
list_virtual_machines()
|
||||
elif action == "add":
|
||||
add_virtual_machine()
|
||||
elif action == "delete":
|
||||
delete_virtual_machine()
|
||||
|
||||
def list_virtual_machines():
|
||||
def list_virtual_machines(base_url):
|
||||
"""List all virtual machines."""
|
||||
vm_url = f"{base_url}/vm/data"
|
||||
try:
|
||||
response = requests.get(f"{BASE_URL}/data")
|
||||
response = requests.get(vm_url)
|
||||
if response.status_code == 200:
|
||||
virtual_machines = response.json().get("virtual_machines", [])
|
||||
click.echo("\n💻 Virtual Machines:")
|
||||
@@ -47,8 +47,9 @@ def list_virtual_machines():
|
||||
except requests.RequestException as e:
|
||||
click.echo(f"Error: {e}")
|
||||
|
||||
def add_virtual_machine():
|
||||
def add_virtual_machine(base_url):
|
||||
"""Add a new virtual machine."""
|
||||
vm_url = f"{base_url}/vm/data"
|
||||
try:
|
||||
name = click.prompt("Name")
|
||||
location = click.prompt("Location")
|
||||
@@ -66,7 +67,7 @@ def add_virtual_machine():
|
||||
"type": vm_type,
|
||||
}
|
||||
|
||||
response = requests.post(f"{BASE_URL}/data", json=data)
|
||||
response = requests.post(vm_url, json=data)
|
||||
if response.status_code in [200, 201]:
|
||||
response_data = response.json()
|
||||
message = response_data.get("message", "Virtual machine added successfully!")
|
||||
@@ -76,11 +77,12 @@ def add_virtual_machine():
|
||||
except requests.RequestException as e:
|
||||
click.echo(f"Error: {e}")
|
||||
|
||||
def delete_virtual_machine():
|
||||
def delete_virtual_machine(base_url):
|
||||
"""Delete a virtual machine."""
|
||||
vm_url = f"{base_url}/vm/data"
|
||||
try:
|
||||
vm_id = click.prompt("Enter the ID of the virtual machine to delete", type=int)
|
||||
response = requests.delete(f"{BASE_URL}/data/{vm_id}")
|
||||
response = requests.delete(f"{vm_url}/{vm_id}")
|
||||
if response.status_code == 200:
|
||||
click.echo("✅ Virtual machine deleted successfully!")
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user