Skip to content

Commit 6d3e22f

Browse files
author
Stu Arnett
committed
* fixed ACL tests with IAM user to use bucket owner instead of constructing a CanonicalUser based on the access key
* enhanced bucket cleanup for unit tests to detect if object lock is enabled on the bucket and 1) disable legal hold on all versions to delete, 2) set bypass-governance on all delete calls * ignored testSingleMultipartUploadWithRetention() and testCopyObjectWithLegalHoldON() in encryption client tests, because those operations are not supported in the encryption client
1 parent 96781eb commit 6d3e22f

File tree

4 files changed

+30
-12
lines changed

4 files changed

+30
-12
lines changed

src/test/java/com/emc/object/s3/AbstractS3ClientTest.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,12 @@
2929
import com.emc.object.AbstractClientTest;
3030
import com.emc.object.ObjectConfig;
3131
import com.emc.object.Protocol;
32-
import com.emc.object.s3.bean.AbstractVersion;
33-
import com.emc.object.s3.bean.EncodingType;
34-
import com.emc.object.s3.bean.S3Object;
32+
import com.emc.object.s3.bean.*;
3533
import com.emc.object.s3.jersey.S3JerseyClient;
34+
import com.emc.object.s3.request.DeleteObjectRequest;
3635
import com.emc.object.s3.request.ListObjectsRequest;
3736
import com.emc.object.s3.request.ListVersionsRequest;
37+
import com.emc.object.s3.request.SetObjectLegalHoldRequest;
3838
import com.emc.object.util.TestProperties;
3939
import com.emc.rest.smart.LoadBalancer;
4040
import com.emc.rest.smart.ecs.Vdc;
@@ -55,6 +55,7 @@ public abstract class AbstractS3ClientTest extends AbstractClientTest {
5555
* may be null
5656
*/
5757
protected String ecsVersion;
58+
protected CanonicalUser bucketOwner;
5859

5960
protected abstract S3Client createS3Client() throws Exception;
6061

@@ -83,14 +84,22 @@ public void shutdownClient() {
8384
@Override
8485
protected void createBucket(String bucketName) throws Exception {
8586
client.createBucket(bucketName);
87+
this.bucketOwner = client.getBucketAcl(bucketName).getOwner();
8688
}
8789

8890
@Override
8991
protected void cleanUpBucket(String bucketName) {
9092
if (client != null && client.bucketExists(bucketName)) {
93+
boolean objectLockEnabled = client.getObjectLockConfiguration(bucketName) != null;
9194
if (client.getBucketVersioning(bucketName).getStatus() != null) {
9295
for (AbstractVersion version : client.listVersions(new ListVersionsRequest(bucketName).withEncodingType(EncodingType.url)).getVersions()) {
93-
client.deleteVersion(bucketName, version.getKey(), version.getVersionId());
96+
DeleteObjectRequest deleteRequest = new DeleteObjectRequest(bucketName, version.getKey()).withVersionId(version.getVersionId());
97+
if (objectLockEnabled) {
98+
client.setObjectLegalHold(new SetObjectLegalHoldRequest(bucketName, version.getKey()).withVersionId(version.getVersionId())
99+
.withLegalHold(new ObjectLockLegalHold().withStatus(ObjectLockLegalHold.Status.OFF)));
100+
deleteRequest.withBypassGovernanceRetention(true);
101+
}
102+
client.deleteObject(deleteRequest);
94103
}
95104
} else {
96105
for (S3Object object : client.listObjects(new ListObjectsRequest(bucketName).withEncodingType(EncodingType.url)).getObjects()) {

src/test/java/com/emc/object/s3/S3EncryptionClientBasicTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -562,6 +562,16 @@ public void testExtendObjectRetentionPeriod() {
562562
public void testPreSignedUrlHeaderOverrides() throws Exception {
563563
}
564564

565+
@Ignore
566+
@Override
567+
public void testSingleMultipartUploadWithRetention() {
568+
}
569+
570+
@Ignore
571+
@Override
572+
public void testCopyObjectWithLegalHoldON() {
573+
}
574+
565575
@Override
566576
public void testGetPutDeleteObjectWithTagging() {
567577
// set up env

src/test/java/com/emc/object/s3/S3JerseyClientTest.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2384,11 +2384,9 @@ public void testSetObjectAcl() throws Exception {
23842384
String testObject = "/objectPrefix/testObject1";
23852385
client.putObject(getTestBucket(), testObject, "Hello ACLs!", "text/plain");
23862386

2387-
String identity = createS3Config().getIdentity();
2388-
CanonicalUser owner = new CanonicalUser(identity, identity);
23892387
AccessControlList acl = new AccessControlList();
2390-
acl.setOwner(owner);
2391-
acl.addGrants(new Grant(owner, Permission.FULL_CONTROL));
2388+
acl.setOwner(bucketOwner);
2389+
acl.addGrants(new Grant(bucketOwner, Permission.FULL_CONTROL));
23922390

23932391
client.setObjectAcl(getTestBucket(), testObject, acl);
23942392
assertAclEquals(acl, client.getBucketAcl(getTestBucket()));
@@ -2409,11 +2407,9 @@ public void testSetObjectAclRequestAcl() throws Exception {
24092407
String content = "Object Content";
24102408
client.putObject(getTestBucket(), testObject, content, "text/plain");
24112409

2412-
String identity = createS3Config().getIdentity();
2413-
CanonicalUser owner = new CanonicalUser(identity, identity);
24142410
AccessControlList acl = new AccessControlList();
2415-
acl.setOwner(owner);
2416-
acl.addGrants(new Grant(owner, Permission.FULL_CONTROL));
2411+
acl.setOwner(bucketOwner);
2412+
acl.addGrants(new Grant(bucketOwner, Permission.FULL_CONTROL));
24172413

24182414
SetObjectAclRequest request = new SetObjectAclRequest(getTestBucket(), testObject);
24192415
log.debug("JMC calling request.setAcl");

src/test/resources/test.properties.template

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ s3.secret_key=<secretkey>
1212
## Endpoint to the S3 Access Point
1313
s3.endpoint=http[s]://<ecshost>[:9020|:9021]
1414

15+
## Specified if the use is an IAM user
16+
s3.iam_user=false
17+
1518

1619
### STS test part, uncomment the following to test STS
1720

0 commit comments

Comments
 (0)