fix: code review Sonnet — 2 крит. фикса + README v0.2.0
This commit is contained in:
+9
-3
@@ -1,5 +1,5 @@
|
||||
"""
|
||||
polygon v0.1.0 — Mock Nubes API.
|
||||
polygon v0.2.0 — Mock Nubes API.
|
||||
Эмулятор REST API облачной платформы Nubes для интеграционных тестов.
|
||||
|
||||
Все эндпоинты с префиксом /api/v1/svc притворяются реальным Nubes API.
|
||||
@@ -7,10 +7,12 @@ polygon v0.1.0 — Mock Nubes API.
|
||||
Конфиги сервисов — из services/*.yaml (сгенерированы from_stands.py).
|
||||
|
||||
Деплой: Nubes pythonk8s (managed service) с gunicorn:
|
||||
gunicorn app:app --workers 2 --bind 0.0.0.0:8000
|
||||
gunicorn app:app --workers 1 --bind 0.0.0.0:8000
|
||||
⛔ РОВНО 1 ВОРКЕР — состояние в памяти, не shared между процессами.
|
||||
|
||||
Переменные окружения:
|
||||
MOCK_OP_DELAY — задержка операции в секундах (по умолчанию 0.1)
|
||||
MOCK_OP_DELAY — задержка операции в секундах (по умолчанию 0.1)
|
||||
WEB_CONCURRENCY — число gunicorn-воркеров (принудительно 1)
|
||||
"""
|
||||
|
||||
import os
|
||||
@@ -19,6 +21,10 @@ from datetime import datetime, timezone
|
||||
|
||||
from flask import Flask, jsonify, make_response, request
|
||||
|
||||
# ⛔ Принудительно 1 воркер — состояние в памяти, иначе инстансы теряются.
|
||||
# setdefault не перезапишет если Nubes/Procfile уже выставил WEB_CONCURRENCY=1.
|
||||
os.environ.setdefault("WEB_CONCURRENCY", "1")
|
||||
|
||||
import config_loader
|
||||
import mock_state
|
||||
import state_machine
|
||||
|
||||
@@ -138,8 +138,9 @@ def _merge_params(inst, op_params, svc_operation_id, services):
|
||||
|
||||
for pid in param_ids_for_op:
|
||||
if pid in op_params:
|
||||
code = cfs_params[pid]["svcOperationCfsParam"]
|
||||
inst["state"]["params"][code] = op_params[pid]
|
||||
p = cfs_params.get(pid)
|
||||
if p:
|
||||
inst["state"]["params"][p["svcOperationCfsParam"]] = op_params[pid]
|
||||
|
||||
|
||||
def _extract_subresource_name(op_params, subresource_name):
|
||||
|
||||
Reference in New Issue
Block a user