From fcb5d264a6d8563b68f54a0d50d0b94b0d4bedc9 Mon Sep 17 00:00:00 2001 From: cfredri4 <50839054+cfredri4@users.noreply.github.com> Date: Sat, 14 May 2022 07:48:53 +0200 Subject: [PATCH 1/3] Allow unspecified listener traffic direction to work with Istio --- xds/src/main/java/io/grpc/xds/ClientXdsClient.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/xds/src/main/java/io/grpc/xds/ClientXdsClient.java b/xds/src/main/java/io/grpc/xds/ClientXdsClient.java index 5af2042d478..727a9584749 100644 --- a/xds/src/main/java/io/grpc/xds/ClientXdsClient.java +++ b/xds/src/main/java/io/grpc/xds/ClientXdsClient.java @@ -385,7 +385,8 @@ static EnvoyServerProtoData.Listener parseServerSideListener( Listener proto, Set rdsResources, TlsContextManager tlsContextManager, FilterRegistry filterRegistry, Set certProviderInstances, boolean parseHttpFilter) throws ResourceInvalidException { - if (!proto.getTrafficDirection().equals(TrafficDirection.INBOUND)) { + if (!proto.getTrafficDirection().equals(TrafficDirection.INBOUND) + && !proto.getTrafficDirection().equals(TrafficDirection.UNSPECIFIED)) { throw new ResourceInvalidException( "Listener " + proto.getName() + " with invalid traffic direction: " + proto.getTrafficDirection()); From 734419d09b0b10e5317e877412b625de368424d5 Mon Sep 17 00:00:00 2001 From: cfredri4 <50839054+cfredri4@users.noreply.github.com> Date: Sat, 14 May 2022 08:40:56 +0200 Subject: [PATCH 2/3] Fix checkstyle --- xds/src/main/java/io/grpc/xds/ClientXdsClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xds/src/main/java/io/grpc/xds/ClientXdsClient.java b/xds/src/main/java/io/grpc/xds/ClientXdsClient.java index 727a9584749..47aab05aad8 100644 --- a/xds/src/main/java/io/grpc/xds/ClientXdsClient.java +++ b/xds/src/main/java/io/grpc/xds/ClientXdsClient.java @@ -386,7 +386,7 @@ static EnvoyServerProtoData.Listener parseServerSideListener( FilterRegistry filterRegistry, Set certProviderInstances, boolean parseHttpFilter) throws ResourceInvalidException { if (!proto.getTrafficDirection().equals(TrafficDirection.INBOUND) - && !proto.getTrafficDirection().equals(TrafficDirection.UNSPECIFIED)) { + && !proto.getTrafficDirection().equals(TrafficDirection.UNSPECIFIED)) { throw new ResourceInvalidException( "Listener " + proto.getName() + " with invalid traffic direction: " + proto.getTrafficDirection()); From dc0aefaad1ef77594c23bb661a9464054ce3f114 Mon Sep 17 00:00:00 2001 From: cfredri4 <50839054+cfredri4@users.noreply.github.com> Date: Sat, 14 May 2022 09:31:58 +0200 Subject: [PATCH 3/3] Add test --- .../test/java/io/grpc/xds/ClientXdsClientDataTest.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/xds/src/test/java/io/grpc/xds/ClientXdsClientDataTest.java b/xds/src/test/java/io/grpc/xds/ClientXdsClientDataTest.java index a4665285b7e..fdc39d6f6f8 100644 --- a/xds/src/test/java/io/grpc/xds/ClientXdsClientDataTest.java +++ b/xds/src/test/java/io/grpc/xds/ClientXdsClientDataTest.java @@ -2006,6 +2006,16 @@ public void parseServerSideListener_invalidTrafficDirection() throws ResourceInv listener, new HashSet(), null, filterRegistry, null, true /* does not matter */); } + @Test + public void parseServerSideListener_noTrafficDirection() throws ResourceInvalidException { + Listener listener = + Listener.newBuilder() + .setName("listener1") + .build(); + ClientXdsClient.parseServerSideListener( + listener, new HashSet(), null, filterRegistry, null, true /* does not matter */); + } + @Test public void parseServerSideListener_listenerFiltersPresent() throws ResourceInvalidException { Listener listener =