diff --git a/site/config/loader.py b/site/config/loader.py index 3a25631..2596d25 100644 --- a/site/config/loader.py +++ b/site/config/loader.py @@ -80,7 +80,7 @@ SERVICES = _DF["SERVICES"] OPS_INDEX = _DF["OPS_INDEX"] DELAY = float(os.getenv("MOCK_OP_DELAY", "0.1")) -VERSION = "0.5.9" +VERSION = "0.5.10" def get_services(stand_id): diff --git a/site/static/style.css b/site/static/style.css index f05bcfc..5febb52 100644 --- a/site/static/style.css +++ b/site/static/style.css @@ -175,6 +175,34 @@ main { opacity: 1; } +/* ── Feature Grid ── */ +.feature-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 16px; +} + +.feature-item { + background: var(--brand-grey-light); + border-radius: var(--radius-sm); + padding: 16px; +} + +.feature-item h4 { + font-size: 15px; + margin-bottom: 8px; +} + +.feature-item p { + font-size: 13px; + color: var(--text-muted); + margin-bottom: 8px; +} + +.feature-item .code-block { + font-size: 12px; +} + /* ── Dots ── */ .dot { display: inline-block; diff --git a/site/templates/index.html b/site/templates/index.html index 8373c19..badb5a1 100644 --- a/site/templates/index.html +++ b/site/templates/index.html @@ -92,31 +92,85 @@ {% if stands_list|length > 1 %}Стенд: {{ current_stand }}{% endif %}
Получить список сервисов:
curl -s {{ endpoint }}/{% if stands_list|length > 1 %}{{ current_stand }}/{% endif %}api/v1/svc/services | python3 -m json.tool
- Создать инстанс:
curl -s -X POST {{ endpoint }}/{% if stands_list|length > 1 %}{{ current_stand }}/{% endif %}api/v1/svc/instances \
-H "Content-Type: application/json" \
-d '{"serviceId": 1, "displayName": "my-instance"}' | python3 -m json.tool
- # Создать операцию
+ Создать операцию, установить параметры, запустить:
+ # 1. Создать операцию (получить opUid из ответа)
curl -s -X POST {{ endpoint }}/{% if stands_list|length > 1 %}{{ current_stand }}/{% endif %}api/v1/svc/instanceOperations \
-H "Content-Type: application/json" \
-d '{"instanceUid": "<uid>", "operation": "create", "svcOperationId": 18}'
-# Установить параметры
+# 2. Установить каждый параметр (повторить для всех)
curl -s -X POST {{ endpoint }}/{% if stands_list|length > 1 %}{{ current_stand }}/{% endif %}api/v1/svc/instanceOperationCfsParams \
-H "Content-Type: application/json" \
-d '{"instanceOperationUid": "<opUid>", "svcOperationCfsParamId": 242, "paramValue": "my-value"}'
-# Запустить
+# 3. Запустить операцию (будет ждать {{ delay }}s)
curl -s -X POST {{ endpoint }}/{% if stands_list|length > 1 %}{{ current_stand }}/{% endif %}api/v1/svc/instanceOperations/<opUid>/run
- 4. Сбросить состояние
- curl -s -X POST {{ endpoint }}/{% if stands_list|length > 1 %}{{ current_stand }}/{% endif %}api/v1/svc/_mock/reset \
- -H "X-Mock-Auth: test-token-123"
+
+
+ 🛠 Управление полигоном (служебные эндпоинты)
+
+
+
+ ⏱ Задержка операций
+ Каждый POST /run ждёт {{ delay }} секунд перед ответом — эмуляция времени выполнения в облаке.
+ Текущая: {{ delay }}s
+ # Сделать операции мгновенными
+curl -s -X POST {{ endpoint }}/{% if stands_list|length > 1 %}{{ current_stand }}/{% endif %}api/v1/svc/_mock/delay/0
+
+# Поставить задержку 3 секунды
+curl -s -X POST {{ endpoint }}/{% if stands_list|length > 1 %}{{ current_stand }}/{% endif %}api/v1/svc/_mock/delay/3
+
+# Максимум — 5 секунд (защита healthcheck'а)
+
+
+
+ 🧹 Сброс состояния
+ Удаляет все инстансы и операции на текущем стенде. Полезно перед каждым тестом.
+ curl -s -X POST {{ endpoint }}/{% if stands_list|length > 1 %}{{ current_stand }}/{% endif %}api/v1/svc/_mock/reset
+
+
+
+ 💥 Симуляция ошибок
+ Следующий POST /run упадёт с ошибкой. One-shot: после использования флаг сбрасывается.
+ # Включить
+curl -s -X POST {{ endpoint }}/{% if stands_list|length > 1 %}{{ current_stand }}/{% endif %}api/v1/svc/_mock/fail-next
+
+# Следующий run → {"ok": false, "error": "mock failure..."}
+# После этого — снова работает нормально
+
+
+
+ 📊 Отладка
+ Посмотреть текущее состояние всех инстансов и операций:
+ curl -s {{ endpoint }}/{% if stands_list|length > 1 %}{{ current_stand }}/{% endif %}api/v1/svc/_mock/state | python3 -m json.tool
+ Список загруженных сервисов:
+ curl -s {{ endpoint }}/{% if stands_list|length > 1 %}{{ current_stand }}/{% endif %}api/v1/svc/_mock/services | python3 -m json.tool
+
+
+
+
+
+ 🔁 Жизненный цикл операции
+
+ GET /instanceOperations/default/{svcOperationId} — узнать какие параметры нужны
+ POST /instanceOperations — создать операцию (получить opUid)
+ POST /instanceOperationCfsParams × N — установить каждый параметр
+ GET /{opUid}/validate-cfs — проверить корректность
+ POST /{opUid}/run — выполнить (ждёт {{ delay }}s)
+ GET /{opUid}?fields=dtFinish,isSuccessful — проверить результат
+