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

adoroszlai pushed a commit to branch HDDS-10656-atomic-key-overwrite
in repository https://gitbox.apache.org/repos/asf/ozone.git


The following commit(s) were added to 
refs/heads/HDDS-10656-atomic-key-overwrite by this push:
     new 70df306f7d HDDS-10865. Check OM version before making rewrite key 
request (#6689)
70df306f7d is described below

commit 70df306f7d12ed3ef4ed352e7c77e50a3e83aa14
Author: Doroszlai, Attila <[email protected]>
AuthorDate: Fri May 17 12:51:25 2024 +0200

    HDDS-10865. Check OM version before making rewrite key request (#6689)
---
 .../src/main/java/org/apache/hadoop/ozone/OzoneManagerVersion.java    | 2 ++
 .../src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java   | 4 ++++
 2 files changed, 6 insertions(+)

diff --git 
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneManagerVersion.java
 
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneManagerVersion.java
index 985c238fd7..f5031a1265 100644
--- 
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneManagerVersion.java
+++ 
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneManagerVersion.java
@@ -40,6 +40,8 @@ public enum OzoneManagerVersion implements ComponentVersion {
   LIGHTWEIGHT_LIST_KEYS(4, "OzoneManager version that supports lightweight"
       + " listKeys API."),
 
+  ATOMIC_REWRITE_KEY(5, "OzoneManager version that supports rewriting key as 
atomic operation"),
+
   FUTURE_VERSION(-1, "Used internally in the client when the server side is "
       + " newer and an unknown server version has arrived to the client.");
 
diff --git 
a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java
 
b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java
index 000a194150..45f6e238e3 100644
--- 
a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java
+++ 
b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java
@@ -1416,6 +1416,10 @@ public class RpcClient implements ClientProtocol {
   public OzoneOutputStream rewriteKey(String volumeName, String bucketName, 
String keyName,
       long size, long existingKeyGeneration, ReplicationConfig 
replicationConfig,
       Map<String, String> metadata) throws IOException {
+    if (omVersion.compareTo(OzoneManagerVersion.ATOMIC_REWRITE_KEY) < 0) {
+      throw new IOException("OzoneManager does not support atomic key 
rewrite.");
+    }
+
     createKeyPreChecks(volumeName, bucketName, keyName, replicationConfig);
     String ownerName = getRealUserInfo().getShortUserName();
 


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

Reply via email to