Refactor backend services and jail configuration
- Refactor action_config_service, filter_config_service, jail_config_service, and jail_service - Add jail_socket utility module for socket communication - Update test_jail_service with new test cases - Update architecture and task documentation Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -25,17 +25,6 @@ from app.exceptions import (
|
||||
JailNotFoundError,
|
||||
JailNotFoundInConfigError,
|
||||
)
|
||||
import app.services.jail_service as jail_service
|
||||
from app.utils.config_file_utils import (
|
||||
_build_inactive_jail,
|
||||
_parse_jails_sync as _config_file_parse_jails_sync,
|
||||
_get_active_jail_names as _config_file_get_active_jail_names,
|
||||
_probe_fail2ban_running,
|
||||
_safe_jail_name,
|
||||
_validate_jail_config_sync as _config_file_validate_jail_config_sync,
|
||||
start_daemon,
|
||||
wait_for_fail2ban,
|
||||
)
|
||||
from app.models.config import (
|
||||
ActivateJailRequest,
|
||||
InactiveJail,
|
||||
@@ -46,7 +35,23 @@ from app.models.config import (
|
||||
)
|
||||
from app.services import health_service
|
||||
from app.utils.async_utils import run_blocking
|
||||
from app.utils.fail2ban_client import Fail2BanClient
|
||||
from app.utils.config_file_utils import (
|
||||
_build_inactive_jail,
|
||||
_probe_fail2ban_running,
|
||||
_safe_jail_name,
|
||||
start_daemon,
|
||||
wait_for_fail2ban,
|
||||
)
|
||||
from app.utils.config_file_utils import (
|
||||
_get_active_jail_names as _config_file_get_active_jail_names,
|
||||
)
|
||||
from app.utils.config_file_utils import (
|
||||
_parse_jails_sync as _config_file_parse_jails_sync,
|
||||
)
|
||||
from app.utils.config_file_utils import (
|
||||
_validate_jail_config_sync as _config_file_validate_jail_config_sync,
|
||||
)
|
||||
from app.utils.jail_socket import reload_all
|
||||
|
||||
log: structlog.stdlib.BoundLogger = structlog.get_logger()
|
||||
|
||||
@@ -404,7 +409,7 @@ async def _activate_jail(
|
||||
# Activation reload — if it fails, roll back immediately #
|
||||
# ---------------------------------------------------------------------- #
|
||||
try:
|
||||
await jail_service.reload_all(socket_path, include_jails=[name])
|
||||
await reload_all(socket_path, include_jails=[name])
|
||||
except JailNotFoundError as exc:
|
||||
# Jail configuration is invalid (e.g. missing logpath that prevents
|
||||
# fail2ban from loading the jail). Roll back and provide a specific error.
|
||||
@@ -546,7 +551,7 @@ async def _rollback_activation_async(
|
||||
|
||||
# Step 2 — reload fail2ban with the restored config.
|
||||
try:
|
||||
await jail_service.reload_all(socket_path)
|
||||
await reload_all(socket_path)
|
||||
log.info("jail_activation_rollback_reload_ok", jail=name)
|
||||
except Exception as exc: # noqa: BLE001
|
||||
log.warning("jail_activation_rollback_reload_failed", jail=name, error=str(exc))
|
||||
@@ -626,7 +631,7 @@ async def _deactivate_jail(
|
||||
)
|
||||
|
||||
try:
|
||||
await jail_service.reload_all(socket_path, exclude_jails=[name])
|
||||
await reload_all(socket_path, exclude_jails=[name])
|
||||
except Exception as exc: # noqa: BLE001
|
||||
log.warning("reload_after_deactivate_failed", jail=name, error=str(exc))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user