This is an automated email from the ASF dual-hosted git repository.

siyao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git


The following commit(s) were added to refs/heads/master by this push:
     new 1b795f54c5 HDDS-9072. Set isFile when creating OmKeyInfo for 
createFile code path (#5108)
1b795f54c5 is described below

commit 1b795f54c55642dff713891e6e08ad4eb78ad8d9
Author: Hemant Kumar <[email protected]>
AuthorDate: Wed Jul 26 12:46:09 2023 -0700

    HDDS-9072. Set isFile when creating OmKeyInfo for createFile code path 
(#5108)
---
 .../apache/hadoop/ozone/om/TestOzoneManagerHA.java | 72 +++++++++++++---------
 .../hadoop/ozone/om/request/key/OMKeyRequest.java  | 33 +++++-----
 2 files changed, 61 insertions(+), 44 deletions(-)

diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOzoneManagerHA.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOzoneManagerHA.java
index 1e1092214c..41c1618011 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOzoneManagerHA.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOzoneManagerHA.java
@@ -29,6 +29,7 @@ import org.apache.hadoop.ozone.client.BucketArgs;
 import org.apache.hadoop.ozone.client.ObjectStore;
 import org.apache.hadoop.ozone.client.OzoneBucket;
 import org.apache.hadoop.ozone.client.OzoneClient;
+import org.apache.hadoop.ozone.client.OzoneKey;
 import org.apache.hadoop.ozone.client.OzoneKeyDetails;
 import org.apache.hadoop.ozone.client.OzoneVolume;
 import org.apache.hadoop.ozone.client.VolumeArgs;
@@ -40,7 +41,6 @@ import org.apache.hadoop.ozone.client.rpc.RpcClient;
 import org.apache.hadoop.ozone.om.ha.HadoopRpcOMFailoverProxyProvider;
 import org.apache.hadoop.ozone.om.ratis.OzoneManagerRatisServerConfig;
 import org.apache.ozone.test.GenericTestUtils;
-import org.junit.Assert;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeAll;
@@ -49,6 +49,7 @@ import org.junit.jupiter.api.Timeout;
 import java.io.IOException;
 import java.net.ConnectException;
 import java.time.Duration;
+import java.util.Iterator;
 import java.util.UUID;
 import java.util.HashMap;
 
@@ -60,9 +61,13 @@ import static 
org.apache.hadoop.ozone.OzoneConfigKeys.OZONE_ADMINISTRATORS_WILDC
 import static 
org.apache.hadoop.ozone.OzoneConfigKeys.OZONE_BLOCK_DELETING_SERVICE_INTERVAL;
 import static 
org.apache.hadoop.ozone.OzoneConfigKeys.OZONE_CLIENT_FAILOVER_MAX_ATTEMPTS_KEY;
 
+import static org.apache.hadoop.ozone.OzoneConsts.OM_KEY_PREFIX;
 import static 
org.apache.hadoop.ozone.om.OMConfigKeys.OZONE_DEFAULT_BUCKET_LAYOUT;
 import static 
org.apache.hadoop.ozone.om.OMConfigKeys.OZONE_KEY_DELETING_LIMIT_PER_TASK;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
  * Base class for Ozone Manager HA tests.
@@ -245,17 +250,17 @@ public abstract class TestOzoneManagerHA {
     objectStore.createVolume(volumeName, createVolumeArgs);
     OzoneVolume retVolumeinfo = objectStore.getVolume(volumeName);
 
-    Assert.assertTrue(retVolumeinfo.getName().equals(volumeName));
-    Assert.assertTrue(retVolumeinfo.getOwner().equals(userName));
-    Assert.assertTrue(retVolumeinfo.getAdmin().equals(adminName));
+    assertEquals(volumeName, retVolumeinfo.getName());
+    assertEquals(userName, retVolumeinfo.getOwner());
+    assertEquals(adminName, retVolumeinfo.getAdmin());
 
     String bucketName = UUID.randomUUID().toString();
     retVolumeinfo.createBucket(bucketName);
 
     OzoneBucket ozoneBucket = retVolumeinfo.getBucket(bucketName);
 
-    Assert.assertTrue(ozoneBucket.getName().equals(bucketName));
-    Assert.assertTrue(ozoneBucket.getVolumeName().equals(volumeName));
+    assertEquals(bucketName, ozoneBucket.getName());
+    assertEquals(volumeName, ozoneBucket.getVolumeName());
 
     return ozoneBucket;
   }
@@ -278,26 +283,24 @@ public abstract class TestOzoneManagerHA {
     objectStore.createVolume(linkedVolName, createVolumeArgs);
     OzoneVolume linkedVolumeInfo = objectStore.getVolume(linkedVolName);
 
-    Assert.assertTrue(linkedVolumeInfo.getName().equals(linkedVolName));
-    Assert.assertTrue(linkedVolumeInfo.getOwner().equals(userName));
-    Assert.assertTrue(linkedVolumeInfo.getAdmin().equals(adminName));
+    assertEquals(linkedVolName, linkedVolumeInfo.getName());
+    assertEquals(userName, linkedVolumeInfo.getOwner());
+    assertEquals(adminName, linkedVolumeInfo.getAdmin());
 
     String linkedBucketName = UUID.randomUUID().toString();
     linkedVolumeInfo.createBucket(linkedBucketName, createBucketArgs);
 
     OzoneBucket linkedBucket = linkedVolumeInfo.getBucket(linkedBucketName);
 
-    Assert.assertTrue(linkedBucket.getName().equals(linkedBucketName));
-    Assert.assertTrue(linkedBucket.getVolumeName().equals(linkedVolName));
-    Assert.assertTrue(linkedBucket.isLink());
+    assertEquals(linkedBucketName, linkedBucket.getName());
+    assertEquals(linkedVolName, linkedBucket.getVolumeName());
+    assertTrue(linkedBucket.isLink());
 
     return linkedBucket;
   }
 
   /**
    * Stop the current leader OM.
-   *
-   * @throws Exception
    */
   protected void stopLeaderOM() {
     //Stop the leader OM.
@@ -332,9 +335,9 @@ public abstract class TestOzoneManagerHA {
       OzoneVolume retVolumeinfo = objectStore.getVolume(volumeName);
 
       if (checkSuccess) {
-        Assert.assertTrue(retVolumeinfo.getName().equals(volumeName));
-        Assert.assertTrue(retVolumeinfo.getOwner().equals(userName));
-        Assert.assertTrue(retVolumeinfo.getAdmin().equals(adminName));
+        assertEquals(volumeName, retVolumeinfo.getName());
+        assertEquals(userName, retVolumeinfo.getOwner());
+        assertEquals(adminName, retVolumeinfo.getAdmin());
       } else {
         // Verify that the request failed
         fail("There is no quorum. Request should have failed");
@@ -383,16 +386,27 @@ public abstract class TestOzoneManagerHA {
 
     OzoneKeyDetails ozoneKeyDetails = ozoneBucket.getKey(keyName);
 
-    Assert.assertEquals(keyName, ozoneKeyDetails.getName());
-    Assert.assertEquals(ozoneBucket.getName(), 
ozoneKeyDetails.getBucketName());
-    Assert.assertEquals(ozoneBucket.getVolumeName(),
+    assertEquals(keyName, ozoneKeyDetails.getName());
+    assertEquals(ozoneBucket.getName(), ozoneKeyDetails.getBucketName());
+    assertEquals(ozoneBucket.getVolumeName(),
         ozoneKeyDetails.getVolumeName());
-    Assert.assertEquals(data.length(), ozoneKeyDetails.getDataSize());
+    assertEquals(data.length(), ozoneKeyDetails.getDataSize());
+    assertTrue(ozoneKeyDetails.isFile());
 
     try (OzoneInputStream ozoneInputStream = ozoneBucket.readKey(keyName)) {
       byte[] fileContent = new byte[data.getBytes(UTF_8).length];
       ozoneInputStream.read(fileContent);
-      Assert.assertEquals(data, new String(fileContent, UTF_8));
+      assertEquals(data, new String(fileContent, UTF_8));
+    }
+
+    Iterator<? extends OzoneKey> iterator = ozoneBucket.listKeys("/");
+    while (iterator.hasNext()) {
+      OzoneKey ozoneKey = iterator.next();
+      if (!ozoneKey.getName().endsWith(OM_KEY_PREFIX)) {
+        assertTrue(ozoneKey.isFile());
+      } else {
+        assertFalse(ozoneKey.isFile());
+      }
     }
   }
 
@@ -411,9 +425,9 @@ public abstract class TestOzoneManagerHA {
 
       OzoneVolume retVolumeinfo = getObjectStore().getVolume(volumeName);
 
-      Assert.assertTrue(retVolumeinfo.getName().equals(volumeName));
-      Assert.assertTrue(retVolumeinfo.getOwner().equals(userName));
-      Assert.assertTrue(retVolumeinfo.getAdmin().equals(adminName));
+      assertEquals(volumeName, retVolumeinfo.getName());
+      assertEquals(userName, retVolumeinfo.getOwner());
+      assertEquals(adminName, retVolumeinfo.getAdmin());
 
       String bucketName = UUID.randomUUID().toString();
       String keyName = UUID.randomUUID().toString();
@@ -421,8 +435,8 @@ public abstract class TestOzoneManagerHA {
 
       OzoneBucket ozoneBucket = retVolumeinfo.getBucket(bucketName);
 
-      Assert.assertTrue(ozoneBucket.getName().equals(bucketName));
-      Assert.assertTrue(ozoneBucket.getVolumeName().equals(volumeName));
+      assertEquals(bucketName, ozoneBucket.getName());
+      assertEquals(volumeName, ozoneBucket.getVolumeName());
 
       String value = "random data";
       OzoneOutputStream ozoneOutputStream = ozoneBucket.createKey(keyName,
@@ -434,7 +448,7 @@ public abstract class TestOzoneManagerHA {
       try (OzoneInputStream ozoneInputStream = ozoneBucket.readKey(keyName)) {
         byte[] fileContent = new byte[value.getBytes(UTF_8).length];
         ozoneInputStream.read(fileContent);
-        Assert.assertEquals(value, new String(fileContent, UTF_8));
+        assertEquals(value, new String(fileContent, UTF_8));
       }
 
     } catch (IOException e) {
diff --git 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyRequest.java
 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyRequest.java
index 16ec6a5bd5..6d079359ea 100644
--- 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyRequest.java
+++ 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyRequest.java
@@ -686,7 +686,8 @@ public abstract class OMKeyRequest extends OMClientRequest {
    * @return OmKeyInfo
    */
   @SuppressWarnings("parameterNumber")
-  protected OmKeyInfo createFileInfo(@Nonnull KeyArgs keyArgs,
+  protected OmKeyInfo createFileInfo(
+      @Nonnull KeyArgs keyArgs,
       @Nonnull List<OmKeyLocationInfo> locations,
       @Nonnull ReplicationConfig replicationConfig,
       long size,
@@ -694,22 +695,24 @@ public abstract class OMKeyRequest extends 
OMClientRequest {
       @Nonnull PrefixManager prefixManager,
       @Nullable OmBucketInfo omBucketInfo,
       OMFileRequest.OMPathInfoWithFSO omPathInfo,
-      long transactionLogIndex, long objectID) {
+      long transactionLogIndex, long objectID
+  ) {
     OmKeyInfo.Builder builder = new OmKeyInfo.Builder();
     builder.setVolumeName(keyArgs.getVolumeName())
-            .setBucketName(keyArgs.getBucketName())
-            .setKeyName(keyArgs.getKeyName())
-            .setOmKeyLocationInfos(Collections.singletonList(
-                    new OmKeyLocationInfoGroup(0, locations)))
-            .setCreationTime(keyArgs.getModificationTime())
-            .setModificationTime(keyArgs.getModificationTime())
-            .setDataSize(size)
-            .setReplicationConfig(replicationConfig)
-            .setFileEncryptionInfo(encInfo)
-            .setAcls(getAclsForKey(keyArgs, omBucketInfo, prefixManager))
-            .addAllMetadata(KeyValueUtil.getFromProtobuf(
-                    keyArgs.getMetadataList()))
-            .setUpdateID(transactionLogIndex);
+        .setBucketName(keyArgs.getBucketName())
+        .setKeyName(keyArgs.getKeyName())
+        .setOmKeyLocationInfos(Collections.singletonList(
+            new OmKeyLocationInfoGroup(0, locations)))
+        .setCreationTime(keyArgs.getModificationTime())
+        .setModificationTime(keyArgs.getModificationTime())
+        .setDataSize(size)
+        .setReplicationConfig(replicationConfig)
+        .setFileEncryptionInfo(encInfo)
+        .setAcls(getAclsForKey(keyArgs, omBucketInfo, prefixManager))
+        .addAllMetadata(KeyValueUtil.getFromProtobuf(
+            keyArgs.getMetadataList()))
+        .setUpdateID(transactionLogIndex)
+        .setFile(true);
     if (omPathInfo != null) {
       // FileTable metadata format
       objectID = omPathInfo.getLeafNodeObjectId();


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to