fix: code review #2 — _cfg.DELAY + VERSION в config/loader + мёртвые импорты
This commit is contained in:
@@ -11,8 +11,7 @@ Blueprint "mock" с префиксом /api/v1/svc/_mock.
|
||||
from flask import Blueprint, jsonify
|
||||
|
||||
import mock_state
|
||||
from config.loader import SERVICES, DELAY as _DELAY
|
||||
import config.loader as _cfg # для модификации модульной переменной DELAY
|
||||
import config.loader as _cfg # для чтения/записи модульных переменных DELAY, SERVICES
|
||||
|
||||
bp = Blueprint("mock", __name__, url_prefix="/api/v1/svc/_mock")
|
||||
|
||||
@@ -73,7 +72,7 @@ def mock_services():
|
||||
не дёргая реальный /api/v1/svc/services.
|
||||
"""
|
||||
result = {}
|
||||
for svc_id, svc_def in SERVICES.items():
|
||||
for svc_id, svc_def in _cfg.SERVICES.items():
|
||||
result[str(svc_id)] = {
|
||||
"name": svc_def.get("name", ""),
|
||||
"displayName": svc_def.get("service_display_name", ""),
|
||||
|
||||
@@ -8,10 +8,9 @@ Blueprint "operations" с префиксом /api/v1/svc.
|
||||
POST /instanceOperationCfsParams — установить параметр
|
||||
GET /instanceOperations/<uid>/validate-cfs — пустое тело, 200
|
||||
|
||||
ВАЖНО: порядок маршрутов в蓝图 критичен.
|
||||
/instanceOperations/default/<int:op_id> ДОЛЖЕН быть выше
|
||||
/instanceOperations/<uid>
|
||||
Иначе Flask распарсит "default" как uid и уйдёт не в тот обработчик.
|
||||
Порядок маршрутов: default/<int:op_id> (целое число) и <uid> (строка UUID)
|
||||
различаются Flask/Werkzeug автоматически — конфликта нет, но default размещён
|
||||
выше для ясности.
|
||||
"""
|
||||
|
||||
from flask import Blueprint, jsonify, make_response, request
|
||||
|
||||
+6
-7
@@ -8,11 +8,10 @@ Blueprint "root" регистрируется в app.py БЕЗ url_prefix.
|
||||
from flask import Blueprint, render_template
|
||||
|
||||
import mock_state
|
||||
from config.loader import SERVICES, DELAY
|
||||
from utils.now import now as _now
|
||||
import config.loader as _cfg
|
||||
|
||||
# Версия — показывается на HTML-странице и в healthcheck (опционально)
|
||||
VERSION = "0.2.2"
|
||||
# Версия — из config/loader.py (единый источник правды)
|
||||
VERSION = _cfg.VERSION
|
||||
|
||||
# Blueprint без префикса — роуты /health и / будут на корне домена
|
||||
bp = Blueprint("root", __name__)
|
||||
@@ -36,12 +35,12 @@ def index():
|
||||
текущую задержку операций. Использует Jinja2-шаблон templates/index.html
|
||||
и внешний CSS из static/style.css.
|
||||
"""
|
||||
svc_count = len(SERVICES)
|
||||
svc_count = len(_cfg.SERVICES)
|
||||
inst_count = len(mock_state.state.instances)
|
||||
return render_template(
|
||||
"index.html",
|
||||
version=VERSION,
|
||||
version=_cfg.VERSION,
|
||||
svc_count=svc_count,
|
||||
inst_count=inst_count,
|
||||
delay=DELAY,
|
||||
delay=_cfg.DELAY,
|
||||
)
|
||||
|
||||
+5
-4
@@ -14,7 +14,7 @@ from flask import Blueprint, jsonify
|
||||
|
||||
import mock_state
|
||||
import state_machine
|
||||
from config.loader import SERVICES, DELAY
|
||||
import config.loader as _cfg
|
||||
from utils.now import now as _now
|
||||
|
||||
bp = Blueprint("run", __name__, url_prefix="/api/v1/svc")
|
||||
@@ -48,12 +48,13 @@ def run_operation(uid):
|
||||
op["dtStart"] = _now()
|
||||
|
||||
# Эмулируем задержку выполнения (по умолчанию 0.1с)
|
||||
if DELAY > 0:
|
||||
time.sleep(DELAY)
|
||||
# ⛔ _cfg.DELAY — модульная переменная, может меняться через /_mock/delay
|
||||
if _cfg.DELAY > 0:
|
||||
time.sleep(_cfg.DELAY)
|
||||
|
||||
# Применить эффект операции к состоянию инстанса
|
||||
# (create → running+params, delete → удалить, modify → мерж params, ...)
|
||||
state_machine.apply_effect(uid, mock_state.state, SERVICES)
|
||||
state_machine.apply_effect(uid, mock_state.state, _cfg.SERVICES)
|
||||
|
||||
# Фиксируем время завершения — операция выполнена успешно
|
||||
op["dtFinish"] = _now()
|
||||
|
||||
Reference in New Issue
Block a user