v1.0.65: cloud pagination fix for creating status

This commit is contained in:
2026-07-27 11:42:41 +04:00
parent 90a32353eb
commit 120c34ffcf
4 changed files with 19 additions and 5 deletions
+2 -1
View File
@@ -1,6 +1,6 @@
# Архитектура app-autotest — полный документ # Архитектура app-autotest — полный документ
v1.0.64, 27.07.2026 v1.0.65, 27.07.2026
--- ---
@@ -353,6 +353,7 @@ def detect_endpoint(token):
| 20 | v1.0.63 | Дубли и чужие инстансы | Принадлежность определялась не по namespace | `autotest-` prefix + уникализация `displayName` при CREATE | | 20 | v1.0.63 | Дубли и чужие инстансы | Принадлежность определялась не по namespace | `autotest-` prefix + уникализация `displayName` при CREATE |
| 21 | v1.0.64 | Версия не показывалась в шапке | `load_config()` затирал VERSION | `config["VERSION"] = current_app.config["VERSION"]` | | 21 | v1.0.64 | Версия не показывалась в шапке | `load_config()` затирал VERSION | `config["VERSION"] = current_app.config["VERSION"]` |
| 22 | v1.0.64 | displayName был editable value, а не placeholder | CREATE подставлял имя в value | Placeholder `autotest-...`, значение вводит пользователь | | 22 | v1.0.64 | displayName был editable value, а не placeholder | CREATE подставлял имя в value | Placeholder `autotest-...`, значение вводит пользователь |
| 23 | v1.0.65 | `creating` из-за недочитанной страницы | `get_instances()` доверял `total` и мог не перейти на следующую страницу | Остановка по `len(batch) < pageSize` |
### ✅ Закрыто в v1.0.56 ### ✅ Закрыто в v1.0.56
+10
View File
@@ -1,5 +1,15 @@
# История разработки app-autotest # История разработки app-autotest
## v1.0.65 (27.07.2026) — cloud list pagination fix
### Что изменилось
- В `site/operations/get_instances.py` пагинация списка инстансов теперь останавливается по размеру страницы, а не по `total`.
- Это убирает ситуацию, когда инстанс уже создан в облаке, но приложение не дочитало следующую страницу и показывает `creating`.
- В `DOCS/ARCHITECTURE.md` и `site/app.py` синхронизирована версия `1.0.65`.
### Что это чинит
- Ложный `creating` для уже существующего инстанса, если он попал не на первую страницу `/instances`.
## v1.0.64 (27.07.2026) — header version + editable displayName placeholder ## v1.0.64 (27.07.2026) — header version + editable displayName placeholder
### Что изменилось ### Что изменилось
+1 -1
View File
@@ -6,7 +6,7 @@ from routes.main import bp as main_bp
from routes.api import bp as api_bp from routes.api import bp as api_bp
from routes.api_test import bp as api_test_bp from routes.api_test import bp as api_test_bp
VERSION = "1.0.64" VERSION = "1.0.65"
app = Flask(__name__, template_folder="templates", static_folder="static") app = Flask(__name__, template_folder="templates", static_folder="static")
app.config["NUBES_API_ENDPOINT"] = os.getenv("NUBES_API_ENDPOINT", "https://lk-api-gateway-dev.ngcloud.ru/api/v1/svc") app.config["NUBES_API_ENDPOINT"] = os.getenv("NUBES_API_ENDPOINT", "https://lk-api-gateway-dev.ngcloud.ru/api/v1/svc")
+6 -3
View File
@@ -4,10 +4,13 @@ from api.http_client import HttpClient
def get_instances(client): def get_instances(client):
results = [] results = []
page = 1 page = 1
page_size = 200
while True: while True:
data = client.get("/instances", params={"pageSize": 200, "page": page}) data = client.get("/instances", params={"pageSize": page_size, "page": page})
results.extend(data.get("results", [])) batch = data.get("results", []) or []
if len(results) >= data.get("total", 0): results.extend(batch)
# Не доверяем total: если страница вернула меньше pageSize, значит данные закончились.
if len(batch) < page_size:
break break
page += 1 page += 1
return results return results