DiskSpaceService will not blow up if total or free space is null

pull/3113/head
Mark McDowall 11 years ago
parent 99336595b0
commit 274e2eac86

@ -69,14 +69,19 @@ namespace NzbDrone.Core.DiskSpace
try try
{ {
var freeSpace = _diskProvider.GetAvailableSpace(path).Value; var freeSpace = _diskProvider.GetAvailableSpace(path);
var totalSpace = _diskProvider.GetTotalSize(path).Value; var totalSpace = _diskProvider.GetTotalSize(path);
if (!freeSpace.HasValue || !totalSpace.HasValue)
{
continue;
}
diskSpace = new DiskSpace diskSpace = new DiskSpace
{ {
Path = path, Path = path,
FreeSpace = freeSpace, FreeSpace = freeSpace.Value,
TotalSpace = totalSpace TotalSpace = totalSpace.Value
}; };
diskSpace.Label = _diskProvider.GetVolumeLabel(path); diskSpace.Label = _diskProvider.GetVolumeLabel(path);

@ -24,7 +24,15 @@ namespace NzbDrone.Mono
try try
{ {
return GetDriveInfoLinux(path).AvailableFreeSpace; var driveInfo = GetDriveInfoLinux(path);
if (driveInfo == null)
{
Logger.Trace("Unable to get free space for '{0}', unable to find suitable drive", path);
return null;
}
return driveInfo.AvailableFreeSpace;
} }
catch (InvalidOperationException e) catch (InvalidOperationException e)
{ {
@ -132,7 +140,7 @@ namespace NzbDrone.Mono
drives.Where(drive => drives.Where(drive =>
drive.IsReady && path.StartsWith(drive.Name, StringComparison.CurrentCultureIgnoreCase)) drive.IsReady && path.StartsWith(drive.Name, StringComparison.CurrentCultureIgnoreCase))
.OrderByDescending(drive => drive.Name.Length) .OrderByDescending(drive => drive.Name.Length)
.First(); .FirstOrDefault();
} }
} }
} }

Loading…
Cancel
Save