diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/OzoneRpcClientTests.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/OzoneRpcClientTests.java index 0bee674d074b..3e75542bf9f1 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/OzoneRpcClientTests.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/OzoneRpcClientTests.java @@ -57,6 +57,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; +import static org.junit.jupiter.api.Assumptions.assumeFalse; import static org.slf4j.event.Level.DEBUG; import java.io.File; @@ -130,6 +131,7 @@ import org.apache.hadoop.ozone.OzoneAcl; import org.apache.hadoop.ozone.OzoneConfigKeys; import org.apache.hadoop.ozone.OzoneConsts; +import org.apache.hadoop.ozone.OzoneManagerVersion; import org.apache.hadoop.ozone.OzoneTestUtils; import org.apache.hadoop.ozone.TestDataUtil; import org.apache.hadoop.ozone.audit.AuditLogTestUtils; @@ -1226,6 +1228,7 @@ public void testPutKey() throws IOException { @ParameterizedTest @EnumSource void rewriteKey(BucketLayout layout) throws IOException { + checkFeatureEnable(OzoneManagerVersion.ATOMIC_REWRITE_KEY); OzoneBucket bucket = createBucket(layout); OzoneKeyDetails keyDetails = createTestKey(bucket); OmKeyArgs keyArgs = toOmKeyArgs(keyDetails); @@ -1243,6 +1246,7 @@ void rewriteKey(BucketLayout layout) throws IOException { @ParameterizedTest @EnumSource void overwriteAfterRewrite(BucketLayout layout) throws IOException { + checkFeatureEnable(OzoneManagerVersion.ATOMIC_REWRITE_KEY); OzoneBucket bucket = createBucket(layout); OzoneKeyDetails keyDetails = createTestKey(bucket); rewriteKey(bucket, keyDetails, "rewrite".getBytes(UTF_8)); @@ -1257,6 +1261,7 @@ void overwriteAfterRewrite(BucketLayout layout) throws IOException { @ParameterizedTest @EnumSource void rewriteAfterRename(BucketLayout layout) throws IOException { + checkFeatureEnable(OzoneManagerVersion.ATOMIC_REWRITE_KEY); OzoneBucket bucket = createBucket(layout); OzoneKeyDetails keyDetails = createTestKey(bucket); String newKeyName = "rewriteAfterRename-" + layout; @@ -1277,6 +1282,7 @@ void rewriteAfterRename(BucketLayout layout) throws IOException { @ParameterizedTest @EnumSource void renameAfterRewrite(BucketLayout layout) throws IOException { + checkFeatureEnable(OzoneManagerVersion.ATOMIC_REWRITE_KEY); OzoneBucket bucket = createBucket(layout); OzoneKeyDetails keyDetails = createTestKey(bucket); final byte[] rewriteContent = "rewrite".getBytes(UTF_8); @@ -1294,6 +1300,7 @@ void renameAfterRewrite(BucketLayout layout) throws IOException { @ParameterizedTest @EnumSource void rewriteFailsDueToOutdatedGeneration(BucketLayout layout) throws IOException { + checkFeatureEnable(OzoneManagerVersion.ATOMIC_REWRITE_KEY); OzoneBucket bucket = createBucket(layout); OzoneKeyDetails keyDetails = createTestKey(bucket); OmKeyArgs keyArgs = toOmKeyArgs(keyDetails); @@ -1317,6 +1324,7 @@ void rewriteFailsDueToOutdatedGeneration(BucketLayout layout) throws IOException @ParameterizedTest @EnumSource void rewriteFailsDueToOutdatedGenerationAtCommit(BucketLayout layout) throws IOException { + checkFeatureEnable(OzoneManagerVersion.ATOMIC_REWRITE_KEY); OzoneBucket bucket = createBucket(layout); OzoneKeyDetails keyDetails = createTestKey(bucket); final byte[] overwriteContent = "overwrite".getBytes(UTF_8); @@ -1351,6 +1359,7 @@ void rewriteFailsDueToOutdatedGenerationAtCommit(BucketLayout layout) throws IOE @ParameterizedTest @EnumSource void cannotRewriteDeletedKey(BucketLayout layout) throws IOException { + checkFeatureEnable(OzoneManagerVersion.ATOMIC_REWRITE_KEY); OzoneBucket bucket = createBucket(layout); OzoneKeyDetails keyDetails = createTestKey(bucket); bucket.deleteKey(keyDetails.getName()); @@ -1363,6 +1372,7 @@ void cannotRewriteDeletedKey(BucketLayout layout) throws IOException { @ParameterizedTest @EnumSource void cannotRewriteRenamedKey(BucketLayout layout) throws IOException { + checkFeatureEnable(OzoneManagerVersion.ATOMIC_REWRITE_KEY); OzoneBucket bucket = createBucket(layout); OzoneKeyDetails keyDetails = createTestKey(bucket); bucket.renameKey(keyDetails.getName(), "newKeyName-" + layout.name()); @@ -1440,6 +1450,14 @@ private static void assertMetadataUnchanged(OzoneKeyDetails original, OzoneKeyDe assertEquals(original.getMetadata(), rewritten.getMetadata()); } + private static void checkFeatureEnable(OzoneManagerVersion feature) { + try { + cluster.getOzoneManager().checkFeatureEnabled(feature); + } catch (OMException e) { + assumeFalse(OMException.ResultCodes.NOT_SUPPORTED_OPERATION == e.getResult()); + } + } + @Test public void testCheckUsedBytesQuota() throws IOException { String volumeName = UUID.randomUUID().toString();