This is an automated email from the ASF dual-hosted git repository.
chungen 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 7c957cce1c HDDS-11954. List keys command gets wrong info from
BasicOmKeyInfo (#8401)
7c957cce1c is described below
commit 7c957cce1c6389693b2c275caed28677381ccdf5
Author: Anastasia Kostryukova <[email protected]>
AuthorDate: Tue May 13 17:33:12 2025 +0300
HDDS-11954. List keys command gets wrong info from BasicOmKeyInfo (#8401)
---
.../apache/hadoop/ozone/client/OzoneBucket.java | 2 +-
.../ozone/AbstractRootedOzoneFileSystemTest.java | 1 -
.../AbstractRootedOzoneFileSystemTestWithFSO.java | 1 -
.../hadoop/ozone/om/TestListKeysWithFSO.java | 23 ++++++++++++++++++++++
4 files changed, 24 insertions(+), 3 deletions(-)
diff --git
a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneBucket.java
b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneBucket.java
index 7f956b77df..b9649f09bb 100644
---
a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneBucket.java
+++
b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneBucket.java
@@ -1454,7 +1454,7 @@ private static OzoneKey toOzoneKey(OzoneFileStatusLight
status) {
keyInfo.getModificationTime(),
keyInfo.getReplicationConfig(),
metadata,
- keyInfo.isFile(),
+ status.isFile(),
keyInfo.getOwnerName(),
Collections.emptyMap());
}
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/AbstractRootedOzoneFileSystemTest.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/AbstractRootedOzoneFileSystemTest.java
index df4913789f..9d129435ba 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/AbstractRootedOzoneFileSystemTest.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/AbstractRootedOzoneFileSystemTest.java
@@ -2567,5 +2567,4 @@ private void deleteFiles(Path base, List<String>
fileNames) throws IOException {
fs.delete(new Path(base, key));
}
}
-
}
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/AbstractRootedOzoneFileSystemTestWithFSO.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/AbstractRootedOzoneFileSystemTestWithFSO.java
index 55c4ccc475..d2537dcde5 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/AbstractRootedOzoneFileSystemTestWithFSO.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/AbstractRootedOzoneFileSystemTestWithFSO.java
@@ -226,5 +226,4 @@ void testLeaseRecoverable() throws Exception {
TestLeaseRecovery.closeIgnoringKeyNotFound(stream);
}
}
-
}
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestListKeysWithFSO.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestListKeysWithFSO.java
index 4e4944db87..fc51c7f760 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestListKeysWithFSO.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestListKeysWithFSO.java
@@ -20,6 +20,8 @@
import static
org.apache.hadoop.ozone.OzoneConfigKeys.OZONE_CLIENT_LIST_CACHE_SIZE;
import static
org.apache.hadoop.ozone.OzoneConfigKeys.OZONE_FS_ITERATE_BATCH_SIZE;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
@@ -40,6 +42,7 @@
import org.apache.hadoop.ozone.client.OzoneClientFactory;
import org.apache.hadoop.ozone.client.OzoneKey;
import org.apache.hadoop.ozone.client.OzoneVolume;
+import org.apache.hadoop.ozone.client.io.OzoneOutputStream;
import org.apache.hadoop.ozone.om.helpers.BucketLayout;
import org.apache.ozone.test.NonHATests;
import org.junit.jupiter.api.AfterAll;
@@ -502,6 +505,26 @@ public void testShallowListKeys() throws Exception {
checkKeyShallowList(keyPrefix, startKey, expectedKeys, fsoOzoneBucket);
}
+ @Test
+ void testIsFileFalseForDir() throws Exception {
+ byte[] data = "key-data".getBytes(StandardCharsets.UTF_8);
+ try (OzoneOutputStream out = emptyFsoOzoneBucket.createKey("dir1/key1",
data.length)) {
+ out.write(data);
+ }
+
+ Iterator<? extends OzoneKey> keyIterator =
emptyFsoOzoneBucket.listKeys("");
+
+ assertTrue(keyIterator.hasNext(), "Expected dir1, key1 in the bucket");
+
+ OzoneKey ozoneKey = keyIterator.next();
+ assertEquals("dir1/", ozoneKey.getName());
+ assertFalse(ozoneKey.isFile(), "Expected isFile to be false for directory
key");
+
+ ozoneKey = keyIterator.next();
+ assertEquals("dir1/key1", ozoneKey.getName());
+ assertTrue(ozoneKey.isFile(), "Expected isFile to be true for key");
+ }
+
/**
* Verify listKeys at different levels.
*
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]