Исправлен delete_guest: добавлено ожидание завершения задачи Proxmox через _wait_task
This commit is contained in:
@@ -266,13 +266,18 @@ def guest_action(guest_type: str, vmid: int, action: str, node: str = None) -> N
|
|||||||
|
|
||||||
|
|
||||||
def delete_guest(guest_type: str, vmid: int, node: str = None) -> None:
|
def delete_guest(guest_type: str, vmid: int, node: str = None) -> None:
|
||||||
"""Удаляет VM или LXC (синхронно — Proxmox дожидается завершения)."""
|
"""Удаляет VM или LXC, дожидаясь завершения задачи в Proxmox."""
|
||||||
node = node or settings.pve_node
|
node = node or settings.pve_node
|
||||||
px = _client()
|
px = _client()
|
||||||
if guest_type == "vm":
|
if guest_type == "vm":
|
||||||
px.nodes(node).qemu(vmid).delete()
|
upid = px.nodes(node).qemu(vmid).delete()
|
||||||
else:
|
else:
|
||||||
px.nodes(node).lxc(vmid).delete()
|
upid = px.nodes(node).lxc(vmid).delete()
|
||||||
|
# Proxmox API возвращает upid для отслеживания статуса задачи.
|
||||||
|
# Ждём завершения, чтобы инстанс действительно был удалён к моменту
|
||||||
|
# возврата ответа клиенту.
|
||||||
|
if upid:
|
||||||
|
_wait_task(px, node, upid)
|
||||||
|
|
||||||
|
|
||||||
def get_status(guest_type: str, vmid: int, node: str = None) -> dict:
|
def get_status(guest_type: str, vmid: int, node: str = None) -> dict:
|
||||||
|
|||||||
Reference in New Issue
Block a user