refactor(decision_manager): I2 DI 化 MCP Providers + fix config list type bug
- DecisionManager.__init__ 注入 SSHProvider/K8sProvider,移除函數內 import+實例化 - config.get_tg_user_whitelist() 支援 list 輸入(monkeypatch/直接傳入),修復 AttributeError - LOGBOOK 更新(test fix 6e0ee8b) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1032,6 +1032,12 @@ class DecisionManager:
|
||||
# 2026-04-04 Claude Code
|
||||
from src.services.knowledge_service import get_knowledge_service
|
||||
self._knowledge_svc = get_knowledge_service()
|
||||
# I2 續修 2026-04-12 Claude Sonnet 4.6 Asia/Taipei: 注入 MCP Providers
|
||||
# 原 _collect_mcp_context 在函數內 import + 直接實例化,違反積木化鐵律
|
||||
from src.plugins.mcp.providers.ssh_provider import SSHProvider
|
||||
from src.plugins.mcp.providers.k8s_provider import K8sProvider
|
||||
self._ssh = SSHProvider()
|
||||
self._k8s = K8sProvider()
|
||||
|
||||
async def get_or_create_decision(
|
||||
self,
|
||||
@@ -1419,8 +1425,7 @@ class DecisionManager:
|
||||
_HOST_ALERT_PREFIXES = ("Host", "Docker", "Sentry", "Harbor", "Ollama", "Backup")
|
||||
if alertname.startswith(_HOST_ALERT_PREFIXES) and host:
|
||||
try:
|
||||
from src.plugins.mcp.providers.ssh_provider import SSHProvider
|
||||
ssh = SSHProvider()
|
||||
ssh = self._ssh
|
||||
# C4: 未知主機記錄 warning(不靜默跳過)
|
||||
_KNOWN_HOSTS = ("192.168.0.188", "192.168.0.110")
|
||||
if ssh.enabled and host not in _KNOWN_HOSTS:
|
||||
@@ -1456,8 +1461,7 @@ class DecisionManager:
|
||||
# K8s 告警 → K8s MCP 查 Pod 狀態
|
||||
if alertname.startswith(("Kube", "K3s")) or labels.get("pod"):
|
||||
try:
|
||||
from src.plugins.mcp.providers.k8s_provider import K8sProvider
|
||||
k8s = K8sProvider()
|
||||
k8s = self._k8s
|
||||
if k8s.enabled:
|
||||
pod = labels.get("pod", "")
|
||||
if pod:
|
||||
|
||||
Reference in New Issue
Block a user