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 868a2376fe HDDS-12756. Speed up TestReconfigShell and
TestOzoneDebugShell (#8219)
868a2376fe is described below
commit 868a2376fe43bac5fc8635b6f0b0e5882ed065a2
Author: Doroszlai, Attila <[email protected]>
AuthorDate: Thu Apr 3 16:24:11 2025 +0200
HDDS-12756. Speed up TestReconfigShell and TestOzoneDebugShell (#8219)
---
.../hadoop/ozone/shell/TestOzoneDebugShell.java | 113 ++++---------
.../hadoop/ozone/shell/TestReconfigShell.java | 187 ++++++++-------------
.../java/org/apache/ozone/test/NonHATests.java | 18 ++
3 files changed, 121 insertions(+), 197 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 a1ace9f97f..6e4e9ab063 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
@@ -17,12 +17,6 @@
package org.apache.hadoop.ozone.shell;
-import static java.util.concurrent.TimeUnit.SECONDS;
-import static
org.apache.hadoop.hdds.HddsConfigKeys.HDDS_COMMAND_STATUS_REPORT_INTERVAL;
-import static
org.apache.hadoop.hdds.HddsConfigKeys.HDDS_CONTAINER_REPORT_INTERVAL;
-import static org.apache.hadoop.hdds.HddsConfigKeys.HDDS_HEARTBEAT_INTERVAL;
-import static
org.apache.hadoop.hdds.HddsConfigKeys.HDDS_PIPELINE_REPORT_INTERVAL;
-import static
org.apache.hadoop.hdds.scm.ScmConfigKeys.OZONE_SCM_HEARTBEAT_PROCESS_INTERVAL;
import static org.apache.hadoop.ozone.OzoneConsts.OM_DB_NAME;
import static org.apache.hadoop.ozone.OzoneConsts.OM_KEY_PREFIX;
import static org.apache.hadoop.ozone.OzoneConsts.OM_SNAPSHOT_CHECKPOINT_DIR;
@@ -36,27 +30,22 @@
import java.io.PrintWriter;
import java.io.StringWriter;
import java.nio.charset.StandardCharsets;
-import java.time.Duration;
import java.util.HashSet;
import java.util.Set;
import java.util.UUID;
-import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hdds.client.ECReplicationConfig;
import org.apache.hadoop.hdds.client.ReplicationConfig;
import org.apache.hadoop.hdds.client.ReplicationFactor;
import org.apache.hadoop.hdds.client.ReplicationType;
-import org.apache.hadoop.hdds.conf.OzoneConfiguration;
+import org.apache.hadoop.hdds.scm.ScmConfigKeys;
import org.apache.hadoop.hdds.scm.container.ContainerID;
import org.apache.hadoop.hdds.scm.container.ContainerInfo;
-import org.apache.hadoop.hdds.scm.container.replication.ReplicationManager;
import org.apache.hadoop.hdds.utils.IOUtils;
-import org.apache.hadoop.ozone.MiniOzoneCluster;
import org.apache.hadoop.ozone.OzoneTestUtils;
import org.apache.hadoop.ozone.TestDataUtil;
import org.apache.hadoop.ozone.client.OzoneClient;
-import org.apache.hadoop.ozone.client.OzoneClientFactory;
import org.apache.hadoop.ozone.client.OzoneSnapshot;
import org.apache.hadoop.ozone.debug.OzoneDebug;
import org.apache.hadoop.ozone.debug.ldb.RDBParser;
@@ -66,9 +55,11 @@
import org.apache.hadoop.ozone.om.helpers.OmKeyArgs;
import org.apache.hadoop.ozone.om.helpers.OmKeyLocationInfo;
import org.apache.ozone.test.GenericTestUtils;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
+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.ValueSource;
import picocli.CommandLine;
@@ -76,41 +67,21 @@
/**
* Test Ozone Debug shell.
*/
-public class TestOzoneDebugShell {
+@TestInstance(TestInstance.Lifecycle.PER_CLASS)
+public abstract class TestOzoneDebugShell implements NonHATests.TestCase {
- private static MiniOzoneCluster cluster = null;
- private static OzoneClient client;
- private static OzoneDebug ozoneDebugShell;
+ private OzoneClient client;
+ private OzoneDebug ozoneDebugShell;
- private static OzoneConfiguration conf = null;
-
- protected static void startCluster() throws Exception {
- // Init HA cluster
- final int numDNs = 5;
- cluster = MiniOzoneCluster.newBuilder(conf)
- .setNumDatanodes(numDNs)
- .build();
- cluster.waitForClusterToBeReady();
- client = cluster.newClient();
+ @BeforeEach
+ void init() throws Exception {
+ ozoneDebugShell = new OzoneDebug();
+ client = cluster().newClient();
}
-
- @BeforeAll
- public static void init() throws Exception {
- ozoneDebugShell = new OzoneDebug();
- conf = ozoneDebugShell.getOzoneConf();
- conf.setTimeDuration(OZONE_SCM_HEARTBEAT_PROCESS_INTERVAL,
- 100, TimeUnit.MILLISECONDS);
- conf.setTimeDuration(HDDS_HEARTBEAT_INTERVAL, 1, SECONDS);
- conf.setTimeDuration(HDDS_PIPELINE_REPORT_INTERVAL, 1, SECONDS);
- conf.setTimeDuration(HDDS_COMMAND_STATUS_REPORT_INTERVAL, 1, SECONDS);
- conf.setTimeDuration(HDDS_CONTAINER_REPORT_INTERVAL, 1, SECONDS);
- ReplicationManager.ReplicationManagerConfiguration replicationConf =
- conf.getObject(
- ReplicationManager.ReplicationManagerConfiguration.class);
- replicationConf.setInterval(Duration.ofSeconds(1));
- conf.setFromObject(replicationConf);
- startCluster();
+ @AfterEach
+ void shutdown() {
+ IOUtils.closeQuietly(client);
}
@ParameterizedTest
@@ -171,13 +142,13 @@ public void testLdbCliForOzoneSnapshot() throws Exception
{
assertThat(cmdOut).contains(keyName);
}
- private static String getSnapshotDBPath(String checkPointDir) {
- return OMStorage.getOmDbDir(conf) +
+ private String getSnapshotDBPath(String checkPointDir) {
+ return OMStorage.getOmDbDir(cluster().getConf()) +
OM_KEY_PREFIX + OM_SNAPSHOT_CHECKPOINT_DIR + OM_KEY_PREFIX +
OM_DB_NAME + checkPointDir;
}
- private static void writeKey(String volumeName, String bucketName,
+ private void writeKey(String volumeName, String bucketName,
String keyName, boolean isEcKey) throws IOException {
ReplicationConfig repConfig;
if (isEcKey) {
@@ -186,14 +157,12 @@ private static void writeKey(String volumeName, String
bucketName,
repConfig = ReplicationConfig.fromTypeAndFactor(ReplicationType.RATIS,
ReplicationFactor.THREE);
}
- try (OzoneClient client = OzoneClientFactory.getRpcClient(conf)) {
- // see HDDS-10091 for making this work with FILE_SYSTEM_OPTIMIZED layout
- TestDataUtil.createVolumeAndBucket(client, volumeName, bucketName,
- BucketLayout.LEGACY);
- TestDataUtil.createKey(
- client.getObjectStore().getVolume(volumeName).getBucket(bucketName),
- keyName, repConfig, "test".getBytes(StandardCharsets.UTF_8));
- }
+ // see HDDS-10091 for making this work with FILE_SYSTEM_OPTIMIZED layout
+ TestDataUtil.createVolumeAndBucket(client, volumeName, bucketName,
+ BucketLayout.LEGACY);
+ TestDataUtil.createKey(
+ client.getObjectStore().getVolume(volumeName).getBucket(bucketName),
+ keyName, repConfig, "test".getBytes(StandardCharsets.UTF_8));
}
private int runChunkInfoCommand(String volumeName, String bucketName,
@@ -202,23 +171,18 @@ private int runChunkInfoCommand(String volumeName, String
bucketName,
Path.SEPARATOR + volumeName + Path.SEPARATOR + bucketName;
String[] args = new String[] {
getSetConfStringFromConf(OMConfigKeys.OZONE_OM_ADDRESS_KEY),
+ getSetConfStringFromConf(ScmConfigKeys.OZONE_SCM_CLIENT_ADDRESS_KEY),
"replicas", "chunk-info", bucketPath + Path.SEPARATOR + keyName };
- int exitCode = ozoneDebugShell.execute(args);
- return exitCode;
+ return ozoneDebugShell.execute(args);
}
private int runChunkInfoAndVerifyPaths(String volumeName, String bucketName,
String keyName) throws Exception {
- String bucketPath =
- Path.SEPARATOR + volumeName + Path.SEPARATOR + bucketName;
- String[] args = new String[] {
- getSetConfStringFromConf(OMConfigKeys.OZONE_OM_ADDRESS_KEY),
- "replicas", "chunk-info", bucketPath + Path.SEPARATOR + keyName };
int exitCode = 1;
try (GenericTestUtils.SystemOutCapturer capture = new GenericTestUtils
.SystemOutCapturer()) {
- exitCode = ozoneDebugShell.execute(args);
+ exitCode = runChunkInfoCommand(volumeName, bucketName, keyName);
Set<String> blockFilePaths = new HashSet<>();
String output = capture.getOutput();
ObjectMapper objectMapper = new ObjectMapper();
@@ -244,34 +208,23 @@ private int runChunkInfoAndVerifyPaths(String volumeName,
String bucketName,
* connect to OM by setting the right om address.
*/
private String getSetConfStringFromConf(String key) {
- return String.format("--set=%s=%s", key, conf.get(key));
+ return String.format("--set=%s=%s", key, cluster().getConf().get(key));
}
- private static void closeContainerForKey(String volumeName, String
bucketName,
+ private void closeContainerForKey(String volumeName, String bucketName,
String keyName)
throws IOException, TimeoutException, InterruptedException {
OmKeyArgs keyArgs = new OmKeyArgs.Builder().setVolumeName(volumeName)
.setBucketName(bucketName).setKeyName(keyName).build();
OmKeyLocationInfo omKeyLocationInfo =
- cluster.getOzoneManager().lookupKey(keyArgs).getKeyLocationVersions()
+ cluster().getOzoneManager().lookupKey(keyArgs).getKeyLocationVersions()
.get(0).getBlocksLatestVersionOnly().get(0);
ContainerInfo container =
-
cluster.getStorageContainerManager().getContainerManager().getContainer(
+
cluster().getStorageContainerManager().getContainerManager().getContainer(
ContainerID.valueOf(omKeyLocationInfo.getContainerID()));
- OzoneTestUtils.closeContainer(cluster.getStorageContainerManager(),
+ OzoneTestUtils.closeContainer(cluster().getStorageContainerManager(),
container);
}
-
- /**
- * shutdown MiniOzoneCluster.
- */
- @AfterAll
- public static void shutdown() {
- IOUtils.closeQuietly(client);
- if (cluster != null) {
- cluster.shutdown();
- }
- }
}
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/shell/TestReconfigShell.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/shell/TestReconfigShell.java
index 28a35a3887..d6001a2fd8 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/shell/TestReconfigShell.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/shell/TestReconfigShell.java
@@ -17,166 +17,119 @@
package org.apache.hadoop.ozone.shell;
-import static
org.apache.hadoop.hdds.protocol.proto.HddsProtos.NodeOperationalState.DECOMMISSIONED;
-import static
org.apache.hadoop.hdds.protocol.proto.HddsProtos.NodeOperationalState.IN_SERVICE;
-import static
org.apache.hadoop.hdds.scm.ScmConfigKeys.OZONE_SCM_STALENODE_INTERVAL;
+import static
org.apache.hadoop.hdds.scm.ScmConfigKeys.OZONE_SCM_CLIENT_ADDRESS_KEY;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import java.io.UnsupportedEncodingException;
import java.net.InetSocketAddress;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
-import java.util.UUID;
-import java.util.concurrent.TimeUnit;
import org.apache.hadoop.conf.ReconfigurableBase;
-import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.DatanodeDetails;
+import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.scm.node.NodeManager;
import org.apache.hadoop.hdds.scm.server.StorageContainerManager;
-import org.apache.hadoop.ozone.HddsDatanodeClientProtocolServer;
+import org.apache.hadoop.hdds.utils.IOUtils;
import org.apache.hadoop.ozone.HddsDatanodeService;
-import org.apache.hadoop.ozone.MiniOzoneCluster;
import org.apache.hadoop.ozone.admin.OzoneAdmin;
import org.apache.hadoop.ozone.om.OzoneManager;
-import org.apache.ozone.test.GenericTestUtils.SystemOutCapturer;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
+import org.apache.ozone.test.GenericTestUtils;
+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.api.Timeout;
/**
- * * Integration test for {@code ozone admin reconfig} command. HA enabled.
+ * Integration test for {@code ozone admin reconfig} command.
*/
+@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@Timeout(300)
-public class TestReconfigShell {
-
- private static final int DATANODE_COUNT = 3;
- private static MiniOzoneCluster cluster;
- private static List<HddsDatanodeService> datanodeServices;
- private static OzoneAdmin ozoneAdmin;
- private static OzoneManager ozoneManager;
- private static StorageContainerManager storageContainerManager;
- private static NodeManager nm;
-
-
- /**
- * Create a Mini Cluster for testing.
- */
- @BeforeAll
- public static void setup() throws Exception {
+public abstract class TestReconfigShell implements NonHATests.TestCase {
+
+ private OzoneAdmin ozoneAdmin;
+ private GenericTestUtils.PrintStreamCapturer out;
+ private GenericTestUtils.PrintStreamCapturer err;
+
+ @BeforeEach
+ void capture() {
+ out = GenericTestUtils.captureOut();
+ err = GenericTestUtils.captureErr();
ozoneAdmin = new OzoneAdmin();
- OzoneConfiguration conf = ozoneAdmin.getOzoneConf();
- conf.setTimeDuration(OZONE_SCM_STALENODE_INTERVAL, 3, TimeUnit.SECONDS);
- String omServiceId = UUID.randomUUID().toString();
- cluster = MiniOzoneCluster.newHABuilder(conf)
- .setOMServiceId(omServiceId)
- .setNumOfOzoneManagers(1)
- .setNumOfStorageContainerManagers(1)
- .setNumDatanodes(DATANODE_COUNT)
- .build();
- cluster.waitForClusterToBeReady();
- ozoneManager = cluster.getOzoneManager();
- storageContainerManager = cluster.getStorageContainerManager();
- datanodeServices = cluster.getHddsDatanodes();
- nm = storageContainerManager.getScmNodeManager();
}
- @AfterAll
- public static void shutdown() {
- if (cluster != null) {
- cluster.shutdown();
- }
+ @AfterEach
+ void stopCapture() {
+ IOUtils.closeQuietly(out);
}
@Test
- public void testDataNodeGetReconfigurableProperties() throws Exception {
- try (SystemOutCapturer capture = new SystemOutCapturer()) {
- for (HddsDatanodeService datanodeService : datanodeServices) {
- HddsDatanodeClientProtocolServer server =
- datanodeService.getClientProtocolServer();
- InetSocketAddress socket = server.getClientRpcAddress();
-
executeAndAssertProperties(datanodeService.getReconfigurationHandler(),
"--service=DATANODE",
- socket, capture);
- }
+ void testDataNodeGetReconfigurableProperties() {
+ for (HddsDatanodeService dn : cluster().getHddsDatanodes()) {
+ InetSocketAddress socket =
dn.getClientProtocolServer().getClientRpcAddress();
+ executeAndAssertProperties(dn.getReconfigurationHandler(), "DATANODE",
socket);
}
}
@Test
- public void testOzoneManagerGetReconfigurationProperties() throws Exception {
- try (SystemOutCapturer capture = new SystemOutCapturer()) {
- InetSocketAddress socket = ozoneManager.getOmRpcServerAddr();
- executeAndAssertProperties(ozoneManager.getReconfigurationHandler(),
"--service=OM",
- socket, capture);
- }
+ void testOzoneManagerGetReconfigurationProperties() {
+ OzoneManager om = cluster().getOzoneManager();
+ InetSocketAddress socket = om.getOmRpcServerAddr();
+ executeAndAssertProperties(om.getReconfigurationHandler(), "OM", socket);
+ }
+
+ @Test
+ void testStorageContainerManagerGetReconfigurationProperties() {
+ StorageContainerManager scm = cluster().getStorageContainerManager();
+ executeAndAssertProperties(scm.getReconfigurationHandler(), "SCM",
scm.getClientRpcAddress());
+ }
+
+ @Test
+ void testDatanodeBulkCommand() {
+ executeForInServiceDatanodes(cluster().getHddsDatanodes().size());
}
@Test
- public void testStorageContainerManagerGetReconfigurationProperties()
- throws Exception {
- try (SystemOutCapturer capture = new SystemOutCapturer()) {
- InetSocketAddress socket = storageContainerManager.getClientRpcAddress();
- executeAndAssertProperties(
- storageContainerManager.getReconfigurationHandler(),
"--service=SCM", socket, capture);
+ void testDatanodeBulkCommandWithOutOfServiceNode() throws Exception {
+ DatanodeDetails dn =
cluster().getHddsDatanodes().get(0).getDatanodeDetails();
+ NodeManager nodeManager =
cluster().getStorageContainerManager().getScmNodeManager();
+ nodeManager.setNodeOperationalState(dn,
HddsProtos.NodeOperationalState.DECOMMISSIONING);
+
+ try {
+ executeForInServiceDatanodes(cluster().getHddsDatanodes().size() - 1);
+ } finally {
+ nodeManager.setNodeOperationalState(dn,
HddsProtos.NodeOperationalState.IN_SERVICE);
}
}
private void executeAndAssertProperties(
ReconfigurableBase reconfigurableBase, String service,
- InetSocketAddress socket, SystemOutCapturer capture)
- throws UnsupportedEncodingException {
+ InetSocketAddress socket) {
String address = socket.getHostString() + ":" + socket.getPort();
- ozoneAdmin.execute(
- new String[] {"reconfig", service, "--address", address,
"properties"});
- assertReconfigurablePropertiesOutput(
- reconfigurableBase.getReconfigurableProperties(), capture.getOutput());
+ ozoneAdmin.getCmd().execute("reconfig", "--service", service, "--address",
address, "properties");
+
assertReconfigurablePropertiesOutput(reconfigurableBase.getReconfigurableProperties());
}
- private void assertReconfigurablePropertiesOutput(
- Collection<String> except, String output) {
- List<String> outs =
- Arrays.asList(output.split(System.getProperty("line.separator")));
- for (String property : except) {
- assertThat(outs).contains(property);
- }
- }
+ private void assertReconfigurablePropertiesOutput(Collection<String>
expectedProperties) {
+ assertThat(err.get()).isEmpty();
- @Test
- public void testDatanodeBulkReconfig() throws Exception {
- // All Dn are normal, So All the Dn will be reconfig
- List<HddsDatanodeService> dns = cluster.getHddsDatanodes();
- assertEquals(DATANODE_COUNT, dns.size());
- executeAndAssertBulkReconfigCount(DATANODE_COUNT);
-
- // Shutdown a Dn, it will not be reconfig,
- // so only (datanodeCount - 1) Dn will be configured successfully
- cluster.shutdownHddsDatanode(0);
- executeAndAssertBulkReconfigCount(DATANODE_COUNT - 1);
- cluster.restartHddsDatanode(0, true);
- executeAndAssertBulkReconfigCount(DATANODE_COUNT);
-
- // DECOMMISSIONED a Dn, it will not be reconfig,
- // so only (datanodeCount - 1) Dn will be configured successfully
- DatanodeDetails details = dns.get(1).getDatanodeDetails();
- storageContainerManager.getScmDecommissionManager()
- .startDecommission(details);
- nm.setNodeOperationalState(details, DECOMMISSIONED);
- executeAndAssertBulkReconfigCount(DATANODE_COUNT - 1);
- storageContainerManager.getScmDecommissionManager()
- .recommission(details);
- nm.setNodeOperationalState(details, IN_SERVICE);
- executeAndAssertBulkReconfigCount(DATANODE_COUNT);
+ List<String> outs = Arrays.asList(out.get().split(System.lineSeparator()));
+ assertThat(outs).containsAll(expectedProperties);
}
- private void executeAndAssertBulkReconfigCount(int except)
- throws Exception {
- try (SystemOutCapturer capture = new SystemOutCapturer()) {
- ozoneAdmin.execute(new String[] {
- "reconfig", "--service=DATANODE", "--in-service-datanodes",
"properties"});
- String output = capture.getOutput();
+ private void executeForInServiceDatanodes(int expectedCount) {
+ StorageContainerManager scm = cluster().getStorageContainerManager();
+ ozoneAdmin.getCmd().execute(
+ "-D", OZONE_SCM_CLIENT_ADDRESS_KEY + "=" +
getAddress(scm.getClientRpcAddress()),
+ "reconfig", "--service", "DATANODE", "--in-service-datanodes",
"properties");
- assertThat(capture.getOutput()).contains(String.format("successfully
%d", except));
- }
+ assertThat(err.get()).isEmpty();
+ assertThat(out.get())
+ .contains(String.format("successfully %d ", expectedCount));
+ }
+
+ private String getAddress(InetSocketAddress socket) {
+ return socket.getHostString() + ":" + socket.getPort();
}
}
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/ozone/test/NonHATests.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/ozone/test/NonHATests.java
index df932ed34f..009c4fa5cf 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/ozone/test/NonHATests.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/ozone/test/NonHATests.java
@@ -55,6 +55,8 @@
import org.apache.hadoop.ozone.reconfig.TestDatanodeReconfiguration;
import org.apache.hadoop.ozone.reconfig.TestOmReconfiguration;
import org.apache.hadoop.ozone.reconfig.TestScmReconfiguration;
+import org.apache.hadoop.ozone.shell.TestOzoneDebugShell;
+import org.apache.hadoop.ozone.shell.TestReconfigShell;
import org.apache.hadoop.ozone.shell.TestReplicationConfigPreference;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.TestInstance;
@@ -370,6 +372,22 @@ public MiniOzoneCluster cluster() {
}
}
+ @Nested
+ class OzoneDebugShell extends TestOzoneDebugShell {
+ @Override
+ public MiniOzoneCluster cluster() {
+ return getCluster();
+ }
+ }
+
+ @Nested
+ class ReconfigShell extends TestReconfigShell {
+ @Override
+ public MiniOzoneCluster cluster() {
+ return getCluster();
+ }
+ }
+
@Nested
class ScmReconfiguration extends TestScmReconfiguration {
@Override
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]