fix refresh of mcp con

This commit is contained in:
larssand
2026-07-01 00:17:54 +02:00
parent 24561ac984
commit fcfbe04a58
2 changed files with 52 additions and 1 deletions

View File

@@ -436,6 +436,30 @@ def write_status(status: dict[str, object], output: str) -> None:
tmp_path.replace(output_path)
def write_refreshing_status(output: str) -> None:
output_path = Path(output)
try:
current = json.loads(output_path.read_text(encoding="utf-8")) if output_path.exists() else {}
except (json.JSONDecodeError, OSError):
current = {}
if not isinstance(current, dict):
current = {}
previous_mcp = current.get("capabilities", {}).get("graylog_mcp", {}) if isinstance(current.get("capabilities"), dict) else {}
current.setdefault("status_schema", 2)
current["generated_at"] = int(time.time())
current["stale"] = False
current["stale_reason"] = ""
capabilities = current.setdefault("capabilities", {})
if isinstance(capabilities, dict):
capabilities["graylog_mcp"] = {
"status": "refreshing",
"previous_status": previous_mcp.get("status", "") if isinstance(previous_mcp, dict) else "",
"previous_error": previous_mcp.get("error", "") if isinstance(previous_mcp, dict) else "",
}
current["status_cache"] = {"served_from_cache": False, "reason": "refreshing"}
write_status(current, output)
def monitor_loop(
log_path: str,
output: str,
@@ -460,6 +484,8 @@ def monitor_loop(
runtime = ConfigStore(config_path).read() if config_path and Path(config_path).exists() else {}
effective_llm = bool(runtime.get("llm_enabled")) if runtime else llm
effective_model = str(runtime.get("llm_model") or llm_model or "")
if runtime.get("log_source") == "graylog_mcp":
write_refreshing_status(output)
status = build_status(
log_path, policy_path=policy_path, anomaly_limit=anomaly_limit,
baseline_path=baseline_path, config_path=config_path, history_path=history_path,