Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;

Expand All @@ -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
Expand All @@ -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);
Expand All @@ -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())
Expand All @@ -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");
Expand All @@ -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();
Expand All @@ -149,17 +155,16 @@ 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);
} else {
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));
Expand Down