From 52cc2b3854464ff44adac804e65faffd76fb9817 Mon Sep 17 00:00:00 2001 From: jliddev Date: Sat, 24 Oct 2020 17:05:43 -0500 Subject: [PATCH] Bug Fixes Increase the timeout time for Curse API from 4 seconds to 10. If a provider responds with a 404, the circuit breaker should no longer be opened. --- WowUp.WPF/AddonProviders/CurseAddonProvider.cs | 5 +++-- WowUp.WPF/AddonProviders/TukUiAddonProvider.cs | 3 ++- WowUp.WPF/AddonProviders/WowInterfaceAddonProvider.cs | 7 ++++--- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/WowUp.WPF/AddonProviders/CurseAddonProvider.cs b/WowUp.WPF/AddonProviders/CurseAddonProvider.cs index 5262282d..3d8716a7 100644 --- a/WowUp.WPF/AddonProviders/CurseAddonProvider.cs +++ b/WowUp.WPF/AddonProviders/CurseAddonProvider.cs @@ -29,13 +29,14 @@ namespace WowUp.WPF.AddonProviders private const string HubApiUrl = "https://hub.wowup.io"; private const string ClassicGameVersionFlavor = "wow_classic"; private const string RetailGameVersionFlavor = "wow_retail"; - private const int HttpTimeoutSeconds = 4; + private const int HttpTimeoutSeconds = 10; private readonly ICacheService _cacheService; private readonly IAnalyticsService _analyticsService; private readonly AsyncPolicy CircuitBreaker = Policy - .Handle() + .Handle(ex => + ex.Call.Response.StatusCode != System.Net.HttpStatusCode.NotFound) .CircuitBreakerAsync( 2, TimeSpan.FromMinutes(1), diff --git a/WowUp.WPF/AddonProviders/TukUiAddonProvider.cs b/WowUp.WPF/AddonProviders/TukUiAddonProvider.cs index ff872b81..cd237008 100644 --- a/WowUp.WPF/AddonProviders/TukUiAddonProvider.cs +++ b/WowUp.WPF/AddonProviders/TukUiAddonProvider.cs @@ -31,7 +31,8 @@ namespace WowUp.WPF.AddonProviders private readonly IAnalyticsService _analyticsService; private readonly AsyncPolicy CircuitBreaker = Policy - .Handle() + .Handle(ex => + ex.Call.Response.StatusCode != System.Net.HttpStatusCode.NotFound) .CircuitBreakerAsync( 2, TimeSpan.FromMinutes(1), diff --git a/WowUp.WPF/AddonProviders/WowInterfaceAddonProvider.cs b/WowUp.WPF/AddonProviders/WowInterfaceAddonProvider.cs index cd891218..7c81edf6 100644 --- a/WowUp.WPF/AddonProviders/WowInterfaceAddonProvider.cs +++ b/WowUp.WPF/AddonProviders/WowInterfaceAddonProvider.cs @@ -29,7 +29,8 @@ namespace WowUp.WPF.AddonProviders private readonly ICacheService _cacheService; private readonly AsyncPolicy CircuitBreaker = Policy - .Handle() + .Handle(ex => + ex.Call.Response.StatusCode != System.Net.HttpStatusCode.NotFound) .CircuitBreakerAsync( 2, TimeSpan.FromMinutes(1), @@ -48,7 +49,7 @@ namespace WowUp.WPF.AddonProviders public async Task Scan( WowClientType clientType, - AddonChannelType addonChannelType, + AddonChannelType addonChannelType, IEnumerable addonFolders) { Log.Debug($"{Name} Scanning {addonFolders.Count()} addons"); @@ -143,7 +144,7 @@ namespace WowUp.WPF.AddonProviders } var addon = await GetAddonDetails(addonId); - if(addon == null) + if (addon == null) { throw new Exception($"Bad addon api response {addonUri}"); }