Исправлен 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:
|
||||
"""Удаляет VM или LXC (синхронно — Proxmox дожидается завершения)."""
|
||||
"""Удаляет VM или LXC, дожидаясь завершения задачи в Proxmox."""
|
||||
node = node or settings.pve_node
|
||||
px = _client()
|
||||
if guest_type == "vm":
|
||||
px.nodes(node).qemu(vmid).delete()
|
||||
upid = px.nodes(node).qemu(vmid).delete()
|
||||
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:
|
||||
@@ -281,4 +286,4 @@ def get_status(guest_type: str, vmid: int, node: str = None) -> dict:
|
||||
px = _client()
|
||||
if guest_type == "vm":
|
||||
return px.nodes(node).qemu(vmid).status.current.get()
|
||||
return px.nodes(node).lxc(vmid).status.current.get()
|
||||
return px.nodes(node).lxc(vmid).status.current.get()
|
||||
|
||||
Reference in New Issue
Block a user