fix: IP → 192.168.1.20, tasks limit via slice, abort on failed clone
This commit is contained in:
1 parent
676b55edb2
commit
1fe5b65826
1 file changed
+13
-6
@@ -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
|
||||
|
||||
Reference in new issue
Block a user