v1.0.89: detailed code comments — all Python files + index.html architecture overview

This commit is contained in:
2026-07-27 22:02:51 +04:00
parent 7180587538
commit 1cc3f6eb7e
9 changed files with 290 additions and 38 deletions
+14 -1
View File
@@ -1,7 +1,16 @@
"""
Операции с инстансами Nubes — получение списка и организации через API.
"""
from api.http_client import HttpClient
def get_instances(client):
"""GET /instances с пагинацией → ВСЕ инстансы пользователя.
pageSize=200 — максимум за один запрос.
Остановка по len(batch) < pageSize (НЕ доверяет total — бывали баги).
Возвращает полный list[dict]."""
results = []
page = 1
page_size = 200
@@ -9,7 +18,8 @@ def get_instances(client):
data = client.get("/instances", params={"pageSize": page_size, "page": page})
batch = data.get("results", []) or []
results.extend(batch)
# Не доверяем total: если страница вернула меньше pageSize, значит данные закончились.
# Если страница неполная — данные закончились.
# Не проверяем total, потому что API иногда врёт про total.
if len(batch) < page_size:
break
page += 1
@@ -17,6 +27,9 @@ def get_instances(client):
def get_organization(client):
"""Первый инстанс с serviceId=19 (Организация).
Организация всегда одна на пользователя. Используется в UI: название, статус, ClientID."""
for inst in get_instances(client):
if inst.get("serviceId") == 19:
return inst