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

adoroszlai 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 5834fcf7c8 HDDS-10091. TestOzoneDebugShell fails with 
FILE_SYSTEM_OPTIMIZED bucket layout (#8227)
5834fcf7c8 is described below

commit 5834fcf7c89ab4f80aa3e51823af851e696806f9
Author: Priyesh Karatha <[email protected]>
AuthorDate: Sun Apr 6 15:49:56 2025 +0530

    HDDS-10091. TestOzoneDebugShell fails with FILE_SYSTEM_OPTIMIZED bucket 
layout (#8227)
---
 .../hadoop/ozone/shell/TestOzoneDebugShell.java    | 29 +++++++++++++---------
 1 file changed, 17 insertions(+), 12 deletions(-)

diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/shell/TestOzoneDebugShell.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/shell/TestOzoneDebugShell.java
index 6e4e9ab063..bc5ee8cc30 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/shell/TestOzoneDebugShell.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/shell/TestOzoneDebugShell.java
@@ -50,6 +50,7 @@
 import org.apache.hadoop.ozone.debug.OzoneDebug;
 import org.apache.hadoop.ozone.debug.ldb.RDBParser;
 import org.apache.hadoop.ozone.om.OMConfigKeys;
+import org.apache.hadoop.ozone.om.OMMetadataManager;
 import org.apache.hadoop.ozone.om.OMStorage;
 import org.apache.hadoop.ozone.om.helpers.BucketLayout;
 import org.apache.hadoop.ozone.om.helpers.OmKeyArgs;
@@ -58,9 +59,9 @@
 import org.apache.ozone.test.NonHATests;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.TestInstance;
 import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.EnumSource;
 import org.junit.jupiter.params.provider.ValueSource;
 import picocli.CommandLine;
 
@@ -72,11 +73,13 @@ public abstract class TestOzoneDebugShell implements 
NonHATests.TestCase {
 
   private OzoneClient client;
   private OzoneDebug ozoneDebugShell;
+  private OMMetadataManager omMetadataManager;
 
   @BeforeEach
   void init() throws Exception {
     ozoneDebugShell = new OzoneDebug();
     client = cluster().newClient();
+    omMetadataManager = cluster().getOzoneManager().getMetadataManager();
   }
 
   @AfterEach
@@ -91,7 +94,7 @@ public void testChunkInfoCmdBeforeAfterCloseContainer(boolean 
isEcKey) throws Ex
     final String bucketName = UUID.randomUUID().toString();
     final String keyName = UUID.randomUUID().toString();
 
-    writeKey(volumeName, bucketName, keyName, isEcKey);
+    writeKey(volumeName, bucketName, keyName, isEcKey, 
BucketLayout.FILE_SYSTEM_OPTIMIZED);
 
     int exitCode = runChunkInfoCommand(volumeName, bucketName, keyName);
     assertEquals(0, exitCode);
@@ -102,18 +105,21 @@ public void 
testChunkInfoCmdBeforeAfterCloseContainer(boolean isEcKey) throws Ex
     assertEquals(0, exitCode);
   }
 
-  @Test
-  public void testChunkInfoVerifyPathsAreDifferent() throws Exception {
+  @ParameterizedTest
+  @EnumSource
+  public void testChunkInfoVerifyPathsAreDifferent(BucketLayout layout) throws 
Exception {
     final String volumeName = UUID.randomUUID().toString();
     final String bucketName = UUID.randomUUID().toString();
     final String keyName = UUID.randomUUID().toString();
-    writeKey(volumeName, bucketName, keyName, false);
+    writeKey(volumeName, bucketName, keyName, false, layout);
     int exitCode = runChunkInfoAndVerifyPaths(volumeName, bucketName, keyName);
     assertEquals(0, exitCode);
   }
 
-  @Test
-  public void testLdbCliForOzoneSnapshot() throws Exception {
+  @ParameterizedTest
+  @EnumSource
+  public void testLdbCliForOzoneSnapshot(BucketLayout layout) throws Exception 
{
+    String columnFamily = omMetadataManager.getKeyTable(layout).getName();
     StringWriter stdout = new StringWriter();
     PrintWriter pstdout = new PrintWriter(stdout);
     CommandLine cmd = new CommandLine(new RDBParser())
@@ -122,7 +128,7 @@ public void testLdbCliForOzoneSnapshot() throws Exception {
     final String bucketName = UUID.randomUUID().toString();
     final String keyName = UUID.randomUUID().toString();
 
-    writeKey(volumeName, bucketName, keyName, false);
+    writeKey(volumeName, bucketName, keyName, false, layout);
 
     String snapshotName =
         client.getObjectStore().createSnapshot(volumeName, bucketName, 
"snap1");
@@ -135,7 +141,7 @@ public void testLdbCliForOzoneSnapshot() throws Exception {
     GenericTestUtils
         .waitFor(() -> new File(snapshotCurrent).exists(), 1000, 120000);
     String[] args =
-        new String[] {"--db=" + dbPath, "scan", "--cf", "keyTable"};
+        new String[] {"--db=" + dbPath, "scan", "--cf", columnFamily};
     int exitCode = cmd.execute(args);
     assertEquals(0, exitCode);
     String cmdOut = stdout.toString();
@@ -149,7 +155,7 @@ private String getSnapshotDBPath(String checkPointDir) {
   }
 
   private void writeKey(String volumeName, String bucketName,
-      String keyName, boolean isEcKey) throws IOException {
+      String keyName, boolean isEcKey, BucketLayout layout) throws IOException 
{
     ReplicationConfig repConfig;
     if (isEcKey) {
       repConfig = new ECReplicationConfig(3, 2);
@@ -157,9 +163,8 @@ private void writeKey(String volumeName, String bucketName,
       repConfig = ReplicationConfig.fromTypeAndFactor(ReplicationType.RATIS,
           ReplicationFactor.THREE);
     }
-    // see HDDS-10091 for making this work with FILE_SYSTEM_OPTIMIZED layout
     TestDataUtil.createVolumeAndBucket(client, volumeName, bucketName,
-        BucketLayout.LEGACY);
+        layout);
     TestDataUtil.createKey(
         client.getObjectStore().getVolume(volumeName).getBucket(bucketName),
         keyName, repConfig, "test".getBytes(StandardCharsets.UTF_8));


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

Reply via email to