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]