|
1 |
| -#region Copyright notice and license |
| 1 | +#region Copyright notice and license |
2 | 2 |
|
3 | 3 | // Copyright 2019 The gRPC Authors
|
4 | 4 | //
|
@@ -185,74 +185,6 @@ public static async Task<GrpcChannel> CreateChannel(
|
185 | 185 | return channel;
|
186 | 186 | }
|
187 | 187 |
|
188 |
| - public static Task WaitForChannelStateAsync(ILogger logger, GrpcChannel channel, ConnectivityState state, int channelId = 1) |
189 |
| - { |
190 |
| - return WaitForChannelStatesAsync(logger, channel, new[] { state }, channelId); |
191 |
| - } |
192 |
| - |
193 |
| - public static async Task WaitForChannelStatesAsync(ILogger logger, GrpcChannel channel, ConnectivityState[] states, int channelId = 1) |
194 |
| - { |
195 |
| - var statesText = string.Join(", ", states.Select(s => $"'{s}'")); |
196 |
| - logger.LogInformation($"Channel id {channelId}: Waiting for channel states {statesText}."); |
197 |
| - |
198 |
| - var currentState = channel.State; |
199 |
| - |
200 |
| - while (!states.Contains(currentState)) |
201 |
| - { |
202 |
| - logger.LogInformation($"Channel id {channelId}: Current channel state '{currentState}' doesn't match expected states {statesText}."); |
203 |
| - |
204 |
| - await channel.WaitForStateChangedAsync(currentState).DefaultTimeout(); |
205 |
| - currentState = channel.State; |
206 |
| - } |
207 |
| - |
208 |
| - logger.LogInformation($"Channel id {channelId}: Current channel state '{currentState}' matches expected states {statesText}."); |
209 |
| - } |
210 |
| - |
211 |
| - public static async Task<Subchannel> WaitForSubchannelToBeReadyAsync(ILogger logger, GrpcChannel channel, Func<SubchannelPicker?, Subchannel[]>? getPickerSubchannels = null) |
212 |
| - { |
213 |
| - var subChannel = (await WaitForSubchannelsToBeReadyAsync(logger, channel, 1)).Single(); |
214 |
| - return subChannel; |
215 |
| - } |
216 |
| - |
217 |
| - public static async Task<Subchannel[]> WaitForSubchannelsToBeReadyAsync(ILogger logger, GrpcChannel channel, int expectedCount, Func<SubchannelPicker?, Subchannel[]>? getPickerSubchannels = null) |
218 |
| - { |
219 |
| - if (getPickerSubchannels == null) |
220 |
| - { |
221 |
| - getPickerSubchannels = (picker) => |
222 |
| - { |
223 |
| - return picker switch |
224 |
| - { |
225 |
| - RoundRobinPicker roundRobinPicker => roundRobinPicker._subchannels.ToArray(), |
226 |
| - PickFirstPicker pickFirstPicker => new[] { pickFirstPicker.Subchannel }, |
227 |
| - EmptyPicker emptyPicker => Array.Empty<Subchannel>(), |
228 |
| - null => Array.Empty<Subchannel>(), |
229 |
| - _ => throw new Exception("Unexpected picker type: " + picker.GetType().FullName) |
230 |
| - }; |
231 |
| - }; |
232 |
| - } |
233 |
| - |
234 |
| - logger.LogInformation($"Waiting for subchannel ready count: {expectedCount}"); |
235 |
| - |
236 |
| - Subchannel[]? subChannelsCopy = null; |
237 |
| - await TestHelpers.AssertIsTrueRetryAsync(() => |
238 |
| - { |
239 |
| - var picker = channel.ConnectionManager._picker; |
240 |
| - subChannelsCopy = getPickerSubchannels(picker); |
241 |
| - logger.LogInformation($"Current subchannel ready count: {subChannelsCopy.Length}"); |
242 |
| - for (var i = 0; i < subChannelsCopy.Length; i++) |
243 |
| - { |
244 |
| - logger.LogInformation($"Ready subchannel: {subChannelsCopy[i]}"); |
245 |
| - } |
246 |
| - |
247 |
| - return subChannelsCopy.Length == expectedCount; |
248 |
| - }, "Wait for all subconnections to be connected."); |
249 |
| - |
250 |
| - logger.LogInformation($"Finished waiting for subchannel ready."); |
251 |
| - |
252 |
| - Debug.Assert(subChannelsCopy != null); |
253 |
| - return subChannelsCopy; |
254 |
| - } |
255 |
| - |
256 | 188 | public static T? GetInnerLoadBalancer<T>(GrpcChannel channel) where T : LoadBalancer
|
257 | 189 | {
|
258 | 190 | var balancer = (ChildHandlerLoadBalancer)channel.ConnectionManager._balancer!;
|
|
0 commit comments