xds: set listeningAddresses in Node and metadata as per the new interface (#6880)
diff --git a/xds/src/main/java/io/grpc/xds/XdsClientImpl.java b/xds/src/main/java/io/grpc/xds/XdsClientImpl.java
index 1f80532..2e7d337 100644
--- a/xds/src/main/java/io/grpc/xds/XdsClientImpl.java
+++ b/xds/src/main/java/io/grpc/xds/XdsClientImpl.java
@@ -41,6 +41,7 @@
import io.envoyproxy.envoy.api.v2.RouteConfiguration;
import io.envoyproxy.envoy.api.v2.core.Address;
import io.envoyproxy.envoy.api.v2.core.Node;
+import io.envoyproxy.envoy.api.v2.core.SocketAddress;
import io.envoyproxy.envoy.api.v2.listener.FilterChain;
import io.envoyproxy.envoy.api.v2.listener.FilterChainMatch;
import io.envoyproxy.envoy.api.v2.route.Route;
@@ -450,12 +451,17 @@
/** In case of Listener watcher metadata to be updated to include port. */
private void updateNodeMetadataForListenerRequest(int port) {
- // TODO(sanjaypujare): fields of metadata to update to be finalized
Struct newMetadata = node.getMetadata().toBuilder()
- .putFields("listener_inbound_port",
- Value.newBuilder().setStringValue("" + port).build())
+ .putFields("TRAFFICDIRECTOR_PROXYLESS",
+ Value.newBuilder().setStringValue("1").build())
.build();
- node = node.toBuilder().setMetadata(newMetadata).build();
+ Address listeningAddress =
+ Address.newBuilder()
+ .setSocketAddress(
+ SocketAddress.newBuilder().setAddress("0.0.0.0").setPortValue(port).build())
+ .build();
+ node =
+ node.toBuilder().setMetadata(newMetadata).addListeningAddresses(listeningAddress).build();
}
@Override
diff --git a/xds/src/test/java/io/grpc/xds/XdsClientImplTestForListener.java b/xds/src/test/java/io/grpc/xds/XdsClientImplTestForListener.java
index 976bafc..d59bc12 100644
--- a/xds/src/test/java/io/grpc/xds/XdsClientImplTestForListener.java
+++ b/xds/src/test/java/io/grpc/xds/XdsClientImplTestForListener.java
@@ -228,10 +228,18 @@
private static Node getNodeToVerify() {
Struct newMetadata = NODE.getMetadata().toBuilder()
- .putFields("listener_inbound_port",
- Value.newBuilder().setStringValue("" + PORT).build())
+ .putFields("TRAFFICDIRECTOR_PROXYLESS",
+ Value.newBuilder().setStringValue("1").build())
.build();
- return NODE.toBuilder().setMetadata(newMetadata).build();
+ Address listeningAddress =
+ Address.newBuilder()
+ .setSocketAddress(
+ SocketAddress.newBuilder().setAddress("0.0.0.0").setPortValue(PORT).build())
+ .build();
+ return NODE.toBuilder()
+ .setMetadata(newMetadata)
+ .addListeningAddresses(listeningAddress)
+ .build();
}
private static DiscoveryRequest buildDiscoveryRequest(