public static function createForSingleMonitor(array $monitorConfig) : Collection { return collect($monitorConfig['disks'])->map(function ($diskName) use($monitorConfig) { $backupDestination = BackupDestination::create($diskName, $monitorConfig['name']); return (new BackupDestinationStatus($backupDestination, $diskName))->setMaximumAgeOfNewestBackupInDays($monitorConfig['newestBackupsShouldNotBeOlderThanDays'])->setMaximumStorageUsageInMegabytes($monitorConfig['storageUsedMayNotBeHigherThanMegabytes']); }); }
public function isHealthy() : bool { if (!$this->backupDestination->isReachable()) { return false; } if ($this->usesTooMuchStorage()) { return false; } if ($this->newestBackupIsTooOld()) { return false; } return true; }
public static function createFromArray(array $config) : Collection { return collect($config['destination']['disks'])->map(function ($filesystemName) use($config) { return BackupDestination::create($filesystemName, $config['name']); }); }