Skip to content

Commit d7a4882

Browse files
committed
Fix regions in some tests
1 parent cec2264 commit d7a4882

File tree

3 files changed

+13
-4
lines changed

3 files changed

+13
-4
lines changed

modules/repository-s3/src/javaRestTest/java/org/elasticsearch/repositories/s3/RepositoryS3EcsCredentialsRestIT.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
package org.elasticsearch.repositories.s3;
1111

1212
import fixture.aws.DynamicAwsCredentials;
13+
import fixture.aws.DynamicRegionSupplier;
1314
import fixture.aws.imds.Ec2ImdsHttpFixture;
1415
import fixture.aws.imds.Ec2ImdsServiceBuilder;
1516
import fixture.aws.imds.Ec2ImdsVersion;
@@ -25,6 +26,7 @@
2526
import org.junit.rules.TestRule;
2627

2728
import java.util.Set;
29+
import java.util.function.Supplier;
2830

2931
@ThreadLeakFilters(filters = { TestContainersThreadFilter.class })
3032
@ThreadLeakScope(ThreadLeakScope.Scope.NONE) // https://github.com/elastic/elasticsearch/issues/102482
@@ -35,7 +37,8 @@ public class RepositoryS3EcsCredentialsRestIT extends AbstractRepositoryS3RestTe
3537
private static final String BASE_PATH = PREFIX + "base_path";
3638
private static final String CLIENT = "ecs_credentials_client";
3739

38-
private static final DynamicAwsCredentials dynamicCredentials = new DynamicAwsCredentials("*", "s3");
40+
private static final Supplier<String> regionSupplier = new DynamicRegionSupplier();
41+
private static final DynamicAwsCredentials dynamicCredentials = new DynamicAwsCredentials(regionSupplier, "s3");
3942

4043
private static final Ec2ImdsHttpFixture ec2ImdsHttpFixture = new Ec2ImdsHttpFixture(
4144
new Ec2ImdsServiceBuilder(Ec2ImdsVersion.V1).newCredentialsConsumer(dynamicCredentials::addValidCredentials)
@@ -48,6 +51,7 @@ public class RepositoryS3EcsCredentialsRestIT extends AbstractRepositoryS3RestTe
4851
.module("repository-s3")
4952
.setting("s3.client." + CLIENT + ".endpoint", s3Fixture::getAddress)
5053
.environment("AWS_CONTAINER_CREDENTIALS_FULL_URI", () -> ec2ImdsHttpFixture.getAddress() + "/ecs_credentials_endpoint")
54+
.environment("AWS_REGION", regionSupplier)
5155
.build();
5256

5357
@ClassRule

modules/repository-s3/src/javaRestTest/java/org/elasticsearch/repositories/s3/RepositoryS3ImdsV2CredentialsRestIT.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
package org.elasticsearch.repositories.s3;
1111

1212
import fixture.aws.DynamicAwsCredentials;
13+
import fixture.aws.DynamicRegionSupplier;
1314
import fixture.aws.imds.Ec2ImdsHttpFixture;
1415
import fixture.aws.imds.Ec2ImdsServiceBuilder;
1516
import fixture.aws.imds.Ec2ImdsVersion;
@@ -24,6 +25,8 @@
2425
import org.junit.rules.RuleChain;
2526
import org.junit.rules.TestRule;
2627

28+
import java.util.function.Supplier;
29+
2730
@ThreadLeakFilters(filters = { TestContainersThreadFilter.class })
2831
@ThreadLeakScope(ThreadLeakScope.Scope.NONE) // https://github.com/elastic/elasticsearch/issues/102482
2932
public class RepositoryS3ImdsV2CredentialsRestIT extends AbstractRepositoryS3RestTestCase {
@@ -33,11 +36,12 @@ public class RepositoryS3ImdsV2CredentialsRestIT extends AbstractRepositoryS3Res
3336
private static final String BASE_PATH = PREFIX + "base_path";
3437
private static final String CLIENT = "imdsv2_credentials_client";
3538

36-
private static final DynamicAwsCredentials dynamicCredentials = new DynamicAwsCredentials("*", "s3");
39+
private static final Supplier<String> regionSupplier = new DynamicRegionSupplier();
40+
private static final DynamicAwsCredentials dynamicCredentials = new DynamicAwsCredentials(regionSupplier, "s3");
3741

3842
private static final Ec2ImdsHttpFixture ec2ImdsHttpFixture = new Ec2ImdsHttpFixture(
3943
new Ec2ImdsServiceBuilder(Ec2ImdsVersion.V2).newCredentialsConsumer(dynamicCredentials::addValidCredentials)
40-
.instanceIdentityDocument((b, p) -> b.field("region", "es-test-region")) // TODO NOMERGE assert this region is used
44+
.instanceIdentityDocument((b, p) -> b.field("region", regionSupplier.get())) // TODO NOMERGE this region is not used
4145
);
4246

4347
private static final S3HttpFixture s3Fixture = new S3HttpFixture(true, BUCKET, BASE_PATH, dynamicCredentials::isAuthorized);
@@ -46,6 +50,7 @@ public class RepositoryS3ImdsV2CredentialsRestIT extends AbstractRepositoryS3Res
4650
.module("repository-s3")
4751
.setting("s3.client." + CLIENT + ".endpoint", s3Fixture::getAddress)
4852
.systemProperty(Ec2ImdsHttpFixture.ENDPOINT_OVERRIDE_SYSPROP_NAME_SDK2, ec2ImdsHttpFixture::getAddress)
53+
.systemProperty("aws.region", regionSupplier)
4954
.build();
5055

5156
@ClassRule

modules/repository-s3/src/main/java/org/elasticsearch/repositories/s3/S3Service.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,8 +234,8 @@ protected S3ClientBuilder buildClientBuilder(S3ClientSettings clientSettings, Sd
234234
s3clientBuilder.region(Region.of(clientSettings.region));
235235
} else if (AWS_REGION.getStringValue().isPresent() == false) {
236236
// TODO NOMERGE: how we handle regions TBD, this allows testing to pass
237+
// TODO NOMERGE: specifically we don't pick up the region from IMDS
237238
s3clientBuilder.region(Region.of("us-east-1"));
238-
239239
}
240240
if (Strings.hasLength(clientSettings.endpoint)) {
241241
s3clientBuilder.endpointOverride(URI.create(clientSettings.endpoint)); // TODO NOMERGE what if URI.create fails?

0 commit comments

Comments
 (0)