This is an automated email from the ASF dual-hosted git repository. elek pushed a commit to branch HDDS-1737 in repository https://gitbox.apache.org/repos/asf/hadoop-ozone.git
commit f3faf74aa3d9faa8d05f943a023525388548795d Author: cxorm <lianp...@gmail.com> AuthorDate: Thu Oct 10 16:11:55 2019 +0800 Add tests aiming to modify requests with full cache Add some tests for the fixing of request. --- .../request/file/TestOMDirectoryCreateRequest.java | 34 +++++++++++++++++++++- .../om/request/file/TestOMFileCreateRequest.java | 21 +++++++++++++ .../om/request/key/TestOMKeyDeleteRequest.java | 26 +++++++++++++---- .../om/request/key/TestOMKeyRenameRequest.java | 28 ++++++++++++++---- 4 files changed, 97 insertions(+), 12 deletions(-) diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/file/TestOMDirectoryCreateRequest.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/file/TestOMDirectoryCreateRequest.java index 4e93b13..c0b1f00 100644 --- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/file/TestOMDirectoryCreateRequest.java +++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/file/TestOMDirectoryCreateRequest.java @@ -152,6 +152,38 @@ public class TestOMDirectoryCreateRequest { } + @Test + public void testValidateAndUpdateCacheWithVolumeNotFound() throws Exception { + String volumeName = "vol1"; + String bucketName = "bucket1"; + String keyName = RandomStringUtils.randomAlphabetic(5); + for (int i =0; i< 3; i++) { + keyName += "/" + RandomStringUtils.randomAlphabetic(5); + } + + OMRequest omRequest = createDirectoryRequest(volumeName, bucketName, + keyName); + OMDirectoryCreateRequest omDirectoryCreateRequest = + new OMDirectoryCreateRequest(omRequest); + + OMRequest modifiedOmRequest = + omDirectoryCreateRequest.preExecute(ozoneManager); + + omDirectoryCreateRequest = new OMDirectoryCreateRequest(modifiedOmRequest); + + OMClientResponse omClientResponse = + omDirectoryCreateRequest.validateAndUpdateCache(ozoneManager, 100L, + ozoneManagerDoubleBufferHelper); + + Assert.assertTrue(omClientResponse.getOMResponse().getStatus() + == OzoneManagerProtocolProtos.Status.VOLUME_NOT_FOUND); + + // Key should not exist in DB + Assert.assertTrue(omMetadataManager.getKeyTable().get( + omMetadataManager.getOzoneDirKey( + volumeName, bucketName, keyName)) == null); + + } @Test public void testValidateAndUpdateCacheWithBucketNotFound() throws Exception { @@ -171,6 +203,7 @@ public class TestOMDirectoryCreateRequest { omDirectoryCreateRequest.preExecute(ozoneManager); omDirectoryCreateRequest = new OMDirectoryCreateRequest(modifiedOmRequest); + TestOMRequestUtils.addVolumeToDB(volumeName, omMetadataManager); OMClientResponse omClientResponse = omDirectoryCreateRequest.validateAndUpdateCache(ozoneManager, 100L, @@ -183,7 +216,6 @@ public class TestOMDirectoryCreateRequest { Assert.assertTrue(omMetadataManager.getKeyTable().get( omMetadataManager.getOzoneDirKey( volumeName, bucketName, keyName)) == null); - } @Test diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/file/TestOMFileCreateRequest.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/file/TestOMFileCreateRequest.java index 9639af0..93527a1 100644 --- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/file/TestOMFileCreateRequest.java +++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/file/TestOMFileCreateRequest.java @@ -38,6 +38,7 @@ import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos .OMRequest; +import static org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.Status.VOLUME_NOT_FOUND; import static org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.Status.BUCKET_NOT_FOUND; import static org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.Status.FILE_ALREADY_EXISTS; import static org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.Status.NOT_A_FILE; @@ -177,6 +178,26 @@ public class TestOMFileCreateRequest extends TestOMKeyRequest { } + @Test + public void testValidateAndUpdateCacheWithVolumeNotFound() throws Exception { + OMRequest omRequest = createFileRequest(volumeName, bucketName, keyName, + HddsProtos.ReplicationFactor.ONE, HddsProtos.ReplicationType.RATIS, + false, true); + + OMFileCreateRequest omFileCreateRequest = new OMFileCreateRequest( + omRequest); + + OMRequest modifiedOmRequest = omFileCreateRequest.preExecute(ozoneManager); + + omFileCreateRequest = new OMFileCreateRequest(modifiedOmRequest); + + OMClientResponse omFileCreateResponse = + omFileCreateRequest.validateAndUpdateCache(ozoneManager, 100L, + ozoneManagerDoubleBufferHelper); + Assert.assertEquals(VOLUME_NOT_FOUND, + omFileCreateResponse.getOMResponse().getStatus()); + + } @Test public void testValidateAndUpdateCacheWithBucketNotFound() throws Exception { diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/key/TestOMKeyDeleteRequest.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/key/TestOMKeyDeleteRequest.java index e95ecd5..94e810d 100644 --- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/key/TestOMKeyDeleteRequest.java +++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/key/TestOMKeyDeleteRequest.java @@ -107,26 +107,40 @@ public class TestOMKeyDeleteRequest extends TestOMKeyRequest { omClientResponse.getOMResponse().getStatus()); } + @Test - public void testValidateAndUpdateCacheWithOutVolumeAndBucket() - throws Exception { + public void testValidateAndUpdateCacheWithVolumeNotFound() throws Exception { OMRequest modifiedOmRequest = doPreExecute(createDeleteKeyRequest()); OMKeyDeleteRequest omKeyDeleteRequest = new OMKeyDeleteRequest(modifiedOmRequest); - // In actual implementation we don't check for bucket/volume exists - // during delete key. So it should still return error KEY_NOT_FOUND - OMClientResponse omClientResponse = omKeyDeleteRequest.validateAndUpdateCache(ozoneManager, 100L, ozoneManagerDoubleBufferHelper); - Assert.assertEquals(OzoneManagerProtocolProtos.Status.KEY_NOT_FOUND, + Assert.assertEquals(OzoneManagerProtocolProtos.Status.VOLUME_NOT_FOUND, omClientResponse.getOMResponse().getStatus()); } + @Test + public void testValidateAndUpdateCacheWithBucketNotFound() throws Exception { + OMRequest modifiedOmRequest = + doPreExecute(createDeleteKeyRequest()); + + OMKeyDeleteRequest omKeyDeleteRequest = + new OMKeyDeleteRequest(modifiedOmRequest); + + TestOMRequestUtils.addVolumeToDB(volumeName, omMetadataManager); + + OMClientResponse omClientResponse = + omKeyDeleteRequest.validateAndUpdateCache(ozoneManager, + 100L, ozoneManagerDoubleBufferHelper); + + Assert.assertEquals(OzoneManagerProtocolProtos.Status.BUCKET_NOT_FOUND, + omClientResponse.getOMResponse().getStatus()); + } /** * This method calls preExecute and verify the modified request. diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/key/TestOMKeyRenameRequest.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/key/TestOMKeyRenameRequest.java index 864ba06..57b1c9c 100644 --- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/key/TestOMKeyRenameRequest.java +++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/key/TestOMKeyRenameRequest.java @@ -49,6 +49,8 @@ public class TestOMKeyRenameRequest extends TestOMKeyRequest { OMRequest modifiedOmRequest = doPreExecute(createRenameKeyRequest(toKeyName)); + TestOMRequestUtils.addVolumeAndBucketToDB(volumeName, bucketName, + omMetadataManager); TestOMRequestUtils.addKeyToTable(false, volumeName, bucketName, keyName, clientID, replicationType, replicationFactor, omMetadataManager); @@ -112,16 +114,32 @@ public class TestOMKeyRenameRequest extends TestOMKeyRequest { } + @Test + public void testValidateAndUpdateCacheWithVolumeNotFound() throws Exception { + String toKeyName = UUID.randomUUID().toString(); + OMRequest modifiedOmRequest = + doPreExecute(createRenameKeyRequest(toKeyName)); + + OMKeyRenameRequest omKeyRenameRequest = + new OMKeyRenameRequest(modifiedOmRequest); + + OMClientResponse omKeyRenameResponse = + omKeyRenameRequest.validateAndUpdateCache(ozoneManager, 100L, + ozoneManagerDoubleBufferHelper); + + Assert.assertEquals(OzoneManagerProtocolProtos.Status.VOLUME_NOT_FOUND, + omKeyRenameResponse.getOMResponse().getStatus()); + + } @Test - public void testValidateAndUpdateCacheWithOutVolumeAndBucket() - throws Exception { + public void testValidateAndUpdateCacheWithBucketNotFound() throws Exception { String toKeyName = UUID.randomUUID().toString(); OMRequest modifiedOmRequest = doPreExecute(createRenameKeyRequest(toKeyName)); - // In actual implementation we don't check for bucket/volume exists - // during delete key. So it should still return error KEY_NOT_FOUND + // Add only volume entry to DB. + TestOMRequestUtils.addVolumeToDB(volumeName, omMetadataManager); OMKeyRenameRequest omKeyRenameRequest = new OMKeyRenameRequest(modifiedOmRequest); @@ -130,7 +148,7 @@ public class TestOMKeyRenameRequest extends TestOMKeyRequest { omKeyRenameRequest.validateAndUpdateCache(ozoneManager, 100L, ozoneManagerDoubleBufferHelper); - Assert.assertEquals(OzoneManagerProtocolProtos.Status.KEY_NOT_FOUND, + Assert.assertEquals(OzoneManagerProtocolProtos.Status.BUCKET_NOT_FOUND, omKeyRenameResponse.getOMResponse().getStatus()); } --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-commits-h...@hadoop.apache.org