From 0bcad2e57b562b6390eb66411335b1f6976b54b4 Mon Sep 17 00:00:00 2001 From: Robin Dadswell <19610103+RobinDadswell@users.noreply.github.com> Date: Sun, 23 May 2021 23:41:16 +0100 Subject: [PATCH] Fixed: Root Folder Downloads check giving errors when RuTorrent is used (#1051) * Fixed: Root Folder Downloads check giving errors when RuTorrent is used * removed unnecessary if statement from RemotePathMappingCheck --- .../Download/DownloadClientInfo.cs | 5 ++ .../Checks/RemotePathMappingCheck.cs | 53 +++++++++---------- 2 files changed, 30 insertions(+), 28 deletions(-) diff --git a/src/NzbDrone.Core/Download/DownloadClientInfo.cs b/src/NzbDrone.Core/Download/DownloadClientInfo.cs index cf586ab64..734283ca4 100644 --- a/src/NzbDrone.Core/Download/DownloadClientInfo.cs +++ b/src/NzbDrone.Core/Download/DownloadClientInfo.cs @@ -5,6 +5,11 @@ namespace NzbDrone.Core.Download { public class DownloadClientInfo { + public DownloadClientInfo() + { + OutputRootFolders = new List(); + } + public bool IsLocalhost { get; set; } public List OutputRootFolders { get; set; } } diff --git a/src/NzbDrone.Core/HealthCheck/Checks/RemotePathMappingCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/RemotePathMappingCheck.cs index af5563ed8..b73ab9bdd 100644 --- a/src/NzbDrone.Core/HealthCheck/Checks/RemotePathMappingCheck.cs +++ b/src/NzbDrone.Core/HealthCheck/Checks/RemotePathMappingCheck.cs @@ -61,40 +61,37 @@ namespace NzbDrone.Core.HealthCheck.Checks { var status = client.GetStatus(); var folders = status.OutputRootFolders; - if (folders != null) + foreach (var folder in folders) { - foreach (var folder in folders) + if (!folder.IsValid) { - if (!folder.IsValid) + if (!status.IsLocalhost) { - if (!status.IsLocalhost) - { - return new HealthCheck(GetType(), HealthCheckResult.Error, $"Remote download client {client.Definition.Name} places downloads in {folder.FullPath} but this is not a valid {_osInfo.Name} path. Review your remote path mappings and download client settings.", "#bad_remote_path_mapping"); - } - else if (_osInfo.IsDocker) - { - return new HealthCheck(GetType(), HealthCheckResult.Error, $"You are using docker; download client {client.Definition.Name} places downloads in {folder.FullPath} but this is not a valid {_osInfo.Name} path. Review your remote path mappings and download client settings.", "#docker_bad_remote_path_mapping"); - } - else - { - return new HealthCheck(GetType(), HealthCheckResult.Error, $"Local download client {client.Definition.Name} places downloads in {folder.FullPath} but this is not a valid {_osInfo.Name} path. Review your download client settings.", "#bad_download_client_settings"); - } + return new HealthCheck(GetType(), HealthCheckResult.Error, $"Remote download client {client.Definition.Name} places downloads in {folder.FullPath} but this is not a valid {_osInfo.Name} path. Review your remote path mappings and download client settings.", "#bad_remote_path_mapping"); } + else if (_osInfo.IsDocker) + { + return new HealthCheck(GetType(), HealthCheckResult.Error, $"You are using docker; download client {client.Definition.Name} places downloads in {folder.FullPath} but this is not a valid {_osInfo.Name} path. Review your remote path mappings and download client settings.", "#docker_bad_remote_path_mapping"); + } + else + { + return new HealthCheck(GetType(), HealthCheckResult.Error, $"Local download client {client.Definition.Name} places downloads in {folder.FullPath} but this is not a valid {_osInfo.Name} path. Review your download client settings.", "#bad_download_client_settings"); + } + } - if (!_diskProvider.FolderExists(folder.FullPath)) + if (!_diskProvider.FolderExists(folder.FullPath)) + { + if (_osInfo.IsDocker) + { + return new HealthCheck(GetType(), HealthCheckResult.Error, $"You are using docker; download client {client.Definition.Name} places downloads in {folder.FullPath} but this directory does not appear to exist inside the container. Review your remote path mappings and container volume settings.", "#docker_bad_remote_path_mapping"); + } + else if (!status.IsLocalhost) + { + return new HealthCheck(GetType(), HealthCheckResult.Error, $"Remote download client {client.Definition.Name} places downloads in {folder.FullPath} but this directory does not appear to exist. Likely missing or incorrect remote path mapping.", "#bad_remote_path_mapping"); + } + else { - if (_osInfo.IsDocker) - { - return new HealthCheck(GetType(), HealthCheckResult.Error, $"You are using docker; download client {client.Definition.Name} places downloads in {folder.FullPath} but this directory does not appear to exist inside the container. Review your remote path mappings and container volume settings.", "#docker_bad_remote_path_mapping"); - } - else if (!status.IsLocalhost) - { - return new HealthCheck(GetType(), HealthCheckResult.Error, $"Remote download client {client.Definition.Name} places downloads in {folder.FullPath} but this directory does not appear to exist. Likely missing or incorrect remote path mapping.", "#bad_remote_path_mapping"); - } - else - { - return new HealthCheck(GetType(), HealthCheckResult.Error, $"Download client {client.Definition.Name} places downloads in {folder.FullPath} but Readarr cannot see this directory. You may need to adjust the folder's permissions.", "#permissions_error"); - } + return new HealthCheck(GetType(), HealthCheckResult.Error, $"Download client {client.Definition.Name} places downloads in {folder.FullPath} but Readarr cannot see this directory. You may need to adjust the folder's permissions.", "#permissions_error"); } } }