From 8ab01c1fe6b756a4085f8847bc3b1bf24730ca2c Mon Sep 17 00:00:00 2001 From: Jihun Cho Date: Thu, 18 Jun 2020 17:12:19 -0700 Subject: [PATCH] rls: request factory prepends leading '/' (#7141) --- rls/src/main/java/io/grpc/rls/RlsRequestFactory.java | 8 ++++---- rls/src/test/java/io/grpc/rls/RlsLoadBalancerTest.java | 4 ++-- .../test/java/io/grpc/rls/RlsRequestFactoryTest.java | 10 +++++----- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/rls/src/main/java/io/grpc/rls/RlsRequestFactory.java b/rls/src/main/java/io/grpc/rls/RlsRequestFactory.java index 34571bd12b..5b137ceb6b 100644 --- a/rls/src/main/java/io/grpc/rls/RlsRequestFactory.java +++ b/rls/src/main/java/io/grpc/rls/RlsRequestFactory.java @@ -41,7 +41,7 @@ final class RlsRequestFactory { private final String target; /** - * schema: Path(serviceName/methodName or serviceName/*), rls request headerName, header fields. + * schema: Path(/serviceName/methodName or /serviceName/*), rls request headerName, header fields. */ private final Table keyBuilderTable; @@ -60,7 +60,7 @@ final class RlsRequestFactory { String method = name.getMethod() == null || name.getMethod().isEmpty() ? "*" : name.getMethod(); - String path = name.getService() + "/" + method; + String path = "/" + name.getService() + "/" + method; table.put(path, nameMatcher.getKey(), nameMatcher); } } @@ -73,11 +73,11 @@ final class RlsRequestFactory { RouteLookupRequest create(String service, String method, Metadata metadata) { checkNotNull(service, "service"); checkNotNull(method, "method"); - String path = service + "/" + method; + String path = "/" + service + "/" + method; Map keyBuilder = keyBuilderTable.row(path); // if no matching keyBuilder found, fall back to wildcard match (ServiceName/*) if (keyBuilder.isEmpty()) { - keyBuilder = keyBuilderTable.row(service + "/*"); + keyBuilder = keyBuilderTable.row("/" + service + "/*"); } Map rlsRequestHeaders = createRequestHeaders(metadata, keyBuilder); return new RouteLookupRequest(target, path, "grpc", rlsRequestHeaders); diff --git a/rls/src/test/java/io/grpc/rls/RlsLoadBalancerTest.java b/rls/src/test/java/io/grpc/rls/RlsLoadBalancerTest.java index cc8b010447..bf0a62fe64 100644 --- a/rls/src/test/java/io/grpc/rls/RlsLoadBalancerTest.java +++ b/rls/src/test/java/io/grpc/rls/RlsLoadBalancerTest.java @@ -140,10 +140,10 @@ public class RlsLoadBalancerTest { fakeRlsServerImpl.setLookupTable( ImmutableMap.of( new RouteLookupRequest( - "localhost:8972", "com.google/Search", "grpc", ImmutableMap.of()), + "localhost:8972", "/com.google/Search", "grpc", ImmutableMap.of()), new RouteLookupResponse(ImmutableList.of("wilderness"), "where are you?"), new RouteLookupRequest( - "localhost:8972", "com.google/Rescue", "grpc", ImmutableMap.of()), + "localhost:8972", "/com.google/Rescue", "grpc", ImmutableMap.of()), new RouteLookupResponse(ImmutableList.of("civilization"), "you are safe"))); RlsLoadBalancerProvider provider = new RlsLoadBalancerProvider(); diff --git a/rls/src/test/java/io/grpc/rls/RlsRequestFactoryTest.java b/rls/src/test/java/io/grpc/rls/RlsRequestFactoryTest.java index 0d680a53d2..157688b7e4 100644 --- a/rls/src/test/java/io/grpc/rls/RlsRequestFactoryTest.java +++ b/rls/src/test/java/io/grpc/rls/RlsRequestFactoryTest.java @@ -77,7 +77,7 @@ public class RlsRequestFactoryTest { RouteLookupRequest request = factory.create("com.google.service1", "Create", metadata); assertThat(request.getTargetType()).isEqualTo("grpc"); - assertThat(request.getPath()).isEqualTo("com.google.service1/Create"); + assertThat(request.getPath()).isEqualTo("/com.google.service1/Create"); assertThat(request.getServer()).isEqualTo("foo.google.com"); assertThat(request.getKeyMap()).containsExactly("user", "test", "id", "123"); } @@ -106,7 +106,7 @@ public class RlsRequestFactoryTest { RouteLookupRequest request = factory.create("com.google.service1" , "Update", metadata); assertThat(request.getTargetType()).isEqualTo("grpc"); - assertThat(request.getPath()).isEqualTo("com.google.service1/Update"); + assertThat(request.getPath()).isEqualTo("/com.google.service1/Update"); assertThat(request.getServer()).isEqualTo("foo.google.com"); assertThat(request.getKeyMap()).containsExactly("user", "test", "password", "hunter2"); } @@ -121,7 +121,7 @@ public class RlsRequestFactoryTest { RouteLookupRequest request = factory.create("com.google.service1", "Update", metadata); assertThat(request.getTargetType()).isEqualTo("grpc"); - assertThat(request.getPath()).isEqualTo("com.google.service1/Update"); + assertThat(request.getPath()).isEqualTo("/com.google.service1/Update"); assertThat(request.getServer()).isEqualTo("foo.google.com"); assertThat(request.getKeyMap()).containsExactly("user", "test"); } @@ -136,7 +136,7 @@ public class RlsRequestFactoryTest { RouteLookupRequest request = factory.create("abc.def.service999", "Update", metadata); assertThat(request.getTargetType()).isEqualTo("grpc"); - assertThat(request.getPath()).isEqualTo("abc.def.service999/Update"); + assertThat(request.getPath()).isEqualTo("/abc.def.service999/Update"); assertThat(request.getServer()).isEqualTo("foo.google.com"); assertThat(request.getKeyMap()).isEmpty(); } @@ -151,7 +151,7 @@ public class RlsRequestFactoryTest { RouteLookupRequest request = factory.create("com.google.service3", "Update", metadata); assertThat(request.getTargetType()).isEqualTo("grpc"); - assertThat(request.getPath()).isEqualTo("com.google.service3/Update"); + assertThat(request.getPath()).isEqualTo("/com.google.service3/Update"); assertThat(request.getServer()).isEqualTo("foo.google.com"); assertThat(request.getKeyMap()).containsExactly("user", "test"); }