Skip to content

Commit 3cb3eac

Browse files
Merge pull request #85 from EMCECS/feature-delete-bucket-policy
added deleteBucketPolicy call
2 parents 7300091 + 8760c45 commit 3cb3eac

File tree

3 files changed

+26
-5
lines changed

3 files changed

+26
-5
lines changed

src/main/java/com/emc/object/s3/S3Client.java

+7
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,13 @@ public interface S3Client {
192192
*/
193193
BucketPolicy getBucketPolicy(String bucketName);
194194

195+
/**
196+
* Deletes the bucket policy for <code>bucketName</code>
197+
*
198+
* @see BucketPolicy
199+
*/
200+
void deleteBucketPolicy(String bucketName);
201+
195202
/**
196203
* Gets the location of <code>bucketName</code>. This call will return the name of the primary VDC of the bucket
197204
*/

src/main/java/com/emc/object/s3/jersey/S3JerseyClient.java

+10-5
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ public S3JerseyClient(S3Config s3Config) {
140140
public S3JerseyClient(S3Config config, ClientHandler clientHandler) {
141141
super(new S3Config(config)); // deep-copy config so that two clients don't share the same host lists (SDK-122)
142142
s3Config = (S3Config) super.getObjectConfig();
143-
if(s3Config.isUseV2Signer())
143+
if (s3Config.isUseV2Signer())
144144
this.signer = new S3SignerV2(s3Config);
145145
else
146146
this.signer = new S3SignerV4(s3Config);
@@ -207,7 +207,7 @@ public S3JerseyClient(S3Config config, ClientHandler clientHandler) {
207207
while (handler instanceof ClientFilter) {
208208
ClientFilter filter = (ClientFilter) handler;
209209
if (filter instanceof SmartFilter) {
210-
smartFilter = (SmartFilter)filter;
210+
smartFilter = (SmartFilter) filter;
211211
client.removeFilter(smartFilter);
212212
}
213213
handler = filter.getNext();
@@ -219,7 +219,7 @@ public S3JerseyClient(S3Config config, ClientHandler clientHandler) {
219219
if (s3Config.isRetryEnabled()) client.addFilter(new RetryFilter(s3Config)); // replaces the apache retry handler
220220
if (s3Config.isChecksumEnabled()) client.addFilter(new ChecksumFilter(s3Config));
221221
client.addFilter(new AuthorizationFilter(s3Config));
222-
if(smartFilter != null) {
222+
if (smartFilter != null) {
223223
client.addFilter(smartFilter);
224224
}
225225
if (s3Config.isGeoPinningEnabled()) client.addFilter(new GeoPinningFilter(s3Config));
@@ -412,6 +412,11 @@ public BucketPolicy getBucketPolicy(String bucketName) {
412412
return executeRequest(client, request, BucketPolicy.class);
413413
}
414414

415+
@Override
416+
public void deleteBucketPolicy(String bucketName) {
417+
executeAndClose(client, new GenericBucketRequest(Method.DELETE, bucketName, "policy"));
418+
}
419+
415420
@Override
416421
public LocationConstraint getBucketLocation(String bucketName) {
417422
ObjectRequest request = new GenericBucketRequest(Method.GET, bucketName, "location");
@@ -459,7 +464,7 @@ public MetadataSearchList listBucketMetadataSearchKeys(String bucketName) {
459464
@Override
460465
public QueryObjectsResult queryObjects(QueryObjectsRequest request) {
461466
String query = request.getQuery();
462-
if(query == null || query.isEmpty()) {
467+
if (query == null || query.isEmpty()) {
463468
throw new IllegalArgumentException("QueryObjectsRequest must contain a query expression.");
464469
}
465470
QueryObjectsResult result = executeRequest(client, request, QueryObjectsResult.class);
@@ -687,7 +692,7 @@ public AccessControlList getObjectAcl(GetObjectAclRequest request) {
687692
}
688693

689694
@Override
690-
public void extendRetentionPeriod(String bucketName, String key, Long period){
695+
public void extendRetentionPeriod(String bucketName, String key, Long period) {
691696
ObjectRequest request = new S3ObjectRequest(Method.PUT, bucketName, key, S3Constants.PARAM_RETENTION_UPDATE);
692697
request.addCustomHeader(RestUtil.EMC_RETENTION_PERIOD, period);
693698
executeAndClose(client, request);

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

+9
Original file line numberDiff line numberDiff line change
@@ -637,6 +637,15 @@ public void testBucketPolicy() {
637637
client.setBucketPolicy(getTestBucket(), bucketPolicy);
638638

639639
Assert.assertEquals(bucketPolicy, client.getBucketPolicy(getTestBucket()));
640+
641+
client.deleteBucketPolicy(getTestBucket());
642+
try {
643+
client.getBucketPolicy(getTestBucket());
644+
Assert.fail("get-policy should have thrown an exception after deleting policy");
645+
} catch (S3Exception e) {
646+
Assert.assertEquals(404, e.getHttpCode());
647+
Assert.assertEquals("NoSuchBucketPolicy", e.getErrorCode());
648+
}
640649
}
641650

642651
@Test

0 commit comments

Comments
 (0)