Complete menus overhaul

This commit is contained in:
OVERLORD7F
2025-05-21 14:12:37 +03:00
parent d7477da9b6
commit 291e9cfe75
6 changed files with 129 additions and 90 deletions

View File

@@ -2,15 +2,18 @@ import os
import requests
from domain_api import *
from rich.prompt import Prompt
from rich.console import Console , Align
def disk_edit_mode(base_url , api_key , data_pool_uuid , vm_uuids):
print("\033[H\033[2J", end="")
print("### DISK EDIT MODE ###\n")
print("1) Delete vDisk by UUID")
print("2) Delete ALL vDisks on selected Virtual Machine")
print("3) Create Disk")
print("4) Prepare VMs for Courses™")
print("\nENTER - return to Utility Main Menu ")
def disk_edit_mode(base_url , api_key , data_pool_uuid , vm_uuids):
os.system('cls' if os.name=='nt' else 'clear')
diks_edit_menu_options="[gold bold][1] [grey53 italic]Delete vDisk by UUID\n[/grey53 italic] \
\n[gold bold][2] [grey53 italic]Delete ALL vDisks on selected Virtual Machine[/grey53 italic]\n \
\n[gold bold][3] [grey53 italic]Create Disk[/grey53 italic]\n \
\n[gold bold][4] [grey53 italic]Prepare VMs for Courses™[/grey53 italic]\n \
\n\n[green_yellow bold]ENTER - return to Main Menu"
diks_edit_menu_options = Align.center(diks_edit_menu_options, vertical="middle")
console = Console()
console.print(Panel(diks_edit_menu_options, title="[bold red]Disk Edit Mode" , border_style="magenta" , width=150 , padding = 2))
sub_choice=str(input("\n>>> "))
if sub_choice == "1":
read_input=input("Input vDisk uuid to delete: ")
@@ -25,7 +28,7 @@ def disk_edit_mode(base_url , api_key , data_pool_uuid , vm_uuids):
disk_uuids = get_disk_uuids(base_url , api_key , domain_all_content)
for x in disk_uuids:
delete_disk(base_url , api_key , x)
print("All attached vDisks has been deleted!")
console.print("[bold red]All attached vDisks has been deleted!")
if sub_choice == "3":
vdisk_size=str(input("Enter disk size (GB): "))
@@ -35,7 +38,8 @@ def disk_edit_mode(base_url , api_key , data_pool_uuid , vm_uuids):
create_and_attach_disk(base_url , api_key , vm_uuids[select_uuids] , data_pool_uuid , vdisk_size , "falloc")
if sub_choice == "4":
print("#" * 5 , "Preparing VMs for Courses" , "#" * 5)
os.system('cls' if os.name=='nt' else 'clear')
console.rule(title="[bold magenta]Preparing VMs for Courses" , align="center" , style="grey53" , characters = "=")
for y in vm_uuids: #power-on check
domain_uuid = y.strip('\n')
vm_check_power(base_url , api_key , domain_uuid)
@@ -48,15 +52,16 @@ def disk_edit_mode(base_url , api_key , data_pool_uuid , vm_uuids):
disk_uuids = get_disk_uuids(base_url , api_key , domain_all_content)
for y in disk_uuids:
delete_disk(base_url , api_key , y)
print("All attached vDisks has been deleted!")
console.print("[bold red]All attached vDisks has been deleted!")
for z in vm_uuids: # only for creating disks
domain_uuid = z.strip('\n')
print(f"\nCreating and attaching disk to VM {domain_uuid}")
console.print(f"\n[bold underline yellow]Creating and attaching disk to VM {domain_uuid}")
domain_info = get_domain_info(base_url , api_key , domain_uuid)
domain_all_content = get_domain_all_content(base_url , api_key , domain_uuid)
if domain_info:
create_and_attach_disk(base_url , api_key , domain_uuid , data_pool_uuid, 10, "falloc")
create_and_attach_disk(base_url , api_key , domain_uuid , data_pool_uuid, 20, "falloc")
create_and_attach_disk(base_url , api_key , domain_uuid , data_pool_uuid, 20, "falloc")
print("Done. Happy virtualization :D")
Prompt.ask("[green_yellow bold]Press ENTER to proceed.. :right_arrow_curving_down:")
console.print("[bold green]\nDone. Happy virtualization :thumbs_up::thumbs_up:")
Prompt.ask("[green_yellow bold]ENTER - return to Main Menu.. :right_arrow_curving_down:")
os.system('cls' if os.name=='nt' else 'clear')