Skip to content

Commit 0f0e77e

Browse files
authored
fix(codegen): populate dnsSuffix just before consuming hostname (#3170)
1 parent ac246b5 commit 0f0e77e

File tree

1 file changed

+18
-9
lines changed
  • codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen

1 file changed

+18
-9
lines changed

Diff for: codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/EndpointGenerator.java

+18-9
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,10 @@ private void loadServiceEndpoints() {
9696
&& (config.containsMember("hostname") || config.containsMember("variants"))) {
9797
String region = entry.getKey();
9898
String hostname = config.getStringMemberOrDefault("hostname", partition.hostnameTemplate);
99-
String resolvedHostname = getResolvedHostname(hostname, dnsSuffix, endpointPrefix, region);
99+
String resolvedHostname = getResolvedHostnameWithDnsSuffix(
100+
getResolvedHostname(hostname, endpointPrefix, region),
101+
dnsSuffix
102+
);
100103

101104
ArrayNode variants = config.getArrayMember("variants").orElse(ArrayNode.fromNodes());
102105
ArrayNode defaultVariant = ArrayNode.fromNodes(getDefaultVariant(resolvedHostname));
@@ -187,15 +190,18 @@ private ObjectNode getDefaultVariant(String hostname) {
187190
.withMember("tags", ArrayNode.fromStrings(Collections.emptyList()));
188191
}
189192

190-
private String getResolvedHostname(String hostnameTemplate, String dnsSuffix, String service) {
191-
return getResolvedHostname(hostnameTemplate, dnsSuffix, service, "{region}");
193+
private String getResolvedHostname(String hostnameTemplate, String service) {
194+
return getResolvedHostname(hostnameTemplate, service, "{region}");
192195
}
193196

194-
private String getResolvedHostname(String hostnameTemplate, String dnsSuffix, String service, String region) {
197+
private String getResolvedHostname(String hostnameTemplate, String service, String region) {
195198
return hostnameTemplate
196199
.replace("{service}", service)
197-
.replace("{region}", region)
198-
.replace("{dnsSuffix}", dnsSuffix);
200+
.replace("{region}", region);
201+
}
202+
203+
private String getResolvedHostnameWithDnsSuffix(String hostnameTemplate, String dnsSuffix) {
204+
return hostnameTemplate.replace("{dnsSuffix}", dnsSuffix);
199205
}
200206

201207
private final class Partition {
@@ -219,7 +225,7 @@ private Partition(ObjectNode config, String partition) {
219225

220226
// Resolve the template to use for this service in this partition.
221227
String hostname = defaults.expectStringMember("hostname").getValue();
222-
hostnameTemplate = getResolvedHostname(hostname, dnsSuffix, endpointPrefix);
228+
hostnameTemplate = getResolvedHostname(hostname, endpointPrefix);
223229

224230
ArrayNode mergedVariants = getMergedVariants(
225231
partitionDefaults.getArrayMember("variants").orElse(Node.arrayNode()),
@@ -249,12 +255,15 @@ Set<String> getAllRegions() {
249255
private ArrayNode getVariants(ArrayNode mergedVariants) {
250256
List<Node> allVariants = new ArrayList<Node>();
251257

252-
allVariants.add(getDefaultVariant(hostnameTemplate));
258+
allVariants.add(getDefaultVariant(getResolvedHostnameWithDnsSuffix(hostnameTemplate, this.dnsSuffix)));
253259
mergedVariants.forEach(mergedVariant -> {
254260
ObjectNode variantNode = mergedVariant.expectObjectNode();
255261
String hostname = variantNode.expectStringMember("hostname").getValue();
256262
String dnsSuffix = variantNode.getStringMemberOrDefault("dnsSuffix", this.dnsSuffix);
257-
String resolvedHostname = getResolvedHostname(hostname, dnsSuffix, endpointPrefix);
263+
String resolvedHostname = getResolvedHostnameWithDnsSuffix(
264+
getResolvedHostname(hostname, endpointPrefix),
265+
dnsSuffix
266+
);
258267
allVariants.add(variantNode.withMember("hostname", resolvedHostname).withoutMember("dnsSuffix"));
259268
});
260269

0 commit comments

Comments
 (0)