Use explicit AppState dependency in config router and update task status

This commit is contained in:
2026-04-07 20:15:28 +02:00
parent 59a56f2e4f
commit 30e0dd71c9
3 changed files with 22 additions and 9 deletions

View File

@@ -44,6 +44,7 @@ import structlog
from fastapi import APIRouter, HTTPException, Path, Query, Request, status
from app.dependencies import (
AppStateDep,
AuthDep,
DbDep,
Fail2BanConfigDirDep,
@@ -678,6 +679,7 @@ async def update_map_color_thresholds(
async def activate_jail(
request: Request,
_auth: AuthDep,
app_state: AppStateDep,
config_dir: Fail2BanConfigDirDep,
socket_path: Fail2BanSocketDep,
name: _NamePath,
@@ -728,7 +730,7 @@ async def activate_jail(
# Record this activation so the health-check task can attribute a
# subsequent fail2ban crash to it.
request.app.state.last_activation = {
app_state.last_activation = {
"jail_name": name,
"at": datetime.datetime.now(tz=datetime.UTC),
}
@@ -736,9 +738,9 @@ async def activate_jail(
# If fail2ban stopped responding after the reload, create a pending-recovery
# record immediately (before the background health task notices).
if not result.fail2ban_running:
request.app.state.pending_recovery = PendingRecovery(
app_state.pending_recovery = PendingRecovery(
jail_name=name,
activated_at=request.app.state.last_activation["at"],
activated_at=app_state.last_activation["at"],
detected_at=datetime.datetime.now(tz=datetime.UTC),
)
@@ -932,6 +934,7 @@ async def get_pending_recovery(
async def rollback_jail(
request: Request,
_auth: AuthDep,
app_state: AppStateDep,
config_dir: Fail2BanConfigDirDep,
socket_path: Fail2BanSocketDep,
start_cmd: Fail2BanStartCommandDep,
@@ -971,8 +974,8 @@ async def rollback_jail(
# Clear pending recovery if fail2ban came back online.
if result.fail2ban_running:
request.app.state.pending_recovery = None
request.app.state.last_activation = None
app_state.pending_recovery = None
app_state.last_activation = None
return result