snapshot: modularize workflow helper and task orchestration layers

This commit is contained in:
Md Bayazid Bostame
2026-03-28 09:10:07 +01:00
parent ee323106e9
commit e80a68d6f8
9 changed files with 748 additions and 1233 deletions

View File

@@ -8,7 +8,6 @@ from django.utils.translation import gettext as _
from .backup_ops import create_backup_bundle, latest_backup_health_snapshot, list_backup_bundles, verify_backup_bundle
from .models import AdminAuditLog, AsyncTaskLog, UserNotification, UserProfile
from .notifications import notify_user
from .roles import user_has_capability
@@ -96,9 +95,9 @@ def backup_recovery_page_impl(request):
)
def create_backup_from_admin_impl(request, *, audit_fn):
def create_backup_from_admin_impl(request, *, audit_fn, notify_user_fn, create_backup_bundle_fn):
try:
result = create_backup_bundle()
result = create_backup_bundle_fn()
audit_fn(
request,
'backup_created',
@@ -106,7 +105,7 @@ def create_backup_from_admin_impl(request, *, audit_fn):
target_label=result['name'],
details={'path': result['path']},
)
notify_user(
notify_user_fn(
user=request.user,
title=_('Backup erstellt: %(name)s') % {'name': result['name']},
body=_('Das Backup-Bundle wurde erfolgreich erstellt.'),
@@ -116,7 +115,7 @@ def create_backup_from_admin_impl(request, *, audit_fn):
)
messages.success(request, _('Backup wurde erstellt: %(name)s') % {'name': result['name']})
except Exception as exc:
notify_user(
notify_user_fn(
user=request.user,
title=_('Backup fehlgeschlagen'),
body=str(exc),
@@ -128,9 +127,9 @@ def create_backup_from_admin_impl(request, *, audit_fn):
return redirect('backup_recovery_page')
def verify_backup_from_admin_impl(request, backup_name: str, *, audit_fn):
def verify_backup_from_admin_impl(request, backup_name: str, *, audit_fn, notify_user_fn, verify_backup_bundle_fn):
try:
result = verify_backup_bundle(backup_name)
result = verify_backup_bundle_fn(backup_name)
audit_fn(
request,
'backup_verified',
@@ -138,7 +137,7 @@ def verify_backup_from_admin_impl(request, backup_name: str, *, audit_fn):
target_label=backup_name,
details={'summary': result['summary']},
)
notify_user(
notify_user_fn(
user=request.user,
title=_('Backup verifiziert: %(name)s') % {'name': result['name']},
body=result.get('summary') or _('Das Backup wurde erfolgreich verifiziert.'),
@@ -148,7 +147,7 @@ def verify_backup_from_admin_impl(request, backup_name: str, *, audit_fn):
)
messages.success(request, _('Backup wurde verifiziert: %(name)s') % {'name': result['name']})
except Exception as exc:
notify_user(
notify_user_fn(
user=request.user,
title=_('Backup-Verifikation fehlgeschlagen'),
body=str(exc),