diff --git a/src/ReverseProxy/LoadBalancing/RoundRobinLoadBalancingPolicy.cs b/src/ReverseProxy/LoadBalancing/RoundRobinLoadBalancingPolicy.cs index 9c95b56b9..2abd5b73c 100644 --- a/src/ReverseProxy/LoadBalancing/RoundRobinLoadBalancingPolicy.cs +++ b/src/ReverseProxy/LoadBalancing/RoundRobinLoadBalancingPolicy.cs @@ -22,7 +22,7 @@ internal sealed class RoundRobinLoadBalancingPolicy : ILoadBalancingPolicy return null; } - var counter = _counters.GetOrCreateValue(context.GetClusterState()); + var counter = _counters.GetOrCreateValue(cluster); // Increment returns the new value and we want the first return value to be 0. var offset = counter.Increment() - 1; diff --git a/src/ReverseProxy/Model/HttpContextFeaturesExtensions.cs b/src/ReverseProxy/Model/HttpContextFeaturesExtensions.cs index 8499ae131..46981053a 100644 --- a/src/ReverseProxy/Model/HttpContextFeaturesExtensions.cs +++ b/src/ReverseProxy/Model/HttpContextFeaturesExtensions.cs @@ -12,16 +12,6 @@ namespace Microsoft.AspNetCore.Http /// public static class HttpContextFeaturesExtensions { - /// - /// Retrieves the instance associated with the current request. - /// - public static ClusterState GetClusterState(this HttpContext context) - { - var route = context.GetRouteModel(); - var cluster = route.Cluster ?? throw new InvalidOperationException($"The {typeof(RouteModel).FullName} is missing the {typeof(ClusterState).FullName}."); - return cluster; - } - /// /// Retrieves the instance associated with the current request. /// diff --git a/test/ReverseProxy.Tests/LoadBalancing/LoadBalancingPoliciesTests.cs b/test/ReverseProxy.Tests/LoadBalancing/LoadBalancingPoliciesTests.cs index ee16184e1..f37e1d0f2 100644 --- a/test/ReverseProxy.Tests/LoadBalancing/LoadBalancingPoliciesTests.cs +++ b/test/ReverseProxy.Tests/LoadBalancing/LoadBalancingPoliciesTests.cs @@ -135,7 +135,8 @@ public void PickDestination_RoundRobin_Works() var context = new DefaultHttpContext(); - var routeConfig = new RouteModel(new RouteConfig(), new ClusterState("cluster1"), HttpTransformer.Default); + var cluster = new ClusterState("cluster1"); + var routeConfig = new RouteModel(new RouteConfig(), cluster, HttpTransformer.Default); var feature = new ReverseProxyFeature() { Route = routeConfig, @@ -146,7 +147,7 @@ public void PickDestination_RoundRobin_Works() for (var i = 0; i < 10; i++) { - var result = loadBalancer.PickDestination(context, cluster: null, availableDestinations: destinations); + var result = loadBalancer.PickDestination(context, cluster, availableDestinations: destinations); Assert.Same(destinations[i % destinations.Length], result); result.ConcurrentRequestCount++; }