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

umamahesh 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 186a082f03 HDDS-9082. OMKeySetTimesRequestWithFSO should not prepend 
key prefix to keys in fileTable (#5119)
186a082f03 is described below

commit 186a082f0370b05a77476ba54b0ec09b47df8005
Author: Swaminathan Balachandran <[email protected]>
AuthorDate: Thu Jul 27 12:32:03 2023 -0700

    HDDS-9082. OMKeySetTimesRequestWithFSO should not prepend key prefix to 
keys in fileTable (#5119)
---
 .../request/key/OMKeySetTimesRequestWithFSO.java   |  3 ++
 .../request/key/TestOMSetTimesRequestWithFSO.java  | 36 +++++++++++++++++++++-
 2 files changed, 38 insertions(+), 1 deletion(-)

diff --git 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeySetTimesRequestWithFSO.java
 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeySetTimesRequestWithFSO.java
index 6fb29cb4bc..a6b90a00b2 100644
--- 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeySetTimesRequestWithFSO.java
+++ 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeySetTimesRequestWithFSO.java
@@ -26,6 +26,7 @@ import org.apache.hadoop.ozone.om.exceptions.OMException;
 import org.apache.hadoop.ozone.om.helpers.BucketLayout;
 import org.apache.hadoop.ozone.om.helpers.OmDirectoryInfo;
 import org.apache.hadoop.ozone.om.helpers.OmKeyInfo;
+import org.apache.hadoop.ozone.om.helpers.OzoneFSUtils;
 import org.apache.hadoop.ozone.om.helpers.OzoneFileStatus;
 import org.apache.hadoop.ozone.om.ratis.utils.OzoneManagerDoubleBufferHelper;
 import org.apache.hadoop.ozone.om.request.file.OMFileRequest;
@@ -96,6 +97,8 @@ public class OMKeySetTimesRequestWithFSO extends 
OMKeySetTimesRequest {
         throw new OMException("Key not found. Key:" + key, KEY_NOT_FOUND);
       }
       omKeyInfo = keyStatus.getKeyInfo();
+      // setting Key name back to Ozone Key before updating cache value.
+      omKeyInfo.setKeyName(OzoneFSUtils.getFileName(key));
       final long volumeId = omMetadataManager.getVolumeId(volume);
       final long bucketId = omMetadataManager.getBucketId(volume, bucket);
       final String dbKey = omMetadataManager.getOzonePathKey(volumeId, 
bucketId,
diff --git 
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/key/TestOMSetTimesRequestWithFSO.java
 
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/key/TestOMSetTimesRequestWithFSO.java
index 1ad5a0931d..38c3ccf8ff 100644
--- 
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/key/TestOMSetTimesRequestWithFSO.java
+++ 
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/key/TestOMSetTimesRequestWithFSO.java
@@ -72,6 +72,40 @@ public class TestOMSetTimesRequestWithFSO extends 
TestOMSetTimesRequest {
     Assert.assertEquals(mtime, keyMtime);
   }
 
+  /**
+   * Verify that setTimes() on key works as expected.
+   * @throws Exception
+   */
+  @Test
+  public void testKeySetTimesRequest() throws Exception {
+    OMRequestTestUtils.addVolumeAndBucketToDB(volumeName, bucketName,
+        omMetadataManager, getBucketLayout());
+    String tableKey = addKeyToTable();
+    keyName = PARENT_DIR + "/" + FILE_NAME;
+    long mtime = 2000;
+    executeAndReturn(mtime);
+    OzoneFileStatus keyStatus = OMFileRequest.getOMKeyInfoIfExists(
+        omMetadataManager, volumeName, bucketName, keyName, 0,
+        ozoneManager.getDefaultReplicationConfig());
+    assertNotNull(keyStatus);
+    assertTrue(keyStatus.isFile());
+    OmKeyInfo omKeyInfo = omMetadataManager.getKeyTable(getBucketLayout())
+        .get(tableKey);
+    Assert.assertEquals(omKeyInfo.getKeyName(), FILE_NAME);
+    long keyMtime = keyStatus.getKeyInfo().getModificationTime();
+    Assert.assertEquals(mtime, keyMtime);
+    long newMtime = -1;
+    executeAndReturn(newMtime);
+    keyStatus = OMFileRequest.getOMKeyInfoIfExists(
+        omMetadataManager, volumeName, bucketName, keyName, 0,
+        ozoneManager.getDefaultReplicationConfig());
+    omKeyInfo = omMetadataManager.getKeyTable(getBucketLayout()).get(tableKey);
+    Assert.assertEquals(omKeyInfo.getKeyName(), FILE_NAME);
+    assertTrue(keyStatus.isFile());
+    keyMtime = keyStatus.getKeyInfo().getModificationTime();
+    Assert.assertEquals(mtime, keyMtime);
+  }
+
   protected String addKeyToTable() throws Exception {
     String key = PARENT_DIR + "/" + FILE_NAME;
     keyName = key; // updated key name
@@ -82,7 +116,7 @@ public class TestOMSetTimesRequestWithFSO extends 
TestOMSetTimesRequest {
             omMetadataManager);
 
     OmKeyInfo omKeyInfo = OMRequestTestUtils
-        .createOmKeyInfo(volumeName, bucketName, key,
+        .createOmKeyInfo(volumeName, bucketName, FILE_NAME,
             HddsProtos.ReplicationType.RATIS, HddsProtos.ReplicationFactor.ONE,
             parentId + 1, parentId, 100, Time.now());
     OMRequestTestUtils


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

Reply via email to