Skip to content

Commit 1cc80b2

Browse files
authored
Ctor param for S3 fixture consistency model (elastic#138992)
Replaces the overridable constant method with a constructor parameter to define the consistency model for the S3 HTTP test fixture. The difference is irrelevant to almost all tests so we choose the consistency model randomly wherever possible.
1 parent 21e4e58 commit 1cc80b2

File tree

24 files changed

+115
-57
lines changed

24 files changed

+115
-57
lines changed

modules/repository-s3/src/internalClusterTest/java/org/elasticsearch/repositories/s3/S3BlobStoreRepositoryTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
*/
99
package org.elasticsearch.repositories.s3;
1010

11+
import fixture.s3.S3ConsistencyModel;
1112
import fixture.s3.S3HttpHandler;
1213
import software.amazon.awssdk.awscore.AwsRequestOverrideConfiguration;
1314
import software.amazon.awssdk.core.internal.http.pipeline.stages.ApplyTransactionIdStage;
@@ -708,7 +709,7 @@ void ensureMultiPartUploadSize(long blobSize) {}
708709
protected class S3BlobStoreHttpHandler extends S3HttpHandler implements BlobStoreHttpHandler {
709710

710711
S3BlobStoreHttpHandler(final String bucket) {
711-
super(bucket);
712+
super(bucket, S3ConsistencyModel.AWS_DEFAULT);
712713
}
713714

714715
@Override
@@ -777,7 +778,7 @@ protected class S3StatsCollectorHttpHandler extends HttpStatsCollectorHandler {
777778
}
778779

779780
private S3HttpHandler.S3Request parseRequest(HttpExchange exchange) {
780-
return new S3HttpHandler("bucket").parseRequest(exchange);
781+
return new S3HttpHandler("bucket", S3ConsistencyModel.randomConsistencyModel()).parseRequest(exchange);
781782
}
782783

783784
@Override

modules/repository-s3/src/internalClusterTest/java/org/elasticsearch/repositories/s3/S3BlobStoreRepositoryTimeoutTests.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
*/
99
package org.elasticsearch.repositories.s3;
1010

11+
import fixture.s3.S3ConsistencyModel;
1112
import fixture.s3.S3HttpHandler;
1213
import software.amazon.awssdk.core.exception.ApiCallTimeoutException;
1314

@@ -185,7 +186,7 @@ protected class S3StallingHttpHandler extends S3HttpHandler implements BlobStore
185186
private final AtomicReference<CountDownLatch> stallLatchRef = new AtomicReference<>(null);
186187

187188
S3StallingHttpHandler(final String bucket) {
188-
super(bucket);
189+
super(bucket, S3ConsistencyModel.randomConsistencyModel());
189190
}
190191

191192
@Override

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

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

1212
import fixture.aws.DynamicRegionSupplier;
13+
import fixture.s3.S3ConsistencyModel;
1314
import fixture.s3.S3HttpFixture;
1415

1516
import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
@@ -41,6 +42,7 @@ public class RepositoryS3BasicCredentialsRestIT extends AbstractRepositoryS3Rest
4142
true,
4243
BUCKET,
4344
BASE_PATH,
45+
S3ConsistencyModel::randomConsistencyModel,
4446
fixedAccessKey(ACCESS_KEY, regionSupplier, "s3")
4547
);
4648

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

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

1212
import fixture.aws.DynamicRegionSupplier;
13+
import fixture.s3.S3ConsistencyModel;
1314
import fixture.s3.S3HttpFixture;
1415
import fixture.s3.S3HttpHandler;
1516

@@ -58,6 +59,7 @@ public class RepositoryS3ConditionalWritesUnsupportedRestIT extends AbstractRepo
5859
true,
5960
BUCKET,
6061
BASE_PATH,
62+
S3ConsistencyModel::randomConsistencyModel,
6163
fixedAccessKey(ACCESS_KEY, regionSupplier, "s3")
6264
) {
6365
@Override

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import fixture.aws.imds.Ec2ImdsHttpFixture;
1515
import fixture.aws.imds.Ec2ImdsServiceBuilder;
1616
import fixture.aws.imds.Ec2ImdsVersion;
17+
import fixture.s3.S3ConsistencyModel;
1718
import fixture.s3.S3HttpFixture;
1819

1920
import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
@@ -45,7 +46,13 @@ public class RepositoryS3EcsCredentialsRestIT extends AbstractRepositoryS3RestTe
4546
.alternativeCredentialsEndpoints(Set.of("/ecs_credentials_endpoint"))
4647
);
4748

48-
private static final S3HttpFixture s3Fixture = new S3HttpFixture(true, BUCKET, BASE_PATH, dynamicCredentials::isAuthorized);
49+
private static final S3HttpFixture s3Fixture = new S3HttpFixture(
50+
true,
51+
BUCKET,
52+
BASE_PATH,
53+
S3ConsistencyModel::randomConsistencyModel,
54+
dynamicCredentials::isAuthorized
55+
);
4956

