From ec25beb66066cbf5385cea36e2d96e9c81e030bd Mon Sep 17 00:00:00 2001 From: Chengyuan Zhang Date: Tue, 3 Mar 2020 09:52:12 -0800 Subject: [PATCH] grpclb: clean up usage of raw load balancing config attributes in tests (#6798) --- .../grpc/grpclb/GrpclbLoadBalancerTest.java | 169 +++++------------- 1 file changed, 48 insertions(+), 121 deletions(-) diff --git a/grpclb/src/test/java/io/grpc/grpclb/GrpclbLoadBalancerTest.java b/grpclb/src/test/java/io/grpc/grpclb/GrpclbLoadBalancerTest.java index 2b6908436e..e7461f6399 100644 --- a/grpclb/src/test/java/io/grpc/grpclb/GrpclbLoadBalancerTest.java +++ b/grpclb/src/test/java/io/grpc/grpclb/GrpclbLoadBalancerTest.java @@ -54,7 +54,6 @@ import io.grpc.ClientStreamTracer; import io.grpc.ConnectivityState; import io.grpc.ConnectivityStateInfo; import io.grpc.EquivalentAddressGroup; -import io.grpc.LoadBalancer; import io.grpc.LoadBalancer.Helper; import io.grpc.LoadBalancer.PickResult; import io.grpc.LoadBalancer.PickSubchannelArgs; @@ -76,7 +75,6 @@ import io.grpc.inprocess.InProcessChannelBuilder; import io.grpc.inprocess.InProcessServerBuilder; import io.grpc.internal.BackoffPolicy; import io.grpc.internal.FakeClock; -import io.grpc.internal.JsonParser; import io.grpc.lb.v1.ClientStats; import io.grpc.lb.v1.ClientStatsPerToken; import io.grpc.lb.v1.FallbackResponse; @@ -96,7 +94,6 @@ import java.util.Arrays; import java.util.Collections; import java.util.LinkedList; import java.util.List; -import java.util.Map; import java.util.concurrent.TimeUnit; import javax.annotation.Nullable; import org.junit.After; @@ -179,8 +176,6 @@ public class GrpclbLoadBalancerTest { throw new AssertionError(e); } }); - private final GrpclbLoadBalancerProvider grpclbLoadBalancerProvider = - new GrpclbLoadBalancerProvider(); private static final ClientStreamTracer.StreamInfo STREAM_INFO = ClientStreamTracer.StreamInfo.newBuilder().build(); @@ -469,10 +464,7 @@ public class GrpclbLoadBalancerTest { long loadReportIntervalMillis = 1983; List grpclbBalancerList = createResolvedBalancerAddresses(1); - Attributes grpclbResolutionAttrs = Attributes.EMPTY; - deliverResolvedAddresses( - Collections.emptyList(), - grpclbBalancerList, grpclbResolutionAttrs); + deliverResolvedAddresses(Collections.emptyList(), grpclbBalancerList); // Fallback timer is started as soon as address is resolved. assertEquals(1, fakeClock.numPendingTasks(FALLBACK_MODE_TASK_FILTER)); @@ -696,10 +688,7 @@ public class GrpclbLoadBalancerTest { when(args.getHeaders()).thenReturn(headers); List grpclbBalancerList = createResolvedBalancerAddresses(1); - Attributes grpclbResolutionAttrs = Attributes.EMPTY; - deliverResolvedAddresses( - Collections.emptyList(), - grpclbBalancerList, grpclbResolutionAttrs); + deliverResolvedAddresses(Collections.emptyList(), grpclbBalancerList); assertEquals(1, fakeOobChannels.size()); verify(mockLbService).balanceLoad(lbResponseObserverCaptor.capture()); StreamObserver lbResponseObserver = lbResponseObserverCaptor.getValue(); @@ -736,10 +725,7 @@ public class GrpclbLoadBalancerTest { when(args.getHeaders()).thenReturn(headers); List grpclbBalancerList = createResolvedBalancerAddresses(1); - Attributes grpclbResolutionAttrs = Attributes.EMPTY; - deliverResolvedAddresses( - Collections.emptyList(), - grpclbBalancerList, grpclbResolutionAttrs); + deliverResolvedAddresses(Collections.emptyList(), grpclbBalancerList); assertEquals(1, fakeOobChannels.size()); verify(mockLbService).balanceLoad(lbResponseObserverCaptor.capture()); StreamObserver lbResponseObserver = lbResponseObserverCaptor.getValue(); @@ -795,8 +781,7 @@ public class GrpclbLoadBalancerTest { public void receiveNoBackendAndBalancerAddress() { deliverResolvedAddresses( Collections.emptyList(), - Collections.emptyList(), - Attributes.EMPTY); + Collections.emptyList()); verify(helper).updateBalancingState(eq(TRANSIENT_FAILURE), pickerCaptor.capture()); RoundRobinPicker picker = (RoundRobinPicker) pickerCaptor.getValue(); assertThat(picker.dropList).isEmpty(); @@ -826,9 +811,7 @@ public class GrpclbLoadBalancerTest { List grpclbBalancerList = createResolvedBalancerAddresses(1); EquivalentAddressGroup eag = grpclbBalancerList.get(0); - Attributes resolutionAttrs = Attributes.EMPTY; - deliverResolvedAddresses( - Collections.emptyList(), grpclbBalancerList, resolutionAttrs); + deliverResolvedAddresses(Collections.emptyList(), grpclbBalancerList); verify(helper).createOobChannel(eq(eag), eq(lbAuthority(0))); verify(mockLbService).balanceLoad(lbResponseObserverCaptor.capture()); @@ -839,10 +822,7 @@ public class GrpclbLoadBalancerTest { InOrder inOrder = inOrder(helper, subchannelPool); // Go to GRPCLB first List grpclbBalancerList = createResolvedBalancerAddresses(1); - Attributes grpclbResolutionAttrs = Attributes.EMPTY; - deliverResolvedAddresses( - Collections.emptyList(), - grpclbBalancerList, grpclbResolutionAttrs); + deliverResolvedAddresses(Collections.emptyList(), grpclbBalancerList); verify(helper).createOobChannel(eq(grpclbBalancerList.get(0)), eq(lbAuthority(0))); assertEquals(1, fakeOobChannels.size()); @@ -879,8 +859,7 @@ public class GrpclbLoadBalancerTest { public void grpclbUpdatedAddresses_avoidsReconnect() { List backendList = createResolvedBackendAddresses(1); List grpclbBalancerList = createResolvedBalancerAddresses(1); - Attributes grpclbResolutionAttrs = Attributes.EMPTY; - deliverResolvedAddresses(backendList, grpclbBalancerList, grpclbResolutionAttrs); + deliverResolvedAddresses(backendList, grpclbBalancerList); verify(helper).createOobChannel(eq(grpclbBalancerList.get(0)), eq(lbAuthority(0))); ManagedChannel oobChannel = fakeOobChannels.poll(); @@ -892,7 +871,7 @@ public class GrpclbLoadBalancerTest { grpclbBalancerList2.get(0).getAddresses().get(0), grpclbBalancerList2.get(1).getAddresses().get(0)), lbAttributes(lbAuthority(0))); - deliverResolvedAddresses(backendList2, grpclbBalancerList2, grpclbResolutionAttrs); + deliverResolvedAddresses(backendList2, grpclbBalancerList2); verify(helper).updateOobChannelAddresses(eq(oobChannel), eq(combinedEag)); assertEquals(1, lbRequestObservers.size()); // No additional RPC } @@ -901,8 +880,7 @@ public class GrpclbLoadBalancerTest { public void grpclbUpdatedAddresses_reconnectOnAuthorityChange() { List backendList = createResolvedBackendAddresses(1); List grpclbBalancerList = createResolvedBalancerAddresses(1); - Attributes grpclbResolutionAttrs = Attributes.EMPTY; - deliverResolvedAddresses(backendList, grpclbBalancerList, grpclbResolutionAttrs); + deliverResolvedAddresses(backendList, grpclbBalancerList); verify(helper).createOobChannel(eq(grpclbBalancerList.get(0)), eq(lbAuthority(0))); ManagedChannel oobChannel = fakeOobChannels.poll(); @@ -914,8 +892,7 @@ public class GrpclbLoadBalancerTest { Collections.singletonList( new EquivalentAddressGroup( new FakeSocketAddress("somethingNew"), lbAttributes(newAuthority))); - deliverResolvedAddresses( - backendList2, grpclbBalancerList2, grpclbResolutionAttrs); + deliverResolvedAddresses(backendList2, grpclbBalancerList2); assertTrue(oobChannel.isTerminated()); verify(helper).createOobChannel(eq(grpclbBalancerList2.get(0)), eq(newAuthority)); assertEquals(2, lbRequestObservers.size()); // An additional RPC @@ -925,10 +902,7 @@ public class GrpclbLoadBalancerTest { public void grpclbWorking() { InOrder inOrder = inOrder(helper, subchannelPool); List grpclbBalancerList = createResolvedBalancerAddresses(1); - Attributes grpclbResolutionAttrs = Attributes.EMPTY; - deliverResolvedAddresses( - Collections.emptyList(), - grpclbBalancerList, grpclbResolutionAttrs); + deliverResolvedAddresses(Collections.emptyList(), grpclbBalancerList); // Fallback timer is started as soon as the addresses are resolved. assertEquals(1, fakeClock.numPendingTasks(FALLBACK_MODE_TASK_FILTER)); @@ -1204,8 +1178,7 @@ public class GrpclbLoadBalancerTest { // Create balancer and backend addresses List backendList = createResolvedBackendAddresses(2); List grpclbBalancerList = createResolvedBalancerAddresses(1); - Attributes resolutionAttrs = Attributes.EMPTY; - deliverResolvedAddresses(backendList, grpclbBalancerList, resolutionAttrs); + deliverResolvedAddresses(backendList, grpclbBalancerList); inOrder.verify(helper) .createOobChannel(eq(grpclbBalancerList.get(0)), eq(lbAuthority(0))); @@ -1260,8 +1233,7 @@ public class GrpclbLoadBalancerTest { // Name resolver sends new resolution results without any backend addr ////////////////////////////////////////////////////////////////////// grpclbBalancerList = createResolvedBalancerAddresses(2); - deliverResolvedAddresses( - Collections.emptyList(),grpclbBalancerList, resolutionAttrs); + deliverResolvedAddresses(Collections.emptyList(),grpclbBalancerList); // New addresses are updated to the OobChannel inOrder.verify(helper).updateOobChannelAddresses( @@ -1283,7 +1255,7 @@ public class GrpclbLoadBalancerTest { //////////////////////////////////////////////////////////////// backendList = createResolvedBackendAddresses(2); grpclbBalancerList = createResolvedBalancerAddresses(1); - deliverResolvedAddresses(backendList, grpclbBalancerList, resolutionAttrs); + deliverResolvedAddresses(backendList, grpclbBalancerList); // New LB address is updated to the OobChannel inOrder.verify(helper).updateOobChannelAddresses( @@ -1334,7 +1306,7 @@ public class GrpclbLoadBalancerTest { /////////////////////////////////////////////////////////////// backendList = createResolvedBackendAddresses(1); grpclbBalancerList = createResolvedBalancerAddresses(1); - deliverResolvedAddresses(backendList, grpclbBalancerList, resolutionAttrs); + deliverResolvedAddresses(backendList, grpclbBalancerList); // Will not affect the round robin list at all inOrder.verify(helper, never()) .updateBalancingState(any(ConnectivityState.class), any(SubchannelPicker.class)); @@ -1351,8 +1323,7 @@ public class GrpclbLoadBalancerTest { // Create balancer and backend addresses List backendList = createResolvedBackendAddresses(2); List grpclbBalancerList = createResolvedBalancerAddresses(1); - Attributes resolutionAttrs = Attributes.EMPTY; - deliverResolvedAddresses(backendList, grpclbBalancerList, resolutionAttrs); + deliverResolvedAddresses(backendList, grpclbBalancerList); inOrder.verify(helper).createOobChannel(eq(grpclbBalancerList.get(0)), eq(lbAuthority(0))); @@ -1402,9 +1373,7 @@ public class GrpclbLoadBalancerTest { // Create just backend addresses List backendList = createResolvedBackendAddresses(2); - Attributes resolutionAttrs = Attributes.EMPTY; - deliverResolvedAddresses( - backendList, Collections.emptyList(), resolutionAttrs); + deliverResolvedAddresses(backendList, Collections.emptyList()); assertThat(logs).containsExactly( "INFO: Using fallback backends", @@ -1445,8 +1414,7 @@ public class GrpclbLoadBalancerTest { // Create balancer and backend addresses List backendList = createResolvedBackendAddresses(2); List grpclbBalancerList = createResolvedBalancerAddresses(1); - Attributes resolutionAttrs = Attributes.EMPTY; - deliverResolvedAddresses(backendList, grpclbBalancerList, resolutionAttrs); + deliverResolvedAddresses(backendList, grpclbBalancerList); inOrder.verify(helper).createOobChannel(eq(grpclbBalancerList.get(0)), eq(lbAuthority(0))); @@ -1605,8 +1573,7 @@ public class GrpclbLoadBalancerTest { new FakeSocketAddress("fake-address-3")), lbAttributes("fake-authority-1")); // Supporting multiple authorities would be good, one day - Attributes grpclbResolutionAttrs = Attributes.EMPTY; - deliverResolvedAddresses(backendList, grpclbBalancerList, grpclbResolutionAttrs); + deliverResolvedAddresses(backendList, grpclbBalancerList); verify(helper).createOobChannel(goldenOobChannelEag, "fake-authority-1"); } @@ -1621,10 +1588,7 @@ public class GrpclbLoadBalancerTest { InOrder inOrder = inOrder(mockLbService, backoffPolicyProvider, backoffPolicy1, backoffPolicy2, helper); List grpclbBalancerList = createResolvedBalancerAddresses(1); - Attributes grpclbResolutionAttrs = Attributes.EMPTY; - deliverResolvedAddresses( - Collections.emptyList(), - grpclbBalancerList, grpclbResolutionAttrs); + deliverResolvedAddresses(Collections.emptyList(), grpclbBalancerList); assertEquals(1, fakeOobChannels.size()); @SuppressWarnings("unused") @@ -1726,14 +1690,12 @@ public class GrpclbLoadBalancerTest { public void grpclbWorking_pickFirstMode() throws Exception { InOrder inOrder = inOrder(helper); - String lbConfig = "{\"childPolicy\" : [ {\"pick_first\" : {}} ]}"; List grpclbBalancerList = createResolvedBalancerAddresses(1); - Attributes grpclbResolutionAttrs = Attributes.newBuilder().set( - LoadBalancer.ATTR_LOAD_BALANCING_CONFIG, parseJsonObject(lbConfig)).build(); deliverResolvedAddresses( Collections.emptyList(), - grpclbBalancerList, grpclbResolutionAttrs); + grpclbBalancerList, + GrpclbConfig.create(Mode.PICK_FIRST)); assertEquals(1, fakeOobChannels.size()); verify(mockLbService).balanceLoad(lbResponseObserverCaptor.capture()); @@ -1857,7 +1819,6 @@ public class GrpclbLoadBalancerTest { deliverResolvedAddresses( Collections.emptyList(), grpclbBalancerList, - Attributes.EMPTY, GrpclbConfig.create(Mode.PICK_FIRST)); assertEquals(1, fakeOobChannels.size()); @@ -1969,23 +1930,20 @@ public class GrpclbLoadBalancerTest { @Test public void shutdownWithoutSubchannel_roundRobin() throws Exception { - subtestShutdownWithoutSubchannel("round_robin"); + subtestShutdownWithoutSubchannel(GrpclbConfig.create(Mode.ROUND_ROBIN)); } @Test public void shutdownWithoutSubchannel_pickFirst() throws Exception { - subtestShutdownWithoutSubchannel("pick_first"); + subtestShutdownWithoutSubchannel(GrpclbConfig.create(Mode.PICK_FIRST)); } - @SuppressWarnings("deprecation") // TODO(creamsoup) use parsed object - private void subtestShutdownWithoutSubchannel(String childPolicy) throws Exception { - String lbConfig = "{\"childPolicy\" : [ {\"" + childPolicy + "\" : {}} ]}"; + private void subtestShutdownWithoutSubchannel(GrpclbConfig grpclbConfig) { List grpclbBalancerList = createResolvedBalancerAddresses(1); - Attributes grpclbResolutionAttrs = Attributes.newBuilder().set( - LoadBalancer.ATTR_LOAD_BALANCING_CONFIG, parseJsonObject(lbConfig)).build(); deliverResolvedAddresses( Collections.emptyList(), - grpclbBalancerList, grpclbResolutionAttrs); + grpclbBalancerList, + grpclbConfig); verify(mockLbService).balanceLoad(lbResponseObserverCaptor.capture()); assertEquals(1, lbRequestObservers.size()); StreamObserver requestObserver = lbRequestObservers.poll(); @@ -2003,14 +1961,13 @@ public class GrpclbLoadBalancerTest { public void pickFirstMode_fallback() throws Exception { InOrder inOrder = inOrder(helper); - String lbConfig = "{\"childPolicy\" : [ {\"pick_first\" : {}} ]}"; - // Name resolver returns balancer and backend addresses List backendList = createResolvedBackendAddresses(2); List grpclbBalancerList = createResolvedBalancerAddresses(1); - Attributes grpclbResolutionAttrs = Attributes.newBuilder().set( - LoadBalancer.ATTR_LOAD_BALANCING_CONFIG, parseJsonObject(lbConfig)).build(); - deliverResolvedAddresses(backendList, grpclbBalancerList, grpclbResolutionAttrs); + deliverResolvedAddresses( + backendList, + grpclbBalancerList, + GrpclbConfig.create(Mode.PICK_FIRST)); // Attempted to connect to balancer assertEquals(1, fakeOobChannels.size()); @@ -2083,14 +2040,11 @@ public class GrpclbLoadBalancerTest { public void switchMode() throws Exception { InOrder inOrder = inOrder(helper); - String lbConfig = "{\"childPolicy\" : [ {\"round_robin\" : {}} ]}"; List grpclbBalancerList = createResolvedBalancerAddresses(1); - Attributes grpclbResolutionAttrs = Attributes.newBuilder().set( - LoadBalancer.ATTR_LOAD_BALANCING_CONFIG, parseJsonObject(lbConfig)).build(); - deliverResolvedAddresses( Collections.emptyList(), - grpclbBalancerList, grpclbResolutionAttrs); + grpclbBalancerList, + GrpclbConfig.create(Mode.ROUND_ROBIN)); assertEquals(1, fakeOobChannels.size()); ManagedChannel oobChannel = fakeOobChannels.poll(); @@ -2127,12 +2081,9 @@ public class GrpclbLoadBalancerTest { .returnSubchannel(any(Subchannel.class), any(ConnectivityStateInfo.class)); // Switch to PICK_FIRST - lbConfig = "{\"childPolicy\" : [ {\"pick_first\" : {}} ]}"; - grpclbResolutionAttrs = Attributes.newBuilder().set( - LoadBalancer.ATTR_LOAD_BALANCING_CONFIG, parseJsonObject(lbConfig)).build(); deliverResolvedAddresses( Collections.emptyList(), - grpclbBalancerList, grpclbResolutionAttrs); + grpclbBalancerList, GrpclbConfig.create(Mode.PICK_FIRST)); // GrpclbState will be shutdown, and a new one will be created @@ -2183,9 +2134,7 @@ public class GrpclbLoadBalancerTest { final List grpclbBalancerList = createResolvedBalancerAddresses(1); deliverResolvedAddresses( Collections.emptyList(), - grpclbBalancerList, - Attributes.EMPTY, - /* grpclbConfig= */ null); + grpclbBalancerList); assertEquals(1, fakeOobChannels.size()); ManagedChannel oobChannel = fakeOobChannels.poll(); @@ -2225,7 +2174,6 @@ public class GrpclbLoadBalancerTest { deliverResolvedAddresses( Collections.emptyList(), grpclbBalancerList, - Attributes.EMPTY, GrpclbConfig.create(Mode.PICK_FIRST)); // GrpclbState will be shutdown, and a new one will be created @@ -2264,19 +2212,17 @@ public class GrpclbLoadBalancerTest { inOrder.verify(helper).updateBalancingState(eq(IDLE), any(SubchannelPicker.class)); } - @SuppressWarnings("deprecation") @Test public void switchServiceName() throws Exception { InOrder inOrder = inOrder(helper); - String lbConfig = "{\"serviceName\": \"foo.google.com\"}"; + String serviceName = "foo.google.com"; List grpclbBalancerList = createResolvedBalancerAddresses(1); - Attributes grpclbResolutionAttrs = Attributes.newBuilder() - .set(LoadBalancer.ATTR_LOAD_BALANCING_CONFIG, parseJsonObject(lbConfig)) - .build(); deliverResolvedAddresses( - Collections.emptyList(), grpclbBalancerList, grpclbResolutionAttrs); + Collections.emptyList(), + grpclbBalancerList, + GrpclbConfig.create(Mode.ROUND_ROBIN, serviceName)); assertEquals(1, fakeOobChannels.size()); ManagedChannel oobChannel = fakeOobChannels.poll(); @@ -2286,7 +2232,7 @@ public class GrpclbLoadBalancerTest { StreamObserver lbRequestObserver = lbRequestObservers.poll(); verify(lbRequestObserver).onNext( eq(LoadBalanceRequest.newBuilder().setInitialRequest( - InitialLoadBalanceRequest.newBuilder().setName("foo.google.com").build()) + InitialLoadBalanceRequest.newBuilder().setName(serviceName).build()) .build())); // Simulate receiving LB response @@ -2313,14 +2259,12 @@ public class GrpclbLoadBalancerTest { .returnSubchannel(any(Subchannel.class), any(ConnectivityStateInfo.class)); // Switch to different serviceName - lbConfig = "{\"serviceName\": \"bar.google.com\"}"; - grpclbResolutionAttrs = Attributes.newBuilder().set( - LoadBalancer.ATTR_LOAD_BALANCING_CONFIG, parseJsonObject(lbConfig)).build(); + serviceName = "bar.google.com"; List newGrpclbResolutionList = createResolvedBalancerAddresses(1); deliverResolvedAddresses( Collections.emptyList(), newGrpclbResolutionList, - grpclbResolutionAttrs); + GrpclbConfig.create(Mode.ROUND_ROBIN, serviceName)); // GrpclbState will be shutdown, and a new one will be created assertThat(oobChannel.isShutdown()).isTrue(); @@ -2335,7 +2279,7 @@ public class GrpclbLoadBalancerTest { lbRequestObserver = lbRequestObservers.poll(); verify(lbRequestObserver).onNext( eq(LoadBalanceRequest.newBuilder().setInitialRequest( - InitialLoadBalanceRequest.newBuilder().setName("bar.google.com").build()) + InitialLoadBalanceRequest.newBuilder().setName(serviceName).build()) .build())); } @@ -2344,8 +2288,7 @@ public class GrpclbLoadBalancerTest { InOrder inOrder = inOrder(helper, subchannelPool); List backendList = createResolvedBackendAddresses(2); List grpclbBalancerList = createResolvedBalancerAddresses(2); - Attributes grpclbResolutionAttrs = Attributes.EMPTY; - deliverResolvedAddresses(backendList, grpclbBalancerList, grpclbResolutionAttrs); + deliverResolvedAddresses(backendList, grpclbBalancerList); // Fallback timer is started as soon as the addresses are resolved. assertEquals(1, fakeClock.numPendingTasks(FALLBACK_MODE_TASK_FILTER)); @@ -2564,29 +2507,18 @@ public class GrpclbLoadBalancerTest { }); } - @SuppressWarnings("deprecation") // TODO(creamsoup) migrate test cases to use GrpclbConfig. private void deliverResolvedAddresses( - List backendAddrs, - List balancerAddrs, - Attributes attrs) { - GrpclbConfig grpclbConfig; - Map lbJsonMap = attrs.get(LoadBalancer.ATTR_LOAD_BALANCING_CONFIG); - if (lbJsonMap != null) { - grpclbConfig = (GrpclbConfig) grpclbLoadBalancerProvider - .parseLoadBalancingPolicyConfig(lbJsonMap).getConfig(); - } else { - grpclbConfig = GrpclbConfig.create(Mode.ROUND_ROBIN); - } - deliverResolvedAddresses(backendAddrs, balancerAddrs, attrs, grpclbConfig); + final List backendAddrs, + List balancerAddrs) { + deliverResolvedAddresses(backendAddrs, balancerAddrs, GrpclbConfig.create(Mode.ROUND_ROBIN)); } private void deliverResolvedAddresses( final List backendAddrs, List balancerAddrs, - Attributes attributes, final GrpclbConfig grpclbConfig) { final Attributes attrs = - attributes.toBuilder().set(GrpclbConstants.ATTR_LB_ADDRS, balancerAddrs).build(); + Attributes.newBuilder().set(GrpclbConstants.ATTR_LB_ADDRS, balancerAddrs).build(); syncContext.execute(new Runnable() { @Override public void run() { @@ -2672,11 +2604,6 @@ public class GrpclbLoadBalancerTest { .build(); } - @SuppressWarnings("unchecked") - private static Map parseJsonObject(String json) throws Exception { - return (Map) JsonParser.parse(json); - } - private static class ServerEntry { final InetSocketAddress addr; final String token;