Skip to content

Commit 54aa632

Browse files
authored
add support of the following domains: eu, au, uk (#1587)
1 parent 6ae0b39 commit 54aa632

File tree

2 files changed

+25
-10
lines changed

2 files changed

+25
-10
lines changed

wrapper/src/main/java/software/amazon/jdbc/util/RdsUtils.java

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -79,36 +79,37 @@ public class RdsUtils {
7979
"^(?<instance>.+)\\."
8080
+ "(?<dns>proxy-|cluster-|cluster-ro-|cluster-custom-|shardgrp-)?"
8181
+ "(?<domain>[a-zA-Z0-9]+\\.(?<region>[a-zA-Z0-9\\-]+)"
82-
+ "\\.rds\\.amazonaws\\.com\\.?)$",
82+
+ "\\.(rds|rds-fips)\\.amazonaws\\.(com|au|eu|uk)\\.?)$",
8383
Pattern.CASE_INSENSITIVE);
8484

8585
private static final Pattern AURORA_CLUSTER_PATTERN =
8686
Pattern.compile(
8787
"^(?<instance>.+)\\."
8888
+ "(?<dns>cluster-|cluster-ro-)+"
8989
+ "(?<domain>[a-zA-Z0-9]+\\.(?<region>[a-zA-Z0-9\\-]+)"
90-
+ "\\.rds\\.amazonaws\\.com\\.?)$",
90+
+ "\\.(rds|rds-fips)\\.amazonaws\\.(com|au|eu|uk)\\.?)$",
9191
Pattern.CASE_INSENSITIVE);
9292
private static final Pattern AURORA_LIMITLESS_CLUSTER_PATTERN =
9393
Pattern.compile(
9494
"(?<instance>.+)\\."
9595
+ "(?<dns>shardgrp-)+"
9696
+ "(?<domain>[a-zA-Z0-9]+\\.(?<region>[a-zA-Z0-9\\-]+)"
97-
+ "\\.rds\\.(amazonaws\\.com\\.?|amazonaws\\.com\\.cn\\.?|sc2s\\.sgov\\.gov\\.?|c2s\\.ic\\.gov\\.?))$",
97+
+ "\\.(rds|rds-fips)\\.(amazonaws\\.com\\.?|amazonaws\\.eu\\.?|amazonaws\\.au\\.?|amazonaws\\.uk\\.?"
98+
+ "|amazonaws\\.com\\.cn\\.?|sc2s\\.sgov\\.gov\\.?|c2s\\.ic\\.gov\\.?))$",
9899
Pattern.CASE_INSENSITIVE);
99100
private static final Pattern AURORA_CHINA_DNS_PATTERN =
100101
Pattern.compile(
101102
"^(?<instance>.+)\\."
102103
+ "(?<dns>proxy-|cluster-|cluster-ro-|cluster-custom-|shardgrp-)?"
103-
+ "(?<domain>[a-zA-Z0-9]+\\.rds\\.(?<region>[a-zA-Z0-9\\-]+)"
104+
+ "(?<domain>[a-zA-Z0-9]+\\.(rds|rds-fips)\\.(?<region>[a-zA-Z0-9\\-]+)"
104105
+ "\\.amazonaws\\.com\\.cn\\.?)$",
105106
Pattern.CASE_INSENSITIVE);
106107

107108
private static final Pattern AURORA_CHINA_CLUSTER_PATTERN =
108109
Pattern.compile(
109110
"^(?<instance>.+)\\."
110111
+ "(?<dns>cluster-|cluster-ro-)+"
111-
+ "(?<domain>[a-zA-Z0-9]+\\.rds\\.(?<region>[a-zA-Z0-9\\-]+)"
112+
+ "(?<domain>[a-zA-Z0-9]+\\.(rds|rds-fips)\\.(?<region>[a-zA-Z0-9\\-]+)"
112113
+ "\\.amazonaws\\.com\\.cn\\.?)$",
113114
Pattern.CASE_INSENSITIVE);
114115

@@ -117,37 +118,37 @@ public class RdsUtils {
117118
"^(?<instance>.+)\\."
118119
+ "(?<dns>proxy-|cluster-|cluster-ro-|cluster-custom-|shardgrp-)?"
119120
+ "(?<domain>[a-zA-Z0-9]+\\.(?<region>[a-zA-Z0-9\\-]+)"
120-
+ "\\.rds\\.amazonaws\\.com\\.cn\\.?)$",
121+
+ "\\.(rds|rds-fips)\\.amazonaws\\.com\\.cn\\.?)$",
121122
Pattern.CASE_INSENSITIVE);
122123

123124
private static final Pattern AURORA_OLD_CHINA_CLUSTER_PATTERN =
124125
Pattern.compile(
125126
"^(?<instance>.+)\\."
126127
+ "(?<dns>cluster-|cluster-ro-)+"
127128
+ "(?<domain>[a-zA-Z0-9]+\\.(?<region>[a-zA-Z0-9\\-]+)"
128-
+ "\\.rds\\.amazonaws\\.com\\.cn\\.?)$",
129+
+ "\\.(rds|rds-fips)\\.amazonaws\\.com\\.cn\\.?)$",
129130
Pattern.CASE_INSENSITIVE);
130131

131132
private static final Pattern AURORA_GOV_DNS_PATTERN =
132133
Pattern.compile(
133134
"^(?<instance>.+)\\."
134135
+ "(?<dns>proxy-|cluster-|cluster-ro-|cluster-custom-|shardgrp-)?"
135-
+ "(?<domain>[a-zA-Z0-9]+\\.rds\\.(?<region>[a-zA-Z0-9\\-]+)"
136+
+ "(?<domain>[a-zA-Z0-9]+\\.(rds|rds-fips)\\.(?<region>[a-zA-Z0-9\\-]+)"
136137
+ "\\.(amazonaws\\.com\\.?|c2s\\.ic\\.gov\\.?|sc2s\\.sgov\\.gov\\.?))$",
137138
Pattern.CASE_INSENSITIVE);
138139

139140
private static final Pattern AURORA_GOV_CLUSTER_PATTERN =
140141
Pattern.compile(
141142
"^(?<instance>.+)\\."
142143
+ "(?<dns>cluster-|cluster-ro-)+"
143-
+ "(?<domain>[a-zA-Z0-9]+\\.rds\\.(?<region>[a-zA-Z0-9\\-]+)"
144+
+ "(?<domain>[a-zA-Z0-9]+\\.(rds|rds-fips)\\.(?<region>[a-zA-Z0-9\\-]+)"
144145
+ "\\.(amazonaws\\.com\\.?|c2s\\.ic\\.gov\\.?|sc2s\\.sgov\\.gov\\.?))$",
145146
Pattern.CASE_INSENSITIVE);
146147

147148
private static final Pattern ELB_PATTERN =
148149
Pattern.compile(
149150
"^(?<instance>.+)\\.elb\\."
150-
+ "((?<region>[a-zA-Z0-9\\-]+)\\.amazonaws\\.com\\.?)$",
151+
+ "((?<region>[a-zA-Z0-9\\-]+)\\.amazonaws\\.(com|au|eu|uk)\\.?)$",
151152
Pattern.CASE_INSENSITIVE);
152153

153154
private static final Pattern IP_V4 =

wrapper/src/test/java/software/amazon/jdbc/util/RdsUtilsTests.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ public class RdsUtilsTests {
4242
private static final String usEastRegionLimitlessDbShardGroup =
4343
"database-test-name.shardgrp-XYZ.us-east-2.rds.amazonaws.com";
4444

45+
private static final String euRedshift =
46+
"redshift-test-name.XYZ.eusc-de-east-1.rds.amazonaws.eu";
47+
4548
private static final String chinaRegionCluster =
4649
"database-test-name.cluster-XYZ.rds.cn-northwest-1.amazonaws.com.cn";
4750
private static final String chinaRegionClusterTrailingDot =
@@ -133,6 +136,7 @@ public void testIsRdsDns() {
133136
assertFalse(target.isRdsDns(usEastRegionElbUrl));
134137
assertFalse(target.isRdsDns(usEastRegionElbUrlTrailingDot));
135138
assertTrue(target.isRdsDns(usEastRegionLimitlessDbShardGroup));
139+
assertTrue(target.isRdsDns(euRedshift));
136140

137141
assertTrue(target.isRdsDns(chinaRegionCluster));
138142
assertTrue(target.isRdsDns(chinaRegionClusterTrailingDot));
@@ -210,6 +214,9 @@ public void testGetRdsInstanceHostPattern() {
210214
assertEquals(oldChinaExpectedHostPattern, target.getRdsInstanceHostPattern(oldChinaRegionProxy));
211215
assertEquals(oldChinaExpectedHostPattern, target.getRdsInstanceHostPattern(oldChinaRegionCustomDomain));
212216
assertEquals(oldChinaExpectedHostPattern, target.getRdsInstanceHostPattern(oldChinaRegionLimitlessDbShardGroup));
217+
218+
final String euRedshiftExpectedHostPattern = "?.XYZ.eusc-de-east-1.rds.amazonaws.eu";
219+
assertEquals(euRedshiftExpectedHostPattern, target.getRdsInstanceHostPattern(euRedshift));
213220
}
214221

215222
@Test
@@ -221,6 +228,7 @@ public void testIsRdsClusterDns() {
221228
assertFalse(target.isRdsClusterDns(usEastRegionCustomDomain));
222229
assertFalse(target.isRdsClusterDns(usEastRegionElbUrl));
223230
assertFalse(target.isRdsClusterDns(usEastRegionLimitlessDbShardGroup));
231+
assertFalse(target.isRdsClusterDns(euRedshift));
224232

225233
assertTrue(target.isRdsClusterDns(usIsobEastRegionCluster));
226234
assertTrue(target.isRdsClusterDns(usIsobEastRegionClusterReadOnly));
@@ -260,6 +268,7 @@ public void testIsWriterClusterDns() {
260268
assertFalse(target.isWriterClusterDns(usEastRegionCustomDomain));
261269
assertFalse(target.isWriterClusterDns(usEastRegionElbUrl));
262270
assertFalse(target.isWriterClusterDns(usEastRegionLimitlessDbShardGroup));
271+
assertFalse(target.isWriterClusterDns(euRedshift));
263272

264273
assertTrue(target.isWriterClusterDns(usIsobEastRegionCluster));
265274
assertFalse(target.isWriterClusterDns(usIsobEastRegionClusterReadOnly));
@@ -299,6 +308,7 @@ public void testIsReaderClusterDns() {
299308
assertFalse(target.isReaderClusterDns(usEastRegionCustomDomain));
300309
assertFalse(target.isReaderClusterDns(usEastRegionElbUrl));
301310
assertFalse(target.isReaderClusterDns(usEastRegionLimitlessDbShardGroup));
311+
assertFalse(target.isReaderClusterDns(euRedshift));
302312

303313
assertFalse(target.isReaderClusterDns(usIsobEastRegionCluster));
304314
assertTrue(target.isReaderClusterDns(usIsobEastRegionClusterReadOnly));
@@ -338,6 +348,7 @@ public void testIsLimitlessDbShardGroupDns() {
338348
assertFalse(target.isLimitlessDbShardGroupDns(usEastRegionCustomDomain));
339349
assertFalse(target.isLimitlessDbShardGroupDns(usEastRegionElbUrl));
340350
assertTrue(target.isLimitlessDbShardGroupDns(usEastRegionLimitlessDbShardGroup));
351+
assertFalse(target.isLimitlessDbShardGroupDns(euRedshift));
341352

342353
assertFalse(target.isLimitlessDbShardGroupDns(usIsobEastRegionCluster));
343354
assertFalse(target.isLimitlessDbShardGroupDns(usIsobEastRegionClusterReadOnly));
@@ -412,6 +423,9 @@ public void testGetRdsRegion() {
412423
assertEquals(chinaExpectedHostPattern, target.getRdsRegion(oldChinaRegionProxy));
413424
assertEquals(chinaExpectedHostPattern, target.getRdsRegion(oldChinaRegionCustomDomain));
414425
assertEquals(chinaExpectedHostPattern, target.getRdsRegion(oldChinaRegionLimitlessDbShardGroup));
426+
427+
final String euRedshiftExpectedHostPattern = "eusc-de-east-1";
428+
assertEquals(euRedshiftExpectedHostPattern, target.getRdsRegion(euRedshift));
415429
}
416430

417431
@Test

0 commit comments

Comments
 (0)