You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ozone.apache.org by si...@apache.org on 2020/04/15 02:57:44 UTC
[hadoop-ozone] branch master updated: HDDS-3374. Addendum:
OMVolumeSetOwnerRequest doesn't check if user is already the owner (#821)
This is an automated email from the ASF dual-hosted git repository.
siyao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hadoop-ozone.git
The following commit(s) were added to refs/heads/master by this push:
new 8287c72 HDDS-3374. Addendum: OMVolumeSetOwnerRequest doesn't check if user is already the owner (#821)
8287c72 is described below
commit 8287c72c6282a0c6627a68192642303caf12ba81
Author: Siyao Meng <50...@users.noreply.github.com>
AuthorDate: Tue Apr 14 19:57:36 2020 -0700
HDDS-3374. Addendum: OMVolumeSetOwnerRequest doesn't check if user is already the owner (#821)
---
.../ozone/client/rpc/TestOzoneRpcClientAbstract.java | 14 ++++++++++++++
.../ozone/om/request/volume/OMVolumeSetOwnerRequest.java | 11 +++++------
2 files changed, 19 insertions(+), 6 deletions(-)
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 030527a..e993c5b 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
@@ -69,6 +69,7 @@ import org.apache.hadoop.ozone.client.OzoneVolume;
import org.apache.hadoop.ozone.client.VolumeArgs;
import org.apache.hadoop.ozone.client.io.OzoneInputStream;
import org.apache.hadoop.ozone.client.io.OzoneOutputStream;
+import org.apache.hadoop.ozone.client.protocol.ClientProtocol;
import org.apache.hadoop.ozone.common.OzoneChecksumException;
import org.apache.hadoop.ozone.container.common.helpers.BlockData;
import org.apache.hadoop.ozone.container.common.interfaces.Container;
@@ -242,6 +243,19 @@ public abstract class TestOzoneRpcClientAbstract {
}
@Test
+ public void testVolumeSetOwner() throws IOException {
+ String volumeName = UUID.randomUUID().toString();
+ store.createVolume(volumeName);
+
+ String ownerName = "someRandomUser1";
+
+ ClientProtocol proxy = store.getClientProxy();
+ proxy.setVolumeOwner(volumeName, ownerName);
+ // Set owner again
+ proxy.setVolumeOwner(volumeName, ownerName);
+ }
+
+ @Test
public void testSetVolumeQuota()
throws IOException {
String volumeName = UUID.randomUUID().toString();
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/volume/OMVolumeSetOwnerRequest.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/volume/OMVolumeSetOwnerRequest.java
index fd0898d..36dcf64 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/volume/OMVolumeSetOwnerRequest.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/volume/OMVolumeSetOwnerRequest.java
@@ -112,7 +112,6 @@ public class OMVolumeSetOwnerRequest extends OMVolumeRequest {
long maxUserVolumeCount = ozoneManager.getMaxUserVolumeCount();
String dbVolumeKey = omMetadataManager.getVolumeKey(volume);
-
OzoneManagerProtocolProtos.UserVolumeInfo oldOwnerVolumeList = null;
OzoneManagerProtocolProtos.UserVolumeInfo newOwnerVolumeList = null;
OmVolumeArgs omVolumeArgs = null;
@@ -120,7 +119,6 @@ public class OMVolumeSetOwnerRequest extends OMVolumeRequest {
acquiredVolumeLock = omMetadataManager.getLock().acquireWriteLock(
VOLUME_LOCK, volume);
omVolumeArgs = omMetadataManager.getVolumeTable().get(dbVolumeKey);
-
if (omVolumeArgs == null) {
LOG.debug("Changing volume ownership failed for user:{} volume:{}",
newOwner, volume);
@@ -147,18 +145,19 @@ public class OMVolumeSetOwnerRequest extends OMVolumeRequest {
.setMessage(
"Volume '" + volume + "' owner is already '" + newOwner + "'.")
.setSuccess(false);
- return new OMVolumeSetOwnerResponse(omResponse.build());
+ omResponse.setSetVolumePropertyResponse(
+ SetVolumePropertyResponse.newBuilder().build());
+ omClientResponse = new OMVolumeSetOwnerResponse(omResponse.build());
+ // Note: addResponseToDoubleBuffer would be executed in finally block.
+ return omClientResponse;
}
acquiredUserLocks =
omMetadataManager.getLock().acquireMultiUserLock(newOwner, oldOwner);
-
oldOwnerVolumeList =
omMetadataManager.getUserTable().get(oldOwner);
-
oldOwnerVolumeList = delVolumeFromOwnerList(
oldOwnerVolumeList, volume, oldOwner, transactionLogIndex);
-
newOwnerVolumeList = omMetadataManager.getUserTable().get(newOwner);
newOwnerVolumeList = addVolumeToOwnerList(
newOwnerVolumeList, volume, newOwner,
---------------------------------------------------------------------
To unsubscribe, e-mail: ozone-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: ozone-commits-help@hadoop.apache.org