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]