xds: ClusterManagerLoadBalancer to use acceptResolvedAddresses() (#9572)

Part of an API migration away from handleResolvedAddresses().
This commit is contained in:
Terry Wilson 2022-10-10 15:51:10 -07:00 committed by GitHub
parent 8473e270eb
commit ab78f39f23
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 10 deletions

View File

@ -70,16 +70,16 @@ class ClusterManagerLoadBalancer extends LoadBalancer {
} }
@Override @Override
public void handleResolvedAddresses(ResolvedAddresses resolvedAddresses) { public boolean acceptResolvedAddresses(ResolvedAddresses resolvedAddresses) {
try { try {
resolvingAddresses = true; resolvingAddresses = true;
handleResolvedAddressesInternal(resolvedAddresses); return acceptResolvedAddressesInternal(resolvedAddresses);
} finally { } finally {
resolvingAddresses = false; resolvingAddresses = false;
} }
} }
public void handleResolvedAddressesInternal(ResolvedAddresses resolvedAddresses) { public boolean acceptResolvedAddressesInternal(ResolvedAddresses resolvedAddresses) {
logger.log(XdsLogLevel.DEBUG, "Received resolution result: {0}", resolvedAddresses); logger.log(XdsLogLevel.DEBUG, "Received resolution result: {0}", resolvedAddresses);
ClusterManagerConfig config = (ClusterManagerConfig) ClusterManagerConfig config = (ClusterManagerConfig)
resolvedAddresses.getLoadBalancingPolicyConfig(); resolvedAddresses.getLoadBalancingPolicyConfig();
@ -109,6 +109,7 @@ class ClusterManagerLoadBalancer extends LoadBalancer {
// Must update channel picker before return so that new RPCs will not be routed to deleted // Must update channel picker before return so that new RPCs will not be routed to deleted
// clusters and resolver can remove them in service config. // clusters and resolver can remove them in service config.
updateOverallBalancingState(); updateOverallBalancingState();
return true;
} }
@Override @Override
@ -126,11 +127,6 @@ class ClusterManagerLoadBalancer extends LoadBalancer {
} }
} }
@Override
public boolean canHandleEmptyAddressListFromNameResolution() {
return true;
}
@Override @Override
public void shutdown() { public void shutdown() {
logger.log(XdsLogLevel.INFO, "Shutdown"); logger.log(XdsLogLevel.INFO, "Shutdown");

View File

@ -267,7 +267,7 @@ public class ClusterManagerLoadBalancerTest {
} }
private void deliverResolvedAddresses(final Map<String, String> childPolicies, boolean failing) { private void deliverResolvedAddresses(final Map<String, String> childPolicies, boolean failing) {
clusterManagerLoadBalancer.handleResolvedAddresses( clusterManagerLoadBalancer.acceptResolvedAddresses(
ResolvedAddresses.newBuilder() ResolvedAddresses.newBuilder()
.setAddresses(Collections.<EquivalentAddressGroup>emptyList()) .setAddresses(Collections.<EquivalentAddressGroup>emptyList())
.setLoadBalancingPolicyConfig(buildConfig(childPolicies, failing)) .setLoadBalancingPolicyConfig(buildConfig(childPolicies, failing))
@ -348,12 +348,13 @@ public class ClusterManagerLoadBalancerTest {
} }
@Override @Override
public void handleResolvedAddresses(ResolvedAddresses resolvedAddresses) { public boolean acceptResolvedAddresses(ResolvedAddresses resolvedAddresses) {
config = resolvedAddresses.getLoadBalancingPolicyConfig(); config = resolvedAddresses.getLoadBalancingPolicyConfig();
if (failing) { if (failing) {
helper.updateBalancingState(TRANSIENT_FAILURE, new ErrorPicker(Status.INTERNAL)); helper.updateBalancingState(TRANSIENT_FAILURE, new ErrorPicker(Status.INTERNAL));
} }
return true;
} }
@Override @Override