fix: get API_KEY directly from passwork on srvkem-ii-02
This commit is contained in:
+32
-16
@@ -13,29 +13,45 @@ import os
|
||||
# Отключаем ворнинги для чистой работы консоли
|
||||
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
|
||||
|
||||
# --- ИМПОРТ КОНФИГУРАЦИИ (ВСЕ ПЕРЕМЕННЫЕ ИДУТ ОТСЮДА) ---
|
||||
# config.py лежит в /opt/GigaAM/config/, а скрипт в /opt/GigaAM/sd/
|
||||
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||
# --- ИМПОРТ КОНФИГУРАЦИИ ---
|
||||
SERVER_URL = "https://servicedesk.sibcem.ru:8080"
|
||||
API_KEY = ""
|
||||
|
||||
# Пытаемся получить API_KEY из passwork
|
||||
try:
|
||||
import config as cfg
|
||||
SERVER_URL = getattr(cfg, 'SERVER_URL', None)
|
||||
API_KEY = getattr(cfg, 'API_KEY', None)
|
||||
print(f"LOG: ✅ Config импортирован, SERVER_URL={SERVER_URL}")
|
||||
# Пытаемся импортировать passwork напрямую
|
||||
sys.path.insert(0, "/opt/passwork")
|
||||
from passwork import get_passwork_secrets
|
||||
passwork_pool = get_passwork_secrets(required_cards=["sdesktoken"])
|
||||
card = passwork_pool.get("sdesktoken")
|
||||
if card:
|
||||
API_KEY = card.get("password", "").strip()
|
||||
print(f"LOG: 🔑 API_KEY получен из passwork (sdesktoken)")
|
||||
else:
|
||||
print("LOG: ⚠️ Карточка sdesktoken не найдена в passwork", file=sys.stderr)
|
||||
except Exception as e:
|
||||
print(f"LOG: ⚠️ Не удалось импортировать config: {e}", file=sys.stderr)
|
||||
SERVER_URL = None
|
||||
API_KEY = None
|
||||
print(f"LOG: ⚠️ Passwork ошибка: {e}", file=sys.stderr)
|
||||
|
||||
# Fallback если SERVER_URL не определён
|
||||
if not SERVER_URL:
|
||||
SERVER_URL = os.environ.get("SD_SERVER_URL", "https://servicedesk.sibcem.ru:8080")
|
||||
print(f"LOG: ⚠️ SERVER_URL не найден, используем: {SERVER_URL}")
|
||||
# Fallback: пробуем config.py
|
||||
if not API_KEY:
|
||||
try:
|
||||
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||
import config as cfg
|
||||
API_KEY = getattr(cfg, 'API_KEY', "")
|
||||
if API_KEY:
|
||||
print("LOG: 🔑 API_KEY получен из config.py")
|
||||
except Exception as e:
|
||||
print(f"LOG: ⚠️ Config ошибка: {e}", file=sys.stderr)
|
||||
|
||||
# Fallback если API_KEY не определён
|
||||
# Fallback: env var
|
||||
if not API_KEY:
|
||||
API_KEY = os.environ.get("SD_API_KEY", "")
|
||||
print("LOG: ⚠️ API_KEY не найден, используется пустой", file=sys.stderr)
|
||||
if API_KEY:
|
||||
print("LOG: 🔑 API_KEY получен из SD_API_KEY")
|
||||
|
||||
if not API_KEY:
|
||||
print("LOG: ❌ ОШИБКА: API_KEY не найден нигде! Нужен passwork или SD_API_KEY", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
print(f"LOG: 🔑 Подключение к {SERVER_URL}")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user