From b6cc7f0dbabfa56eb206012dcb16f9d60194349c Mon Sep 17 00:00:00 2001 From: "Mark D. Roth" Date: Tue, 31 Jan 2023 09:23:12 -0800 Subject: [PATCH] stateful session affinity: fix propagation of overrideHostStatus (#32237) --- .../lb_policy/xds/xds_cluster_resolver.cc | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc b/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc index 00faa9f409b..d3a7209ef4d 100644 --- a/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +++ b/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc @@ -883,12 +883,17 @@ XdsClusterResolverLb::CreateChildPolicyConfigLocked() { child_policy = config_->xds_lb_policy(); } // Wrap the xDS LB policy in the xds_override_host policy. + Json::Object xds_override_host_lb_config = { + {"childPolicy", std::move(child_policy)}, + }; + if (!discovery_config.override_host_statuses.empty()) { + xds_override_host_lb_config["overrideHostStatus"] = + discovery_config.override_host_statuses; + } Json::Array xds_override_host_config = {Json::Object{ {"xds_override_host_experimental", - Json::Object{ - {"overrideHostStatus", discovery_config.override_host_statuses}, - {"childPolicy", std::move(child_policy)}, - }}}}; + std::move(xds_override_host_lb_config)}, + }}; // Wrap it in the xds_cluster_impl policy. Json::Array drop_categories; if (discovery_entry.latest_update->drop_config != nullptr) {