Repository: hadoop Updated Branches: refs/heads/ozone-0.3 38f96c5f7 -> ad61bc8d9
HDDS-743. S3 multi delete request should return XML header in quiet mode. Contributed by Elek Marton. (cherry picked from commit 3655e573e28eea79e46936d348a852158b2fc48a) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/ad61bc8d Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/ad61bc8d Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/ad61bc8d Branch: refs/heads/ozone-0.3 Commit: ad61bc8d99e6f8e73de807470b5695b8d47d6bb5 Parents: 38f96c5 Author: Bharat Viswanadham <bha...@apache.org> Authored: Mon Oct 29 12:59:41 2018 -0700 Committer: Bharat Viswanadham <bha...@apache.org> Committed: Mon Oct 29 15:00:51 2018 -0700 ---------------------------------------------------------------------- .../ozone/s3/endpoint/BucketEndpoint.java | 9 +-- .../s3/endpoint/TestObjectMultiDelete.java | 61 +++++++++++++++----- 2 files changed, 48 insertions(+), 22 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/ad61bc8d/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/BucketEndpoint.java ---------------------------------------------------------------------- diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/BucketEndpoint.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/BucketEndpoint.java index fca251d..8f554ed 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/BucketEndpoint.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/BucketEndpoint.java @@ -223,7 +223,7 @@ public class BucketEndpoint extends EndpointBase { */ @POST @Produces(MediaType.APPLICATION_XML) - public Response multiDelete(@PathParam("bucket") String bucketName, + public MultiDeleteResponse multiDelete(@PathParam("bucket") String bucketName, @QueryParam("delete") String delete, MultiDeleteRequest request) throws OS3Exception, IOException { OzoneBucket bucket = getBucket(bucketName); @@ -251,11 +251,6 @@ public class BucketEndpoint extends EndpointBase { } } } - ResponseBuilder response = Response.ok(); - if (!request.isQuiet() || result.getErrors().size() > 0) { - response = response.entity(result); - } - return response.build(); - + return result; } } http://git-wip-us.apache.org/repos/asf/hadoop/blob/ad61bc8d/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectMultiDelete.java ---------------------------------------------------------------------- diff --git a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectMultiDelete.java b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectMultiDelete.java index 12a14a0..dabbd22 100644 --- a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectMultiDelete.java +++ b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectMultiDelete.java @@ -46,16 +46,7 @@ public class TestObjectMultiDelete { public void delete() throws IOException, OS3Exception, JAXBException { //GIVEN OzoneClient client = new OzoneClientStub(); - client.getObjectStore().createS3Bucket("bilbo", "b1"); - - String volumeName = client.getObjectStore().getOzoneVolumeName("b1"); - - OzoneBucket bucket = - client.getObjectStore().getVolume(volumeName).getBucket("b1"); - - bucket.createKey("key1", 0).close(); - bucket.createKey("key2", 0).close(); - bucket.createKey("key3", 0).close(); + OzoneBucket bucket = initTestData(client); BucketEndpoint rest = new BucketEndpoint(); rest.setClient(client); @@ -66,11 +57,9 @@ public class TestObjectMultiDelete { mdr.getObjects().add(new DeleteObject("key4")); //WHEN - Response response = rest.multiDelete("b1", "", mdr); + MultiDeleteResponse response = rest.multiDelete("b1", "", mdr); //THEN - MultiDeleteResponse mdresponse = (MultiDeleteResponse) response.getEntity(); - Set<String> keysAtTheEnd = Sets.newHashSet(bucket.listKeys("")).stream() .map(OzoneKey::getName) .collect(Collectors.toSet()); @@ -80,7 +69,49 @@ public class TestObjectMultiDelete { //THEN Assert.assertEquals(expectedResult, keysAtTheEnd); - Assert.assertEquals(3, mdresponse.getDeletedObjects().size()); - Assert.assertEquals(0, mdresponse.getErrors().size()); + Assert.assertEquals(3, response.getDeletedObjects().size()); + Assert.assertEquals(0, response.getErrors().size()); + } + + @Test + public void deleteQuiet() throws IOException, OS3Exception, JAXBException { + //GIVEN + OzoneClient client = new OzoneClientStub(); + OzoneBucket bucket = initTestData(client); + + BucketEndpoint rest = new BucketEndpoint(); + rest.setClient(client); + + MultiDeleteRequest mdr = new MultiDeleteRequest(); + mdr.setQuiet(true); + mdr.getObjects().add(new DeleteObject("key1")); + mdr.getObjects().add(new DeleteObject("key2")); + mdr.getObjects().add(new DeleteObject("key4")); + + //WHEN + MultiDeleteResponse response = rest.multiDelete("b1", "", mdr); + + //THEN + Set<String> keysAtTheEnd = Sets.newHashSet(bucket.listKeys("")).stream() + .map(OzoneKey::getName) + .collect(Collectors.toSet()); + + //THEN + Assert.assertEquals(0, response.getDeletedObjects().size()); + Assert.assertEquals(0, response.getErrors().size()); + } + + private OzoneBucket initTestData(OzoneClient client) throws IOException { + client.getObjectStore().createS3Bucket("bilbo", "b1"); + + String volumeName = client.getObjectStore().getOzoneVolumeName("b1"); + + OzoneBucket bucket = + client.getObjectStore().getVolume(volumeName).getBucket("b1"); + + bucket.createKey("key1", 0).close(); + bucket.createKey("key2", 0).close(); + bucket.createKey("key3", 0).close(); + return bucket; } } \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org