diff --git a/truenas_tools.py b/truenas_tools.py index 9c14a22..761af44 100644 --- a/truenas_tools.py +++ b/truenas_tools.py @@ -1,34 +1,34 @@ -""" -truenas_tools.py — мониторинг и управление TrueNAS через Open WebUI. +request_timeout: int = Field( + default=15, + description="Таймаут обычных HTTP-запросов в секундах.", + ) + install_timeout: int = Field( + default=900, + description="Таймаут операций установки/удаления приложений в секундах (по умолчанию 15 минут).", + ) + poll_interval: int = Field( + default=5, + description="Интервал опроса состояния приложения (секунды) при wait_for_app.", + ) + default_catalog: str = Field( + default="TRUENAS", + description="Каталог приложений по умолчанию (TRUENAS, TrueCharts, Community и т.д.).", + ) + default_train: str = Field( + default="stable", + description="Канал (train) по умолчанию — stable, latest, enterprise и т.д.", + ) -Полный набор инструментов для интеграции TrueNAS 25.10 (Goldeye/Goliath) -в Open WebUI в виде пользовательского Tool. + # ----------------------------------------------------------------- + # Инициализация + # ----------------------------------------------------------------- + def __init__(self): + self.valves = self.Valves() + self._cache: Dict[str, tuple[float, str]] = {} + self._last_error = "нет данных (запросы ещё не выполнялись)" + try: + import urllib3 -Возможности: - • Системная информация (версия, uptime, CPU, load average, RAM, температура CPU) - • Детальная информация о RAM с перебором нескольких эндпоинтов API - • Пулы ZFS (статус, занятость, фрагментация) - • Диски (модель, серийник, объём, температура SMART) - • Docker-приложения (TrueNAS Apps): мониторинг + установка, запуск, остановка, удаление, обновление - • Custom App из docker-compose файла - • Каталог приложений (TRUENAS, TrueCharts, Community…): список и детали - • Виртуальные машины (libvirt/KVM) - • Контейнеры (virt/incus) - • Алерты TrueNAS - • Статистика ZFS ARC-кэша - • Диагностика соединения и валидация API-ключа - • Кэширование ответов с настраиваемым TTL (только для GET-запросов) - -История версий: - v2.1 — управление приложениями: list_catalogs, list_app_catalog, get_app_info, - install_app (catalog), install_custom_app (compose), app_action, app_status, - wait_for_app, общий метод _rest_request (POST/PUT/DELETE) - v2.0 — добавлены RAM (multi-endpoint), температуры CPU/дисков, ARC, валидация API - v1.0 — базовый мониторинг (система, пулы, диски, VM, контейнеры, алерты) -""" - -import json -import time -import requests -from typing import Dict, Optional, List, Any, Union -from pydantic import BaseModel, Field \ No newline at end of file + urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) + except Exception: + pass \ No newline at end of file