2018-04-21 04:59:31 +00:00
using System ;
2014-03-14 10:15:30 +00:00
using NLog ;
using NzbDrone.Common.EnvironmentInfo ;
namespace NzbDrone.Core.HealthCheck.Checks
{
2014-04-10 00:15:13 +00:00
public class MonoVersionCheck : HealthCheckBase
2014-03-14 10:15:30 +00:00
{
2018-04-21 04:59:31 +00:00
private readonly IPlatformInfo _platformInfo ;
2014-03-14 10:15:30 +00:00
private readonly Logger _logger ;
2018-04-21 04:59:31 +00:00
public MonoVersionCheck ( IPlatformInfo platformInfo , Logger logger )
2014-03-14 10:15:30 +00:00
{
2018-04-21 04:59:31 +00:00
_platformInfo = platformInfo ;
2014-03-14 10:15:30 +00:00
_logger = logger ;
}
2014-04-10 00:15:13 +00:00
public override HealthCheck Check ( )
2014-03-14 10:15:30 +00:00
{
2018-04-21 04:59:31 +00:00
if ( ! PlatformInfo . IsMono )
2014-03-14 10:15:30 +00:00
{
2014-04-10 00:15:13 +00:00
return new HealthCheck ( GetType ( ) ) ;
2014-03-14 10:15:30 +00:00
}
2018-04-21 04:59:31 +00:00
var monoVersion = _platformInfo . Version ;
2014-03-14 10:15:30 +00:00
2018-04-21 04:59:31 +00:00
if ( monoVersion = = new Version ( "4.4.0" ) | | monoVersion = = new Version ( "4.4.1" ) )
{
_logger . Debug ( "Mono version {0}" , monoVersion ) ;
2018-04-21 05:52:26 +00:00
return new HealthCheck ( GetType ( ) , HealthCheckResult . Error , $"Your Mono version {monoVersion} has a bug that causes issues connecting to indexers/download clients. You should upgrade to a higher version" ) ;
2018-04-21 04:59:31 +00:00
}
2019-07-01 01:50:01 +00:00
if ( monoVersion > = new Version ( "4.4.2" ) )
2018-04-21 04:59:31 +00:00
{
2019-07-01 01:50:01 +00:00
_logger . Debug ( "Mono version is 4.4.2 or better: {0}" , monoVersion ) ;
2018-04-21 04:59:31 +00:00
return new HealthCheck ( GetType ( ) ) ;
}
2019-07-01 01:50:01 +00:00
return new HealthCheck ( GetType ( ) , HealthCheckResult . Warning , "You are running an old and unsupported version of Mono. Please upgrade Mono for improved stability." ) ;
2014-04-10 00:15:13 +00:00
}
2016-12-09 06:54:15 +00:00
public override bool CheckOnSchedule = > false ;
2014-03-14 10:15:30 +00:00
}
}