Рефакторинг API-слоя, операций и БД
This commit is contained in:
@@ -1,9 +1,18 @@
|
||||
"""
|
||||
Чтение списка разрешённых сервисов из services_{stand}.txt.
|
||||
|
||||
Формат файла: service_id service_name # описание
|
||||
Закомментированные (#) строки — исключены.
|
||||
Пустые строки — игнорируются.
|
||||
Зачем: не все сервисы должны быть доступны для тестирования.
|
||||
Файл services_test.txt (или services_dev.txt) содержит только те сервисы,
|
||||
которые настроены и готовы к автотестам.
|
||||
|
||||
Формат файла:
|
||||
# Комментарий
|
||||
1 dummy # Болванка
|
||||
21 vdc # Virtual Data Center
|
||||
|
||||
Закомментированные (#) строки исключаются.
|
||||
Пустые строки игнорируются.
|
||||
Первое слово в строке — service_id (число).
|
||||
|
||||
Файл лежит в site/config/, пушится с кодом, деплоится вместе с приложением.
|
||||
При изменении списка: edit → commit → push → redeploy.
|
||||
@@ -12,23 +21,36 @@
|
||||
import os
|
||||
import re
|
||||
|
||||
# Путь к папке config относительно этого файла:
|
||||
# service_list.py → site/operations/
|
||||
# dirname → site/operations
|
||||
# dirname(dirname) → site
|
||||
# + "config" → site/config
|
||||
_CONFIG_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "config")
|
||||
|
||||
|
||||
def load_service_ids(stand="test"):
|
||||
"""Вернуть set разрешённых service_id для указанного стенда."""
|
||||
"""Вернуть set разрешённых service_id для указанного стенда.
|
||||
|
||||
Args:
|
||||
stand: str — "dev" или "test".
|
||||
|
||||
Returns:
|
||||
set[int] — множество service_id. Пустой set если файла нет → показываем все."""
|
||||
path = os.path.join(_CONFIG_DIR, f"services_{stand}.txt")
|
||||
ids = set()
|
||||
try:
|
||||
with open(path) as f:
|
||||
for line in f:
|
||||
line = line.strip()
|
||||
# Пропускаем пустые строки и комментарии
|
||||
if not line or line.startswith("#"):
|
||||
continue
|
||||
# Формат: "1 dummy # Болванка"
|
||||
# Берём первое слово, проверяем что это число
|
||||
parts = line.split()
|
||||
if parts and parts[0].isdigit():
|
||||
ids.add(int(parts[0]))
|
||||
except FileNotFoundError:
|
||||
pass # файла нет — показываем все сервисы
|
||||
pass # файла нет — возвращаем пустой set → показываем все сервисы
|
||||
return ids
|
||||
|
||||
Reference in New Issue
Block a user