5057
public static ElasticsearchCluster cluster = ElasticsearchCluster.local()
5158
.module("repository-s3")

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

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

1212
import fixture.aws.DynamicRegionSupplier;
13+
import fixture.s3.S3ConsistencyModel;
1314
import fixture.s3.S3HttpFixture;
1415

1516
import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
@@ -42,6 +43,7 @@ public class RepositoryS3ExplicitProtocolRestIT extends AbstractRepositoryS3Rest
4243
true,
4344
BUCKET,
4445
BASE_PATH,
46+
S3ConsistencyModel::randomConsistencyModel,
4547
fixedAccessKey(ACCESS_KEY, regionSupplier, "s3")
4648
);
4749

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import fixture.aws.imds.Ec2ImdsHttpFixture;
1515
import fixture.aws.imds.Ec2ImdsServiceBuilder;
1616
import fixture.aws.imds.Ec2ImdsVersion;
17+
import fixture.s3.S3ConsistencyModel;
1718
import fixture.s3.S3HttpFixture;
1819

1920
import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
@@ -44,7 +45,13 @@ public class RepositoryS3ImdsV2CredentialsRestIT extends AbstractRepositoryS3Res
4445
.instanceIdentityDocument((b, p) -> b.field("region", regionSupplier.get()))
4546
);
4647

47-
private static final S3HttpFixture s3Fixture = new S3HttpFixture(true, BUCKET, BASE_PATH, dynamicCredentials::isAuthorized);
48+
private static final S3HttpFixture s3Fixture = new S3HttpFixture(
49+
true,
50+
BUCKET,
51+
BASE_PATH,
52+
S3ConsistencyModel::randomConsistencyModel,
53+
dynamicCredentials::isAuthorized
54+
);
4855

4956
public static ElasticsearchCluster cluster = ElasticsearchCluster.local()
5057
.module("repository-s3")

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
package org.elasticsearch.repositories.s3;
1111

12+
import fixture.s3.S3ConsistencyModel;
1213
import fixture.s3.S3HttpFixture;
1314

1415
import org.elasticsearch.client.Request;
@@ -43,6 +44,7 @@ public class RepositoryS3RestReloadCredentialsIT extends ESRestTestCase {
4344
true,
4445
BUCKET,
4546
BASE_PATH,
47+
S3ConsistencyModel::randomConsistencyModel,
4648
mutableAccessKey(() -> repositoryAccessKey, ANY_REGION, "s3")
4749
);
4850

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
package org.elasticsearch.repositories.s3;
1111

12+
import fixture.s3.S3ConsistencyModel;
1213
import fixture.s3.S3HttpFixture;
1314

1415
import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
@@ -39,6 +40,7 @@ public class RepositoryS3SessionCredentialsRestIT extends AbstractRepositoryS3Re
3940
true,
4041
BUCKET,
4142
BASE_PATH,
43+
S3ConsistencyModel::randomConsistencyModel,
4244
fixedAccessKeyAndToken(ACCESS_KEY, SESSION_TOKEN, ANY_REGION, "s3")
4345
);
4446

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import fixture.aws.DynamicRegionSupplier;
1414
import fixture.aws.sts.AwsStsHttpFixture;
1515
import fixture.aws.sts.AwsStsHttpHandler;
16+
import fixture.s3.S3ConsistencyModel;
1617
import fixture.s3.S3HttpFixture;
1718

1819
import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
@@ -39,7 +40,13 @@ public class RepositoryS3StsCredentialsRestIT extends AbstractRepositoryS3RestTe
3940
private static final Supplier<String> regionSupplier = new DynamicRegionSupplier();
4041
private static final DynamicAwsCredentials dynamicCredentials = new DynamicAwsCredentials(regionSupplier, "s3");
4142

42-
private static final S3HttpFixture s3HttpFixture = new S3HttpFixture(true, BUCKET, BASE_PATH, dynamicCredentials::isAuthorized);
43+
private static final S3HttpFixture s3HttpFixture = new S3HttpFixture(
44+
true,
45+
BUCKET,
46+
BASE_PATH,
47+
S3ConsistencyModel::randomConsistencyModel,
48+
dynamicCredentials::isAuthorized
49+
);
4350

4451
private static final String WEB_IDENTITY_TOKEN_FILE_CONTENTS = """
4552
Atza|IQEBLjAsAhRFiXuWpUXuRvQ9PZL3GMFcYevydwIUFAHZwXZXXXXXXXXJnrulxKDHwy87oGKPznh0D6bEQZTSCzyoCtL_8S07pLpr0zMbn6w1lfVZKNTBdDans\

0 commit comments

Comments
 (0)