Fixed: Prevent getting disk space from returning no information when it partially fails

Closes #5247
This commit is contained in:
Mark McDowall 2023-02-12 19:50:15 -08:00
parent 9c1fd7c73e
commit 2c65e4fa41
1 changed files with 26 additions and 8 deletions

View File

@ -168,14 +168,32 @@ namespace NzbDrone.Mono.Disk
protected override List<IMount> GetAllMounts()
{
return _procMountProvider.GetMounts()
.Concat(GetDriveInfoMounts()
.Select(d => new DriveInfoMount(d, FindDriveType.Find(d.DriveFormat)))
.Where(d => d.DriveType == DriveType.Fixed ||
d.DriveType == DriveType.Network ||
d.DriveType == DriveType.Removable))
.DistinctBy(v => v.RootDirectory)
.ToList();
var mounts = new List<IMount>();
try
{
mounts.AddRange(_procMountProvider.GetMounts());
}
catch (Exception e)
{
_logger.Warn(e, $"Unable to get mounts: {e.Message}");
}
try
{
mounts.AddRange(GetDriveInfoMounts()
.Select(d => new DriveInfoMount(d, FindDriveType.Find(d.DriveFormat)))
.Where(d => d.DriveType == DriveType.Fixed ||
d.DriveType == DriveType.Network ||
d.DriveType == DriveType.Removable));
}
catch (Exception e)
{
_logger.Warn(e, $"Unable to get drive mounts: {e.Message}");
}
return mounts.DistinctBy(v => v.RootDirectory)
.ToList();
}
protected override bool IsSpecialMount(IMount mount)