39 lines
2.4 KiB
Python
39 lines
2.4 KiB
Python
# v2.1.2: проверяем реально работающие эндпоинты TrueNAS 25.10
|
|
# (многие получили новые имена — перебираем варианты)
|
|
checks = [
|
|
("system/info", "GET", None, "базовая информация о системе"),
|
|
("alert/list", "GET", None, "список алертов"),
|
|
("catalog", "GET", None, "список каталогов приложений"),
|
|
("pool/query", "GET", None, "список пулов ZFS (v2)"),
|
|
("pool", "GET", None, "список пулов ZFS (v1)"),
|
|
("disk/query", "GET", None, "список дисков (v2)"),
|
|
("disk", "GET", None, "список дисков (v1)"),
|
|
("app/query", "GET", None, "список приложений (v2)"),
|
|
("app", "GET", None, "список приложений (v1)"),
|
|
("chart/release/query", "GET", None, "helm-релизы"),
|
|
]
|
|
ok = 0
|
|
checked: set = set()
|
|
for endpoint, method, payload, descr in checks:
|
|
if endpoint in checked:
|
|
continue
|
|
checked.add(endpoint)
|
|
url = f"{self._base}/api/v2.0/{endpoint}"
|
|
try:
|
|
if method == "GET":
|
|
r = requests.get(url, headers=self._headers, params=payload, timeout=self.valves.request_timeout, verify=self.valves.verify_ssl)
|
|
else:
|
|
r = requests.post(url, headers=self._headers, json=payload or {}, timeout=self.valves.request_timeout, verify=self.valves.verify_ssl)
|
|
if r.status_code == 200:
|
|
lines.append(f"✅ {endpoint:30s} — {descr}")
|
|
ok += 1
|
|
elif r.status_code in (401, 403):
|
|
lines.append(f"🔑 {endpoint:30s} — 401/403 (нет прав)")
|
|
elif r.status_code == 404:
|
|
lines.append(f"❌ {endpoint:30s} — HTTP 404 (нет такого пути)")
|
|
elif r.status_code == 405:
|
|
lines.append(f"⚠️ {endpoint:30s} — HTTP 405 (другой метод)")
|
|
else:
|
|
lines.append(f"⚠️ {endpoint:30s} — HTTP {r.status_code}")
|
|
except Exception as e:
|
|
lines.append(f"💥 {endpoint:30s} — ошибка: {type(e).__name__}") |