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 3b282c774a HDDS-10840. Do not pass owner in KeyArgs when rewriting a
key (#6710)
3b282c774a is described below
commit 3b282c774aa0c254f97c15bd0b3cbb0749d3cb04
Author: Stephen O'Donnell <[email protected]>
AuthorDate: Tue May 21 16:40:28 2024 +0100
HDDS-10840. Do not pass owner in KeyArgs when rewriting a key (#6710)
---
.../main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java | 2 --
.../protocolPB/OzoneManagerProtocolClientSideTranslatorPB.java | 9 +++++++--
.../hadoop/ozone/client/rpc/TestOzoneRpcClientAbstract.java | 2 ++
3 files changed, 9 insertions(+), 4 deletions(-)
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 cfb94a3950..c34987090f 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
@@ -1421,7 +1421,6 @@ public class RpcClient implements ClientProtocol {
}
createKeyPreChecks(volumeName, bucketName, keyName, replicationConfig);
- String ownerName = getRealUserInfo().getShortUserName();
OmKeyArgs.Builder builder = new OmKeyArgs.Builder()
.setVolumeName(volumeName)
@@ -1431,7 +1430,6 @@ public class RpcClient implements ClientProtocol {
.setReplicationConfig(replicationConfig)
.addAllMetadataGdpr(metadata)
.setLatestVersionLocation(getLatestVersionLocation)
- .setOwnerName(ownerName)
.setExpectedDataGeneration(existingKeyGeneration);
OpenKeySession openKey = ozoneManagerClient.openKey(builder.build());
diff --git
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocolPB/OzoneManagerProtocolClientSideTranslatorPB.java
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocolPB/OzoneManagerProtocolClientSideTranslatorPB.java
index 42bef98905..cbe1cb76a3 100644
---
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocolPB/OzoneManagerProtocolClientSideTranslatorPB.java
+++
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocolPB/OzoneManagerProtocolClientSideTranslatorPB.java
@@ -686,8 +686,13 @@ public final class
OzoneManagerProtocolClientSideTranslatorPB
KeyArgs.Builder keyArgs = KeyArgs.newBuilder()
.setVolumeName(args.getVolumeName())
.setBucketName(args.getBucketName())
- .setKeyName(args.getKeyName())
- .setOwnerName(args.getOwner());
+ .setKeyName(args.getKeyName());
+
+ // When rewriting a key, the owner does not need to be passed, as it is
inherited
+ // from the existing key. Hence it can be null.
+ if (args.getOwner() != null) {
+ keyArgs.setOwnerName(args.getOwner());
+ }
if (args.getAcls() != null) {
keyArgs.addAllAcls(args.getAcls().stream().distinct().map(a ->
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestOzoneRpcClientAbstract.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestOzoneRpcClientAbstract.java
index e3b0c4a7a7..7e9abf44e9 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestOzoneRpcClientAbstract.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestOzoneRpcClientAbstract.java
@@ -1133,6 +1133,8 @@ public abstract class TestOzoneRpcClientAbstract {
is.read(fileContent);
assertEquals(rewriteValue, new String(fileContent, UTF_8));
}
+ OzoneKeyDetails rewrittenKeyDetails = bucket.getKey(keyName);
+ assertEquals(keyDetails.getOwner(), rewrittenKeyDetails.getOwner());
// Delete the key
bucket.deleteKey(keyName);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]