diff --git a/proxmox_tools_kybinka.py b/proxmox_tools_kybinka.py index 990d03a..6cd1fd3 100644 --- a/proxmox_tools_kybinka.py +++ b/proxmox_tools_kybinka.py @@ -1,8 +1,8 @@ """ title: Proxmox Tools (Kybinka) author: (your name) -description: Инструменты для управления Proxmox VE (сервер Kybinka, 192.168.1.10): LXC (создание, старт, стоп, удаление), VM (клонирование из шаблона, создание из ISO, управление), мониторинг (ноды, хранилище, ресурсы, задачи). -version: 1.0.0 +description: Инструменты для управления Proxmox VE (сервер Kybinka, 192.168.1.20): LXC (создание, старт, стоп, удаление), VM (клонирование из шаблона, создание из ISO, управление), мониторинг (ноды, хранилище, ресурсы, задачи). +version: 1.0.1 """ import time import requests @@ -14,8 +14,8 @@ from typing import Optional class Tools: class Valves(BaseModel): proxmox_host: str = Field( - default="https://192.168.1.10:8006", - description="Базовый URL API Proxmox (например, https://192.168.1.10:8006)", + default="https://192.168.1.20:8006", + description="Базовый URL API Proxmox (например, https://192.168.1.20:8006)", ) proxmox_user: str = Field( default="root@pam", @@ -293,12 +293,14 @@ class Tools: def kybinka_tasks(self, limit: int = 10, node: Optional[str] = None) -> str: """Последние задачи на ноде. Args: - limit: Максимум задач. + limit: Максимум задач (клиентский срез). node: Имя ноды. По умолчанию — нода из настроек. """ node = node or self.valves.default_node try: - items = self._api("GET", f"/nodes/{node}/tasks", params={"limit": limit}) + items = self._api("GET", f"/nodes/{node}/tasks") + if limit: + items = items[:limit] if not items: return f"Нет задач на {node}" out = [f"Задачи на {node}:"] @@ -695,6 +697,11 @@ class Tools: if ok else f" WARN Клонирование могло не завершиться: {msg}" ) + # Критично: если клон не завершился — не продолжаем + if not ok: + out.append(" ABORT: клонирование не завершилось, пропускаем config/start") + return "\n".join(out) + config_params = {} if memory is not None: config_params["memory"] = memory