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

prashantpogde 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 6c89e05e0b HDDS-8645. Change TestOzoneManagerHASnapshot to not 
subclass TestOzoneManagerHA (#4749)
6c89e05e0b is described below

commit 6c89e05e0b5eadbd82fd15da25517a8246eac163
Author: Hemant Kumar <[email protected]>
AuthorDate: Fri May 19 19:29:20 2023 -0700

    HDDS-8645. Change TestOzoneManagerHASnapshot to not subclass 
TestOzoneManagerHA (#4749)
    
    * Changed test to create and use local mini cluster instead of inheriting 
from TestOzoneManagerHA
    
    * Addressed review comment
    
    * Close OzoneClient
---
 .../ozone/om/TestOzoneManagerHASnapshot.java       | 94 +++++++++++++++++-----
 1 file changed, 72 insertions(+), 22 deletions(-)

diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOzoneManagerHASnapshot.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOzoneManagerHASnapshot.java
index 50b0bf89b4..19dfe91ea9 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOzoneManagerHASnapshot.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOzoneManagerHASnapshot.java
@@ -19,11 +19,20 @@
 package org.apache.hadoop.ozone.om;
 
 import org.apache.commons.lang3.RandomStringUtils;
+import org.apache.hadoop.hdds.conf.OzoneConfiguration;
+import org.apache.hadoop.hdds.utils.IOUtils;
 import org.apache.hadoop.hdds.utils.db.Table;
 import org.apache.hadoop.hdds.utils.db.TableIterator;
+import org.apache.hadoop.ozone.MiniOzoneCluster;
+import org.apache.hadoop.ozone.MiniOzoneHAClusterImpl;
+import org.apache.hadoop.ozone.TestDataUtil;
+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.io.OzoneOutputStream;
 import org.apache.hadoop.ozone.om.helpers.SnapshotInfo;
-import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 
@@ -31,7 +40,9 @@ import java.io.IOException;
 import java.time.Duration;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.UUID;
 
+import static java.nio.charset.StandardCharsets.UTF_8;
 import static org.apache.hadoop.ozone.OzoneConsts.OM_KEY_PREFIX;
 import static org.awaitility.Awaitility.await;
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -42,8 +53,43 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
  * Tests snapshot in OM HA setup.
  */
 @Timeout(300)
-@Disabled("HDDS-8645")
-public class TestOzoneManagerHASnapshot extends TestOzoneManagerHA {
+public class TestOzoneManagerHASnapshot {
+  private static MiniOzoneHAClusterImpl cluster;
+  private static OzoneClient client;
+  private static String volumeName;
+  private static String bucketName;
+  private static ObjectStore store;
+  private static OzoneBucket ozoneBucket;
+
+  @BeforeAll
+  public static void staticInit() throws Exception {
+    OzoneConfiguration conf = new OzoneConfiguration();
+    String clusterId = UUID.randomUUID().toString();
+    String scmId = UUID.randomUUID().toString();
+    conf.setBoolean(OMConfigKeys.OZONE_FILESYSTEM_SNAPSHOT_ENABLED_KEY, true);
+
+    cluster = (MiniOzoneHAClusterImpl) MiniOzoneCluster.newOMHABuilder(conf)
+        .setClusterId(clusterId)
+        .setScmId(scmId)
+        .setOMServiceId("om-service-test")
+        .setNumOfOzoneManagers(3)
+        .build();
+
+    cluster.waitForClusterToBeReady();
+    client = cluster.newClient();
+    store = client.getObjectStore();
+    ozoneBucket = TestDataUtil.createVolumeAndBucket(client);
+    volumeName = ozoneBucket.getVolumeName();
+    bucketName = ozoneBucket.getName();
+  }
+
+  @AfterAll
+  public static void cleanUp() {
+    IOUtils.closeQuietly(client);
+    if (cluster != null) {
+      cluster.shutdown();
+    }
+  }
 
   /**
    * Test snapshotNames are unique among OM nodes when snapshotName is not
@@ -51,14 +97,8 @@ public class TestOzoneManagerHASnapshot extends 
TestOzoneManagerHA {
    */
   @Test
   public void testSnapshotNameConsistency() throws Exception {
-    OzoneBucket ozoneBucket = setupBucket();
-    String volumeName = ozoneBucket.getVolumeName();
-    String bucketName = ozoneBucket.getName();
-
-    createKey(ozoneBucket);
-
-    getObjectStore().createSnapshot(volumeName, bucketName, "");
-    List<OzoneManager> ozoneManagers = getCluster().getOzoneManagersList();
+    store.createSnapshot(volumeName, bucketName, "");
+    List<OzoneManager> ozoneManagers = cluster.getOzoneManagersList();
     List<String> snapshotNames = new ArrayList<>();
 
     for (OzoneManager ozoneManager : ozoneManagers) {
@@ -97,27 +137,37 @@ public class TestOzoneManagerHASnapshot extends 
TestOzoneManagerHA {
     List<String> bucketNames = new ArrayList<>();
 
     for (int i = 0; i < 10; i++) {
-      OzoneBucket ozoneBucket = setupBucket();
-      ozoneBuckets.add(ozoneBucket);
-      volumeNames.add(ozoneBucket.getVolumeName());
-      bucketNames.add(ozoneBucket.getName());
+      OzoneBucket bucket = TestDataUtil.createVolumeAndBucket(client);
+      ozoneBuckets.add(bucket);
+      volumeNames.add(bucket.getVolumeName());
+      bucketNames.add(bucket.getName());
     }
 
     for (int i = 0; i < 100; i++) {
       int index = i % 10;
-      createKey(ozoneBuckets.get(index));
+      createFileKey(ozoneBuckets.get(index),
+          "key-" + RandomStringUtils.randomNumeric(3));
       String snapshot1 = "snapshot-" + RandomStringUtils.randomNumeric(5);
-      getObjectStore().createSnapshot(volumeNames.get(index),
+      store.createSnapshot(volumeNames.get(index),
           bucketNames.get(index), snapshot1);
     }
 
     // Restart leader OM
-    OzoneManager omLeader = getCluster().getOMLeader();
-    getCluster().shutdownOzoneManager(omLeader);
-    getCluster().restartOzoneManager(omLeader, true);
+    OzoneManager omLeader = cluster.getOMLeader();
+    cluster.shutdownOzoneManager(omLeader);
+    cluster.restartOzoneManager(omLeader, true);
 
     await().atMost(Duration.ofSeconds(180))
-        .until(() -> getCluster().getOMLeader() != null);
-    assertNotNull(getCluster().getOMLeader());
+        .until(() -> cluster.getOMLeader() != null);
+    assertNotNull(cluster.getOMLeader());
+  }
+
+
+  private void createFileKey(OzoneBucket bucket, String keyName)
+      throws IOException {
+    byte[] value = RandomStringUtils.randomAscii(10240).getBytes(UTF_8);
+    try (OzoneOutputStream fileKey = bucket.createKey(keyName, value.length)) {
+      fileKey.write(value);
+    }
   }
 }


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

Reply via email to