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

Reply via email to