Improve indexer health check messages (#1015)

* Improve indexer health check messages

Fixed: Improve health check message when all enabled indexers are disabled due to failures
Closes #1551

* Fixed: Health check failing and preventing others from running

* Fixed Indexer Health Checks and tests.
This commit is contained in:
Mitchell Cash
2017-03-05 17:50:45 +10:00
committed by Devin Buhl
parent 7433e89467
commit 9787cf6cdd
15 changed files with 273 additions and 150 deletions
+14 -10
View File
@@ -9,14 +9,13 @@ namespace NzbDrone.Core.Indexers
{
public interface IIndexerFactory : IProviderFactory<IIndexer, IndexerDefinition>
{
List<IIndexer> RssEnabled();
List<IIndexer> SearchEnabled();
List<IIndexer> RssEnabled(bool filterBlockedIndexers = true);
List<IIndexer> SearchEnabled(bool filterBlockedIndexers = true);
}
public class IndexerFactory : ProviderFactory<IIndexer, IndexerDefinition>, IIndexerFactory
{
private readonly IIndexerStatusService _indexerStatusService;
private readonly IIndexerRepository _providerRepository;
private readonly Logger _logger;
public IndexerFactory(IIndexerStatusService indexerStatusService,
@@ -28,7 +27,6 @@ namespace NzbDrone.Core.Indexers
: base(providerRepository, providers, container, eventAggregator, logger)
{
_indexerStatusService = indexerStatusService;
_providerRepository = providerRepository;
_logger = logger;
}
@@ -46,22 +44,28 @@ namespace NzbDrone.Core.Indexers
definition.SupportsSearch = provider.SupportsSearch;
}
public List<IIndexer> RssEnabled()
public List<IIndexer> RssEnabled(bool filterBlockedIndexers = true)
{
var enabledIndexers = GetAvailableProviders().Where(n => ((IndexerDefinition)n.Definition).EnableRss);
var indexers = FilterBlockedIndexers(enabledIndexers);
if (filterBlockedIndexers)
{
return FilterBlockedIndexers(enabledIndexers).ToList();
}
return indexers.ToList();
return enabledIndexers.ToList();
}
public List<IIndexer> SearchEnabled()
public List<IIndexer> SearchEnabled(bool filterBlockedIndexers = true)
{
var enabledIndexers = GetAvailableProviders().Where(n => ((IndexerDefinition)n.Definition).EnableSearch);
var indexers = FilterBlockedIndexers(enabledIndexers);
if (filterBlockedIndexers)
{
return FilterBlockedIndexers(enabledIndexers).ToList();
}
return indexers.ToList();
return enabledIndexers.ToList();
}
private IEnumerable<IIndexer> FilterBlockedIndexers(IEnumerable<IIndexer> indexers)