Skip to content

Commit

Permalink
chore(fix): directpath ipv4 connection should not fail for an ipv6-en…
Browse files Browse the repository at this point in the history
…abled test client (#388)

* chore(fix): directpath ipv4 connection should not fail for an ipv6-enabled test client

* rename bigtable-directpath-ipv4-it profile to bigtable-directpath-ipv4only-it

* fix sys prop & method naming

* fix err msg
  • Loading branch information
WeiranFang committed Aug 24, 2020
1 parent 667a21d commit a6e70a9
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 10 deletions.
10 changes: 5 additions & 5 deletions google-cloud-bigtable/pom.xml
Expand Up @@ -340,7 +340,7 @@
</profile>

<profile>
<id>bigtable-directpath-ipv4-it</id>
<id>bigtable-directpath-ipv4only-it</id>
<build>
<plugins>
<plugin>
Expand All @@ -359,16 +359,16 @@
<bigtable.env>cloud</bigtable.env>
<bigtable.data-endpoint>${bigtable.directpath-data-endpoint}</bigtable.data-endpoint>
<bigtable.admin-endpoint>${bigtable.directpath-admin-endpoint}</bigtable.admin-endpoint>
<bigtable.grpc-log-dir>${project.build.directory}/test-grpc-logs/directpath-ipv4-it</bigtable.grpc-log-dir>
<bigtable.grpc-log-dir>${project.build.directory}/test-grpc-logs/directpath-ipv4only-it</bigtable.grpc-log-dir>
<bigtable.attempt-directpath>true</bigtable.attempt-directpath>
<bigtable.directpath-ipv4>true</bigtable.directpath-ipv4>
<bigtable.directpath-ipv4only>true</bigtable.directpath-ipv4only>
</systemPropertyVariables>
<includes>
<!-- TODO(igorbernstein): Once the control plane is accessible via directpath, add admin tests -->
<include>com.google.cloud.bigtable.data.v2.it.*IT</include>
</includes>
<summaryFile>${project.build.directory}/failsafe-reports/failsafe-summary-directpath-ipv4-it.xml</summaryFile>
<reportsDirectory>${project.build.directory}/failsafe-reports/directpath-ipv4-it</reportsDirectory>
<summaryFile>${project.build.directory}/failsafe-reports/failsafe-summary-directpath-ipv4only-it.xml</summaryFile>
<reportsDirectory>${project.build.directory}/failsafe-reports/directpath-ipv4only-it</reportsDirectory>
</configuration>
</execution>
</executions>
Expand Down
Expand Up @@ -78,8 +78,8 @@ public boolean isDirectPathEnabled() {
return Boolean.getBoolean("bigtable.attempt-directpath");
}

public boolean isDirectPathIpv4() {
return Boolean.getBoolean("bigtable.directpath-ipv4");
public boolean isDirectPathIpv4Only() {
return Boolean.getBoolean("bigtable.directpath-ipv4only");
}

public String getPrimaryZone() {
Expand Down
Expand Up @@ -222,7 +222,8 @@ public void onHeaders(Metadata headers) {
+ " to the test environment's requirement for DirectPath."
+ " Expected test to access DirectPath via %s,"
+ " but RPC was destined for %s",
isDirectPathIpv4() ? "ipv4" : "ipv6", remoteAddr.toString()));
isDirectPathIpv4Only() ? "ipv4 only" : "ipv4 or ipv6",
remoteAddr.toString()));
}
super.onHeaders(headers);
}
Expand All @@ -238,10 +239,11 @@ private boolean verifyRemoteAddress(SocketAddress remoteAddr) {
if (remoteAddr instanceof InetSocketAddress) {
InetAddress inetAddress = ((InetSocketAddress) remoteAddr).getAddress();
String addr = inetAddress.getHostAddress();
if (isDirectPathIpv4()) {
if (isDirectPathIpv4Only()) {
return addr.startsWith(DP_IPV4_PREFIX);
} else {
return addr.startsWith(DP_IPV6_PREFIX);
// For an ipv6-enabled VM, client could connect to either ipv4 or ipv6 balancer addresses.
return addr.startsWith(DP_IPV6_PREFIX) || addr.startsWith(DP_IPV4_PREFIX);
}
}
return true;
Expand Down

0 comments on commit a6e70a9

Please sign in to comment.