From d86bf0e7427ebcea953d0aebc52f962f8adfe00f Mon Sep 17 00:00:00 2001 From: Tom Teichler <tom.teichler@teckids.org> Date: Sat, 20 Feb 2021 14:51:55 +0100 Subject: [PATCH] Use seperate settings for db and media backup --- aleksis/core/health_checks.py | 37 +++++++++++++++++------------------ aleksis/core/settings.py | 3 ++- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/aleksis/core/health_checks.py b/aleksis/core/health_checks.py index 3e89adcc0..806a7005a 100644 --- a/aleksis/core/health_checks.py +++ b/aleksis/core/health_checks.py @@ -28,34 +28,36 @@ class BaseBackupHealthCheck(BaseHealthCheckBackend): """Common base class for backup age checks.""" critical_service = False + content_type = None + configured_seconds = None def check_status(self): storage = get_storage() - last_backup = storage.list_backups(content_type=self.content_type)[-1] - last_backup_time = dbbackup_utils.filename_to_date(last_backup) - time_gone_since_backup = last_backup_time - datetime.now() + backups = storage.list_backups(content_type=self.content_type) + if backups: + last_backup = storage.list_backups(content_type=self.content_type)[-1] + last_backup_time = dbbackup_utils.filename_to_date(last_backup) + time_gone_since_backup = last_backup_time - datetime.now() - # Check if backup is older than configured time - if time_gone_since_backup.seconds > settings.DBBACKUP_SECONDS: - self.add_error(_(f"Last backup {time_gone_since_backup}!")) + # Check if backup is older than configured time + if time_gone_since_backup.seconds > self.configured_seconds: + self.add_error(_(f"Last backup {time_gone_since_backup}!")) + else: + self.add_error(_("No backup found!")) class DbBackupAgeHealthCheck(BaseBackupHealthCheck): """Checks if last backup file is less than configured seconds ago.""" content_type = "db" - - def identifier(self): - return self.__class__.__name__ + configured_seconds = settings.DBBACKUP_CHECK_SECONDS class MediaBackupAgeHealthCheck(BaseBackupHealthCheck): """Checks if last backup file is less than configured seconds ago.""" content_type = "media" - - def identifier(self): - return self.__class__.__name__ + configured_seconds = settings.MEDIABACKUP_CHECK_SECONDS class BackupJobHealthCheck(BaseHealthCheckBackend): @@ -64,13 +66,10 @@ class BackupJobHealthCheck(BaseHealthCheckBackend): critical_service = False def check_status(self): - task = TaskResult.objects.filter(task_name="aleksis.core.tasks.backup_data") + task = TaskResult.objects.filter(task_name="aleksis.core.tasks.backup_data").last() # Check if state is success - if not task.last(): + if not task: self.add_error(_("No backup result found!")) - if task.last() and task.last().status != "SUCCESS": - self.add_error(_(f"{task.last().status} - {task.last().result}")) - - def identifier(self): - return self.__class__.__name__ + elif task and task.status != "SUCCESS": + self.add_error(_(f"{task.status} - {task.result}")) diff --git a/aleksis/core/settings.py b/aleksis/core/settings.py index f16a7f2a4..1fa406111 100644 --- a/aleksis/core/settings.py +++ b/aleksis/core/settings.py @@ -730,6 +730,7 @@ HEALTH_CHECK = { "MEMORY_MIN": _settings.get("health.memory_min_mb", 500), } -DBBACKUP_SECONDS = _settings.get("backup.seconds", 7200) +DBBACKUP_CHECK_SECONDS = _settings.get("backup.database.check_seconds", 7200) +MEDIABACKUP_CHECK_SECONDS = _settings.get("backup.media.check_seconds", 7200) PROMETHEUS_EXPORT_MIGRATIONS = False -- GitLab