use of io.envoyproxy.envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter in project grpc-java by grpc.
the class ClientXdsClientDataTest method parseHttpFilter_unsupportedButOptional.
@Test
public void parseHttpFilter_unsupportedButOptional() {
HttpFilter httpFilter = HttpFilter.newBuilder().setIsOptional(true).setTypedConfig(Any.pack(StringValue.of("unsupported"))).build();
assertThat(ClientXdsClient.parseHttpFilter(httpFilter, filterRegistry, true)).isNull();
}
use of io.envoyproxy.envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter in project grpc-java by grpc.
the class ClientXdsClientDataTest method parseHttpFilter_routerFilterForServer.
@Test
public void parseHttpFilter_routerFilterForServer() {
filterRegistry.register(RouterFilter.INSTANCE);
HttpFilter httpFilter = HttpFilter.newBuilder().setIsOptional(false).setName("envoy.router").setTypedConfig(Any.pack(Router.getDefaultInstance())).build();
FilterConfig config = ClientXdsClient.parseHttpFilter(httpFilter, filterRegistry, false).getStruct();
assertThat(config.typeUrl()).isEqualTo(RouterFilter.TYPE_URL);
}
use of io.envoyproxy.envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter in project grpc-java by grpc.
the class ClientXdsClientDataTest method parseHttpFilter_faultConfigForClient.
@Test
public void parseHttpFilter_faultConfigForClient() {
filterRegistry.register(FaultFilter.INSTANCE);
HttpFilter httpFilter = HttpFilter.newBuilder().setIsOptional(false).setName("envoy.fault").setTypedConfig(Any.pack(HTTPFault.newBuilder().setDelay(FaultDelay.newBuilder().setFixedDelay(Durations.fromNanos(1234L))).setAbort(FaultAbort.newBuilder().setHttpStatus(300).setPercentage(FractionalPercent.newBuilder().setNumerator(10).setDenominator(DenominatorType.HUNDRED))).build())).build();
FilterConfig config = ClientXdsClient.parseHttpFilter(httpFilter, filterRegistry, true).getStruct();
assertThat(config).isInstanceOf(FaultConfig.class);
}
use of io.envoyproxy.envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter in project grpc-java by grpc.
the class ClientXdsClientDataTest method parseHttpConnectionManager_duplicateHttpFilters.
@Test
public void parseHttpConnectionManager_duplicateHttpFilters() throws ResourceInvalidException {
HttpConnectionManager hcm = HttpConnectionManager.newBuilder().addHttpFilters(HttpFilter.newBuilder().setName("envoy.filter.foo").setIsOptional(true)).addHttpFilters(HttpFilter.newBuilder().setName("envoy.filter.foo").setIsOptional(true)).addHttpFilters(HttpFilter.newBuilder().setName("terminal").setTypedConfig(Any.pack(Router.newBuilder().build())).setIsOptional(true)).build();
thrown.expect(ResourceInvalidException.class);
thrown.expectMessage("HttpConnectionManager contains duplicate HttpFilter: envoy.filter.foo");
ClientXdsClient.parseHttpConnectionManager(hcm, new HashSet<String>(), filterRegistry, true, /* parseHttpFilter */
true);
}
use of io.envoyproxy.envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter in project grpc-java by grpc.
the class ClientXdsClientDataTest method parseHttpConnectionManager_terminalNotLast.
@Test
public void parseHttpConnectionManager_terminalNotLast() throws ResourceInvalidException {
filterRegistry.register(RouterFilter.INSTANCE);
HttpConnectionManager hcm = HttpConnectionManager.newBuilder().addHttpFilters(HttpFilter.newBuilder().setName("terminal").setTypedConfig(Any.pack(Router.newBuilder().build())).setIsOptional(true)).addHttpFilters(HttpFilter.newBuilder().setName("envoy.filter.foo").setIsOptional(true)).build();
thrown.expect(ResourceInvalidException.class);
thrown.expectMessage("A terminal HttpFilter must be the last filter: terminal");
ClientXdsClient.parseHttpConnectionManager(hcm, new HashSet<String>(), filterRegistry, true, /* parseHttpFilter */
true);
}
Aggregations