|
19 | 19 | import static com.google.common.truth.Truth.assertThat; |
20 | 20 | import static io.envoyproxy.envoy.config.route.v3.RouteAction.ClusterSpecifierCase.CLUSTER_SPECIFIER_PLUGIN; |
21 | 21 | import static io.grpc.xds.XdsClusterResource.TRANSPORT_SOCKET_NAME_HTTP11_PROXY; |
| 22 | +import static io.grpc.xds.XdsClusterResource.TRANSPORT_SOCKET_NAME_RAW_BUFFER; |
22 | 23 | import static io.grpc.xds.XdsEndpointResource.GRPC_EXPERIMENTAL_XDS_DUALSTACK_ENDPOINTS; |
23 | 24 | import static org.junit.Assert.assertThrows; |
24 | 25 | import static org.junit.Assert.fail; |
|
97 | 98 | import io.envoyproxy.envoy.extensions.load_balancing_policies.client_side_weighted_round_robin.v3.ClientSideWeightedRoundRobin; |
98 | 99 | import io.envoyproxy.envoy.extensions.load_balancing_policies.wrr_locality.v3.WrrLocality; |
99 | 100 | import io.envoyproxy.envoy.extensions.transport_sockets.http_11_proxy.v3.Http11ProxyUpstreamTransport; |
| 101 | +import io.envoyproxy.envoy.extensions.transport_sockets.raw_buffer.v3.RawBuffer; |
100 | 102 | import io.envoyproxy.envoy.extensions.transport_sockets.tls.v3.CertificateProviderPluginInstance; |
101 | 103 | import io.envoyproxy.envoy.extensions.transport_sockets.tls.v3.CertificateValidationContext; |
102 | 104 | import io.envoyproxy.envoy.extensions.transport_sockets.tls.v3.CommonTlsContext; |
@@ -2639,6 +2641,50 @@ public void parseNonAggregateCluster_withHttp11ProxyTransportSocket() throws Exc |
2639 | 2641 | assertThat(result.isHttp11ProxyAvailable()).isTrue(); |
2640 | 2642 | } |
2641 | 2643 |
|
| 2644 | + /** |
| 2645 | + * Http11ProxyUpstreamTransport with transport_socket=RawBuffer must behave the same as |
| 2646 | + * when transport_socket is unset. |
| 2647 | + */ |
| 2648 | + @Test |
| 2649 | + public void parseNonAggregateCluster_withHttp11ProxyTransportSocket_rawBuffer() throws Exception { |
| 2650 | + XdsClusterResource.isEnabledXdsHttpConnect = true; |
| 2651 | + |
| 2652 | + // Nested transport_socket (Http11ProxyUpstreamTransport.transport_socket). |
| 2653 | + TransportSocket transportSocketRawBuffer = TransportSocket.newBuilder() |
| 2654 | + .setName(TRANSPORT_SOCKET_NAME_RAW_BUFFER) |
| 2655 | + .setTypedConfig(Any.pack(RawBuffer.getDefaultInstance())) |
| 2656 | + .build(); |
| 2657 | + |
| 2658 | + Http11ProxyUpstreamTransport http11ProxyUpstreamTransport = |
| 2659 | + Http11ProxyUpstreamTransport.newBuilder() |
| 2660 | + .setTransportSocket(transportSocketRawBuffer) |
| 2661 | + .build(); |
| 2662 | + |
| 2663 | + TransportSocket transportSocket = TransportSocket.newBuilder() |
| 2664 | + .setName(TRANSPORT_SOCKET_NAME_HTTP11_PROXY) |
| 2665 | + .setTypedConfig(Any.pack(http11ProxyUpstreamTransport)) |
| 2666 | + .build(); |
| 2667 | + |
| 2668 | + Cluster cluster = Cluster.newBuilder() |
| 2669 | + .setName("cluster-http11-proxy.googleapis.com") |
| 2670 | + .setType(DiscoveryType.EDS) |
| 2671 | + .setEdsClusterConfig( |
| 2672 | + EdsClusterConfig.newBuilder() |
| 2673 | + .setEdsConfig( |
| 2674 | + ConfigSource.newBuilder().setAds(AggregatedConfigSource.getDefaultInstance())) |
| 2675 | + .setServiceName("service-http11-proxy.googleapis.com")) |
| 2676 | + .setLbPolicy(LbPolicy.ROUND_ROBIN) |
| 2677 | + .setTransportSocket(transportSocket) |
| 2678 | + .build(); |
| 2679 | + |
| 2680 | + CdsUpdate result = |
| 2681 | + XdsClusterResource.processCluster(cluster, null, LRS_SERVER_INFO, |
| 2682 | + LoadBalancerRegistry.getDefaultRegistry()); |
| 2683 | + |
| 2684 | + assertThat(result).isNotNull(); |
| 2685 | + assertThat(result.isHttp11ProxyAvailable()).isTrue(); |
| 2686 | + } |
| 2687 | + |
2642 | 2688 | @Test |
2643 | 2689 | public void processCluster_parsesOrcaLrsPropagationMetrics() throws ResourceInvalidException { |
2644 | 2690 | LoadStatsManager2.isEnabledOrcaLrsPropagation = true; |
|
0 commit comments