This is an automated email from the ASF dual-hosted git repository.
adoroszlai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new 8582214315 HDDS-10515. Reduce OzoneAcl constructor count (#6396)
8582214315 is described below
commit 8582214315577b4717ee2ffbcc67fbff637e42a5
Author: Galsza <[email protected]>
AuthorDate: Wed Mar 20 08:24:39 2024 +0100
HDDS-10515. Reduce OzoneAcl constructor count (#6396)
---
.../apache/hadoop/ozone/client/rpc/RpcClient.java | 10 +---
.../java/org/apache/hadoop/ozone/OzoneAcl.java | 22 +++-----
.../hadoop/ozone/om/helpers/OzoneAclUtil.java | 4 +-
.../hadoop/ozone/om/helpers/TestOmBucketInfo.java | 17 +++---
.../hadoop/ozone/om/helpers/TestOmKeyInfo.java | 2 +-
.../hadoop/ozone/om/helpers/TestOmVolumeArgs.java | 8 +--
.../hadoop/ozone/om/helpers/TestOzoneAclUtil.java | 14 ++---
.../ozone/AbstractRootedOzoneFileSystemTest.java | 16 +++---
.../client/rpc/TestOzoneRpcClientAbstract.java | 66 +++++++++-------------
.../rpc/TestOzoneRpcClientForAclAuditLog.java | 4 +-
.../apache/hadoop/ozone/om/TestBucketOwner.java | 6 +-
.../apache/hadoop/ozone/om/TestKeyManagerImpl.java | 29 +++-------
.../org/apache/hadoop/ozone/om/TestOmMetrics.java | 4 +-
.../ozone/om/TestOzoneManagerHAWithAllRunning.java | 62 ++++++++++----------
.../hadoop/ozone/om/snapshot/TestOmSnapshot.java | 2 +-
.../hadoop/ozone/om/helpers/OzoneAclStorage.java | 13 ++++-
.../hadoop/ozone/om/helpers/TestOmPrefixInfo.java | 4 +-
.../ozone/om/helpers/TestOmPrefixInfoCodec.java | 2 +-
.../org/apache/hadoop/ozone/om/OzoneManager.java | 4 +-
.../key/acl/prefix/TestOMPrefixAclResponse.java | 4 +-
.../security/acl/TestOzoneNativeAuthorizer.java | 18 +++---
.../hadoop/ozone/security/acl/TestParentAcl.java | 6 +-
.../hadoop/ozone/recon/api/TestEndpoints.java | 12 ++--
.../hadoop/ozone/recon/common/CommonUtils.java | 2 +-
.../hadoop/ozone/s3/endpoint/BucketEndpoint.java | 19 +++----
.../org/apache/hadoop/ozone/s3/endpoint/S3Acl.java | 66 +++++++++++-----------
.../freon/containergenerator/GeneratorOm.java | 4 +-
27 files changed, 192 insertions(+), 228 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 178a9919c1..7cd9ed440b 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
@@ -156,7 +156,6 @@ import java.security.InvalidKeyException;
import java.security.PrivilegedExceptionAction;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.BitSet;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap;
@@ -432,12 +431,12 @@ public class RpcClient implements ClientProtocol {
List<OzoneAcl> listOfAcls = new ArrayList<>();
//User ACL
listOfAcls.add(new OzoneAcl(ACLIdentityType.USER,
- owner, userRights, ACCESS));
+ owner, ACCESS, userRights));
//Group ACLs of the User
List<String> userGroups = Arrays.asList(UserGroupInformation
.createRemoteUser(owner).getGroupNames());
userGroups.stream().forEach((group) -> listOfAcls.add(
- new OzoneAcl(ACLIdentityType.GROUP, group, groupRights, ACCESS)));
+ new OzoneAcl(ACLIdentityType.GROUP, group, ACCESS, groupRights)));
//ACLs from VolumeArgs
List<OzoneAcl> volumeAcls = volArgs.getAcls();
if (volumeAcls != null) {
@@ -757,10 +756,7 @@ public class RpcClient implements ClientProtocol {
* @return OzoneAcl
*/
private OzoneAcl linkBucketDefaultAcl() {
- BitSet aclRights = new BitSet();
- aclRights.set(READ.ordinal());
- aclRights.set(WRITE.ordinal());
- return new OzoneAcl(ACLIdentityType.WORLD, "", aclRights, ACCESS);
+ return new OzoneAcl(ACLIdentityType.WORLD, "", ACCESS, READ, WRITE);
}
/**
diff --git
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/OzoneAcl.java
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/OzoneAcl.java
index edfb194d57..8ab39a9ff9 100644
--- a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/OzoneAcl.java
+++ b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/OzoneAcl.java
@@ -30,6 +30,7 @@ import
org.apache.hadoop.ozone.security.acl.IAccessAuthorizer.ACLType;
import java.util.ArrayList;
import java.util.BitSet;
+import java.util.EnumSet;
import java.util.List;
import java.util.Objects;
import java.util.function.Consumer;
@@ -58,17 +59,12 @@ public class OzoneAcl {
private final AclScope aclScope;
private static final List<ACLType> EMPTY_LIST = new ArrayList<>(0);
- // TODO use varargs constructor
- public OzoneAcl(ACLIdentityType type, String name, ACLType acl, AclScope
scope) {
- this(type, name, scope, bitSetOf(acl));
- }
-
public OzoneAcl(ACLIdentityType type, String name, AclScope scope,
ACLType... acls) {
this(type, name, scope, bitSetOf(acls));
}
- public OzoneAcl(ACLIdentityType type, String name, BitSet acls, AclScope
scope) {
- this(type, name, scope, validateAndCopy(acls));
+ public OzoneAcl(ACLIdentityType type, String name, AclScope scope,
EnumSet<ACLType> acls) {
+ this(type, name, scope, bitSetOf(acls.toArray(new ACLType[0])));
}
private OzoneAcl(ACLIdentityType type, String name, AclScope scope, BitSet
acls) {
@@ -148,7 +144,6 @@ public class OzoneAcl {
}
ACLIdentityType aclType = ACLIdentityType.valueOf(parts[0].toUpperCase());
- BitSet acls = new BitSet(ACLType.getNoOfAcls());
String bits = parts[2];
@@ -163,14 +158,14 @@ public class OzoneAcl {
parts[2].indexOf("]")));
}
- // Set all acl bits.
+ EnumSet<ACLType> acls = EnumSet.noneOf(ACLType.class);
for (char ch : bits.toCharArray()) {
- acls.set(ACLType.getACLRight(String.valueOf(ch)).ordinal());
+ acls.add(ACLType.getACLRight(String.valueOf(ch)));
}
// TODO : Support sanitation of these user names by calling into
// userAuth Interface.
- return new OzoneAcl(aclType, parts[1], acls, aclScope);
+ return new OzoneAcl(aclType, parts[1], aclScope, acls);
}
/**
@@ -208,9 +203,8 @@ public class OzoneAcl {
public static OzoneAcl fromProtobuf(OzoneAclInfo protoAcl) {
BitSet aclRights = BitSet.valueOf(protoAcl.getRights().toByteArray());
- return new OzoneAcl(ACLIdentityType.valueOf(protoAcl.getType().name()),
- protoAcl.getName(), aclRights,
- AclScope.valueOf(protoAcl.getAclScope().name()));
+ return new OzoneAcl(ACLIdentityType.valueOf(protoAcl.getType().name()),
protoAcl.getName(),
+ AclScope.valueOf(protoAcl.getAclScope().name()),
validateAndCopy(aclRights));
}
public AclScope getAclScope() {
diff --git
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OzoneAclUtil.java
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OzoneAclUtil.java
index a2e738f143..517f0c14ce 100644
---
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OzoneAclUtil.java
+++
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OzoneAclUtil.java
@@ -60,11 +60,11 @@ public final class OzoneAclUtil {
List<OzoneAcl> listOfAcls = new ArrayList<>();
// User ACL.
- listOfAcls.add(new OzoneAcl(USER, userName, userRights, ACCESS));
+ listOfAcls.add(new OzoneAcl(USER, userName, ACCESS, userRights));
if (userGroups != null) {
// Group ACLs of the User.
Arrays.asList(userGroups).forEach((group) -> listOfAcls.add(
- new OzoneAcl(GROUP, group, groupRights, ACCESS)));
+ new OzoneAcl(GROUP, group, ACCESS, groupRights)));
}
return listOfAcls;
}
diff --git
a/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmBucketInfo.java
b/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmBucketInfo.java
index c38c09360f..638dd3414e 100644
---
a/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmBucketInfo.java
+++
b/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmBucketInfo.java
@@ -81,8 +81,7 @@ public class TestOmBucketInfo {
.setAcls(Collections.singletonList(new OzoneAcl(
IAccessAuthorizer.ACLIdentityType.USER,
"defaultUser",
- IAccessAuthorizer.ACLType.WRITE_ACL,
- OzoneAcl.AclScope.ACCESS
+ OzoneAcl.AclScope.ACCESS, IAccessAuthorizer.ACLType.WRITE_ACL
)))
.build();
@@ -97,8 +96,7 @@ public class TestOmBucketInfo {
omBucketInfo.setAcls(Collections.singletonList(new OzoneAcl(
IAccessAuthorizer.ACLIdentityType.USER,
"newUser",
- IAccessAuthorizer.ACLType.WRITE_ACL,
- OzoneAcl.AclScope.ACCESS
+ OzoneAcl.AclScope.ACCESS, IAccessAuthorizer.ACLType.WRITE_ACL
)));
assertNotEquals(
omBucketInfo.getAcls().get(0),
@@ -115,8 +113,7 @@ public class TestOmBucketInfo {
omBucketInfo.removeAcl(new OzoneAcl(
IAccessAuthorizer.ACLIdentityType.USER,
"newUser",
- IAccessAuthorizer.ACLType.WRITE_ACL,
- OzoneAcl.AclScope.ACCESS
+ OzoneAcl.AclScope.ACCESS, IAccessAuthorizer.ACLType.WRITE_ACL
));
assertEquals(0, omBucketInfo.getAcls().size());
assertEquals(1, cloneBucketInfo.getAcls().size());
@@ -131,8 +128,8 @@ public class TestOmBucketInfo {
.setStorageType(StorageType.ARCHIVE).setAcls(Collections
.singletonList(new OzoneAcl(
IAccessAuthorizer.ACLIdentityType.USER,
- "defaultUser", IAccessAuthorizer.ACLType.WRITE_ACL,
- OzoneAcl.AclScope.ACCESS))).build();
+ "defaultUser", OzoneAcl.AclScope.ACCESS,
IAccessAuthorizer.ACLType.WRITE_ACL
+ ))).build();
OzoneManagerProtocolProtos.BucketInfo protobuf =
omBucketInfo.getProtobuf();
// No EC Config
assertFalse(protobuf.hasDefaultReplicationConfig());
@@ -150,8 +147,8 @@ public class TestOmBucketInfo {
.setStorageType(StorageType.ARCHIVE)
.setAcls(Collections.singletonList(new OzoneAcl(
IAccessAuthorizer.ACLIdentityType.USER,
- "defaultUser", IAccessAuthorizer.ACLType.WRITE_ACL,
- OzoneAcl.AclScope.ACCESS)))
+ "defaultUser", OzoneAcl.AclScope.ACCESS,
IAccessAuthorizer.ACLType.WRITE_ACL
+ )))
.setDefaultReplicationConfig(
new DefaultReplicationConfig(
new ECReplicationConfig(3, 2))).build();
diff --git
a/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmKeyInfo.java
b/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmKeyInfo.java
index 6396f0318d..4aead0cd8b 100644
---
a/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmKeyInfo.java
+++
b/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmKeyInfo.java
@@ -182,7 +182,7 @@ public class TestOmKeyInfo {
key.setAcls(Arrays.asList(new OzoneAcl(
IAccessAuthorizer.ACLIdentityType.USER, "user1",
- IAccessAuthorizer.ACLType.WRITE, ACCESS)));
+ ACCESS, IAccessAuthorizer.ACLType.WRITE)));
// Change acls and check.
assertNotEquals(key, cloneKey);
diff --git
a/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmVolumeArgs.java
b/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmVolumeArgs.java
index f5c854d9e7..41757d957a 100644
---
a/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmVolumeArgs.java
+++
b/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmVolumeArgs.java
@@ -46,7 +46,7 @@ public class TestOmVolumeArgs {
.addMetadata("key1", "value1").addMetadata("key2", "value2")
.addOzoneAcls(
new OzoneAcl(IAccessAuthorizer.ACLIdentityType.USER, "user1",
- IAccessAuthorizer.ACLType.READ, ACCESS)).build();
+ ACCESS, IAccessAuthorizer.ACLType.READ)).build();
OmVolumeArgs cloneVolumeArgs = omVolumeArgs.copyObject();
@@ -55,7 +55,7 @@ public class TestOmVolumeArgs {
// add user acl to write.
omVolumeArgs.addAcl(new OzoneAcl(
IAccessAuthorizer.ACLIdentityType.USER, "user1",
- IAccessAuthorizer.ACLType.WRITE, ACCESS));
+ ACCESS, IAccessAuthorizer.ACLType.WRITE));
// Now check clone acl
assertNotEquals(cloneVolumeArgs.getAcls().get(0),
@@ -64,7 +64,7 @@ public class TestOmVolumeArgs {
// Set user acl to Write_ACL.
omVolumeArgs.setAcls(Collections.singletonList(new OzoneAcl(
IAccessAuthorizer.ACLIdentityType.USER, "user1",
- IAccessAuthorizer.ACLType.WRITE_ACL, ACCESS)));
+ ACCESS, IAccessAuthorizer.ACLType.WRITE_ACL)));
assertNotEquals(cloneVolumeArgs.getAcls().get(0),
omVolumeArgs.getAcls().get(0));
@@ -78,7 +78,7 @@ public class TestOmVolumeArgs {
omVolumeArgs.removeAcl(new OzoneAcl(
IAccessAuthorizer.ACLIdentityType.USER, "user1",
- IAccessAuthorizer.ACLType.WRITE_ACL, ACCESS));
+ ACCESS, IAccessAuthorizer.ACLType.WRITE_ACL));
// Removing acl, in original omVolumeArgs it should have no acls.
assertEquals(0, omVolumeArgs.getAcls().size());
diff --git
a/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOzoneAclUtil.java
b/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOzoneAclUtil.java
index cebbab7c75..5781a68b58 100644
---
a/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOzoneAclUtil.java
+++
b/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOzoneAclUtil.java
@@ -49,13 +49,13 @@ public class TestOzoneAclUtil {
getDefaultAcls();
private static final OzoneAcl USER1 = new OzoneAcl(USER, "user1",
- ACLType.READ_ACL, ACCESS);
+ ACCESS, ACLType.READ_ACL);
private static final OzoneAcl USER2 = new OzoneAcl(USER, "user2",
- ACLType.WRITE, ACCESS);
+ ACCESS, ACLType.WRITE);
private static final OzoneAcl GROUP1 = new OzoneAcl(GROUP, "group1",
- ACLType.ALL, ACCESS);
+ ACCESS, ACLType.ALL);
@Test
public void testAddAcl() throws IOException {
@@ -65,7 +65,7 @@ public class TestOzoneAclUtil {
// Add new permission to existing acl entry.
OzoneAcl oldAcl = currentAcls.get(0);
OzoneAcl newAcl = new OzoneAcl(oldAcl.getType(), oldAcl.getName(),
- ACLType.READ_ACL, ACCESS);
+ ACCESS, ACLType.READ_ACL);
addAndVerifyAcl(currentAcls, newAcl, true, DEFAULT_ACLS.size());
// Add same permission again and verify result
@@ -97,7 +97,7 @@ public class TestOzoneAclUtil {
// Add new permission to existing acl entru.
OzoneAcl oldAcl = currentAcls.get(0);
OzoneAcl newAcl = new OzoneAcl(oldAcl.getType(), oldAcl.getName(),
- ACLType.READ_ACL, ACCESS);
+ ACCESS, ACLType.READ_ACL);
// Remove non existing acl entry
removeAndVerifyAcl(currentAcls, USER1, false, DEFAULT_ACLS.size());
@@ -191,11 +191,11 @@ public class TestOzoneAclUtil {
IAccessAuthorizer.ACLType groupRights = aclConfig.getGroupDefaultRights();
OzoneAclUtil.addAcl(ozoneAcls, new OzoneAcl(USER,
- ugi.getUserName(), userRights, ACCESS));
+ ugi.getUserName(), ACCESS, userRights));
//Group ACLs of the User
List<String> userGroups = Arrays.asList(ugi.getGroupNames());
userGroups.stream().forEach((group) -> OzoneAclUtil.addAcl(ozoneAcls,
- new OzoneAcl(GROUP, group, groupRights, ACCESS)));
+ new OzoneAcl(GROUP, group, ACCESS, groupRights)));
return ozoneAcls;
}
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/AbstractRootedOzoneFileSystemTest.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/AbstractRootedOzoneFileSystemTest.java
index b77be05f67..366e8a1905 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/AbstractRootedOzoneFileSystemTest.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/AbstractRootedOzoneFileSystemTest.java
@@ -94,9 +94,9 @@ import java.nio.file.Paths;
import java.security.PrivilegedExceptionAction;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.BitSet;
import java.util.Collection;
import java.util.Collections;
+import java.util.EnumSet;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
@@ -1187,17 +1187,15 @@ abstract class AbstractRootedOzoneFileSystemTest {
ACLType userRights = aclConfig.getUserDefaultRights();
// Construct ACL for world access
// ACL admin owner, world read+write
- BitSet aclRights = new BitSet();
- aclRights.set(READ.ordinal());
- aclRights.set(WRITE.ordinal());
+ EnumSet<ACLType> aclRights = EnumSet.of(READ, WRITE);
// volume acls have all access to admin and read+write access to world
// Construct VolumeArgs
VolumeArgs volumeArgs = VolumeArgs.newBuilder()
.setAdmin("admin")
.setOwner("admin")
- .addAcl(new OzoneAcl(ACLIdentityType.WORLD, "", aclRights, ACCESS))
- .addAcl(new OzoneAcl(ACLIdentityType.USER, "admin", userRights,
ACCESS))
+ .addAcl(new OzoneAcl(ACLIdentityType.WORLD, "", ACCESS, aclRights))
+ .addAcl(new OzoneAcl(ACLIdentityType.USER, "admin", ACCESS,
userRights))
.setQuotaInNamespace(1000)
.setQuotaInBytes(Long.MAX_VALUE).build();
// Sanity check
@@ -1232,7 +1230,7 @@ abstract class AbstractRootedOzoneFileSystemTest {
BucketArgs bucketArgs = new BucketArgs.Builder()
.setOwner("admin")
.addAcl(new OzoneAcl(ACLIdentityType.WORLD, "", ACCESS, READ, WRITE,
LIST))
- .addAcl(new OzoneAcl(ACLIdentityType.USER, "admin", userRights,
ACCESS))
+ .addAcl(new OzoneAcl(ACLIdentityType.USER, "admin", ACCESS,
userRights))
.setQuotaInNamespace(1000)
.setQuotaInBytes(Long.MAX_VALUE).build();
@@ -1292,7 +1290,7 @@ abstract class AbstractRootedOzoneFileSystemTest {
ACLType userRights = aclConfig.getUserDefaultRights();
// Construct ACL for world access
OzoneAcl aclWorldAccess = new OzoneAcl(ACLIdentityType.WORLD, "",
- userRights, ACCESS);
+ ACCESS, userRights);
// Construct VolumeArgs
VolumeArgs volumeArgs = VolumeArgs.newBuilder()
.addAcl(aclWorldAccess)
@@ -2293,7 +2291,7 @@ abstract class AbstractRootedOzoneFileSystemTest {
ACLType userRights = aclConfig.getUserDefaultRights();
// Construct ACL for world access
OzoneAcl aclWorldAccess = new OzoneAcl(ACLIdentityType.WORLD, "",
- userRights, ACCESS);
+ ACCESS, userRights);
// Construct VolumeArgs, set ACL to world access
VolumeArgs volumeArgs = VolumeArgs.newBuilder()
.addAcl(aclWorldAccess)
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 b838686930..a77edd3abc 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
@@ -25,7 +25,6 @@ import java.security.PrivilegedExceptionAction;
import java.time.Instant;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.BitSet;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
@@ -195,13 +194,13 @@ public abstract class TestOzoneRpcClientAbstract {
private static String remoteUserName = "remoteUser";
private static String remoteGroupName = "remoteGroup";
private static OzoneAcl defaultUserAcl = new OzoneAcl(USER, remoteUserName,
- READ, DEFAULT);
+ DEFAULT, READ);
private static OzoneAcl defaultGroupAcl = new OzoneAcl(GROUP,
remoteGroupName,
- READ, DEFAULT);
+ DEFAULT, READ);
private static OzoneAcl inheritedUserAcl = new OzoneAcl(USER, remoteUserName,
- READ, ACCESS);
+ ACCESS, READ);
private static OzoneAcl inheritedGroupAcl = new OzoneAcl(GROUP,
- remoteGroupName, READ, ACCESS);
+ remoteGroupName, ACCESS, READ);
private static MessageDigest eTagProvider;
@BeforeAll
@@ -674,7 +673,7 @@ public abstract class TestOzoneRpcClientAbstract {
String volumeName = UUID.randomUUID().toString();
String bucketName = UUID.randomUUID().toString();
OzoneAcl userAcl = new OzoneAcl(USER, "test",
- READ, ACCESS);
+ ACCESS, READ);
store.createVolume(volumeName);
OzoneVolume volume = store.getVolume(volumeName);
BucketArgs.Builder builder = BucketArgs.newBuilder()
@@ -708,7 +707,7 @@ public abstract class TestOzoneRpcClientAbstract {
String volumeName = UUID.randomUUID().toString();
String bucketName = UUID.randomUUID().toString();
OzoneAcl userAcl = new OzoneAcl(USER, "test",
- ACLType.ALL, ACCESS);
+ ACCESS, ACLType.ALL);
ReplicationConfig repConfig = new ECReplicationConfig(3, 2);
store.createVolume(volumeName);
OzoneVolume volume = store.getVolume(volumeName);
@@ -747,7 +746,7 @@ public abstract class TestOzoneRpcClientAbstract {
OzoneVolume volume = store.getVolume(volumeName);
volume.createBucket(bucketName);
List<OzoneAcl> acls = new ArrayList<>();
- acls.add(new OzoneAcl(USER, "test", ACLType.ALL, ACCESS));
+ acls.add(new OzoneAcl(USER, "test", ACCESS, ACLType.ALL));
OzoneBucket bucket = volume.getBucket(bucketName);
for (OzoneAcl acl : acls) {
assertTrue(bucket.addAcl(acl));
@@ -763,7 +762,7 @@ public abstract class TestOzoneRpcClientAbstract {
String volumeName = UUID.randomUUID().toString();
String bucketName = UUID.randomUUID().toString();
OzoneAcl userAcl = new OzoneAcl(USER, "test",
- ACLType.ALL, ACCESS);
+ ACCESS, ACLType.ALL);
store.createVolume(volumeName);
OzoneVolume volume = store.getVolume(volumeName);
BucketArgs.Builder builder = BucketArgs.newBuilder()
@@ -782,9 +781,9 @@ public abstract class TestOzoneRpcClientAbstract {
String volumeName = UUID.randomUUID().toString();
String bucketName = UUID.randomUUID().toString();
OzoneAcl userAcl = new OzoneAcl(USER, "test",
- ACLType.ALL, ACCESS);
+ ACCESS, ACLType.ALL);
OzoneAcl acl2 = new OzoneAcl(USER, "test1",
- ACLType.ALL, ACCESS);
+ ACCESS, ACLType.ALL);
store.createVolume(volumeName);
OzoneVolume volume = store.getVolume(volumeName);
BucketArgs.Builder builder = BucketArgs.newBuilder()
@@ -2703,10 +2702,10 @@ public abstract class TestOzoneRpcClientAbstract {
OzoneBucket bucket = volume.getBucket(bucketName);
// Add ACL on Bucket
- OzoneAcl acl1 = new OzoneAcl(USER, "Monday", ACLType.ALL, DEFAULT);
- OzoneAcl acl2 = new OzoneAcl(USER, "Friday", ACLType.ALL, DEFAULT);
- OzoneAcl acl3 = new OzoneAcl(USER, "Jan", ACLType.ALL, ACCESS);
- OzoneAcl acl4 = new OzoneAcl(USER, "Feb", ACLType.ALL, ACCESS);
+ OzoneAcl acl1 = new OzoneAcl(USER, "Monday", DEFAULT, ACLType.ALL);
+ OzoneAcl acl2 = new OzoneAcl(USER, "Friday", DEFAULT, ACLType.ALL);
+ OzoneAcl acl3 = new OzoneAcl(USER, "Jan", ACCESS, ACLType.ALL);
+ OzoneAcl acl4 = new OzoneAcl(USER, "Feb", ACCESS, ACLType.ALL);
bucket.addAcl(acl1);
bucket.addAcl(acl2);
bucket.addAcl(acl3);
@@ -2740,8 +2739,8 @@ public abstract class TestOzoneRpcClientAbstract {
try (OzoneClient client =
remoteUser.doAs((PrivilegedExceptionAction<OzoneClient>)
() -> OzoneClientFactory.getRpcClient(cluster.getConf()))) {
- OzoneAcl acl5 = new OzoneAcl(USER, userName, ACLType.READ, DEFAULT);
- OzoneAcl acl6 = new OzoneAcl(USER, userName, ACLType.READ, ACCESS);
+ OzoneAcl acl5 = new OzoneAcl(USER, userName, DEFAULT, ACLType.READ);
+ OzoneAcl acl6 = new OzoneAcl(USER, userName, ACCESS, ACLType.READ);
OzoneObj volumeObj = OzoneObjInfo.Builder.newBuilder()
.setVolumeName(volumeName).setStoreType(OzoneObj.StoreType.OZONE)
.setResType(OzoneObj.ResourceType.VOLUME).build();
@@ -2764,10 +2763,10 @@ public abstract class TestOzoneRpcClientAbstract {
assertEquals(ResultCodes.PERMISSION_DENIED, ome.getResult());
// Add create permission for user, and try multi-upload init again
- OzoneAcl acl7 = new OzoneAcl(USER, userName, ACLType.CREATE, DEFAULT);
- OzoneAcl acl8 = new OzoneAcl(USER, userName, ACLType.CREATE, ACCESS);
- OzoneAcl acl9 = new OzoneAcl(USER, userName, WRITE, DEFAULT);
- OzoneAcl acl10 = new OzoneAcl(USER, userName, WRITE, ACCESS);
+ OzoneAcl acl7 = new OzoneAcl(USER, userName, DEFAULT, ACLType.CREATE);
+ OzoneAcl acl8 = new OzoneAcl(USER, userName, ACCESS, ACLType.CREATE);
+ OzoneAcl acl9 = new OzoneAcl(USER, userName, DEFAULT, WRITE);
+ OzoneAcl acl10 = new OzoneAcl(USER, userName, ACCESS, WRITE);
store.addAcl(volumeObj, acl7);
store.addAcl(volumeObj, acl8);
store.addAcl(volumeObj, acl9);
@@ -3444,11 +3443,7 @@ public abstract class TestOzoneRpcClientAbstract {
.setStoreType(OzoneObj.StoreType.OZONE)
.build();
- // add acl
- BitSet aclRights1 = new BitSet();
- aclRights1.set(READ.ordinal());
- OzoneAcl user1Acl = new OzoneAcl(USER,
- "user1", aclRights1, ACCESS);
+ OzoneAcl user1Acl = new OzoneAcl(USER, "user1", ACCESS, READ);
assertTrue(store.addAcl(prefixObj, user1Acl));
// get acl
@@ -3461,11 +3456,7 @@ public abstract class TestOzoneRpcClientAbstract {
aclsGet = store.getAcl(prefixObj);
assertEquals(0, aclsGet.size());
- // set acl
- BitSet aclRights2 = new BitSet();
- aclRights2.set(ACLType.ALL.ordinal());
- OzoneAcl group1Acl = new OzoneAcl(GROUP,
- "group1", aclRights2, ACCESS);
+ OzoneAcl group1Acl = new OzoneAcl(GROUP, "group1", ACCESS, ACLType.ALL);
List<OzoneAcl> acls = new ArrayList<>();
acls.add(user1Acl);
acls.add(group1Acl);
@@ -3505,12 +3496,11 @@ public abstract class TestOzoneRpcClientAbstract {
ACLType userRights = aclConfig.getUserDefaultRights();
ACLType groupRights = aclConfig.getGroupDefaultRights();
- listOfAcls.add(new OzoneAcl(USER,
- ugi.getUserName(), userRights, ACCESS));
+ listOfAcls.add(new OzoneAcl(USER, ugi.getUserName(), ACCESS, userRights));
//Group ACLs of the User
List<String> userGroups = Arrays.asList(ugi.getGroupNames());
userGroups.stream().forEach((group) -> listOfAcls.add(
- new OzoneAcl(GROUP, group, groupRights, ACCESS)));
+ new OzoneAcl(GROUP, group, ACCESS, groupRights)));
return listOfAcls;
}
@@ -3526,7 +3516,7 @@ public abstract class TestOzoneRpcClientAbstract {
if (expectedAcls.size() > 0) {
OzoneAcl oldAcl = expectedAcls.get(0);
OzoneAcl newAcl = new OzoneAcl(oldAcl.getType(), oldAcl.getName(),
- ACLType.READ_ACL, oldAcl.getAclScope());
+ oldAcl.getAclScope(), ACLType.READ_ACL);
// Verify that operation successful.
assertTrue(store.addAcl(ozObj, newAcl));
@@ -3577,9 +3567,9 @@ public abstract class TestOzoneRpcClientAbstract {
// Reset acl's.
OzoneAcl ua = new OzoneAcl(USER, "userx",
- ACLType.READ_ACL, ACCESS);
+ ACCESS, ACLType.READ_ACL);
OzoneAcl ug = new OzoneAcl(GROUP, "userx",
- ACLType.ALL, ACCESS);
+ ACCESS, ACLType.ALL);
store.setAcl(ozObj, Arrays.asList(ua, ug));
newAcls = store.getAcl(ozObj);
assertEquals(2, newAcls.size());
@@ -3907,7 +3897,7 @@ public abstract class TestOzoneRpcClientAbstract {
.setStoreType(OzoneObj.StoreType.OZONE)
.build();
- OzoneAcl ozoneAcl = new OzoneAcl(USER, remoteUserName, WRITE, DEFAULT);
+ OzoneAcl ozoneAcl = new OzoneAcl(USER, remoteUserName, DEFAULT, WRITE);
boolean result = store.addAcl(s3vVolume, ozoneAcl);
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestOzoneRpcClientForAclAuditLog.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestOzoneRpcClientForAclAuditLog.java
index e373b06d95..8f3c826204 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestOzoneRpcClientForAclAuditLog.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestOzoneRpcClientForAclAuditLog.java
@@ -83,10 +83,10 @@ public class TestOzoneRpcClientForAclAuditLog {
private static UserGroupInformation ugi;
private static final OzoneAcl USER_ACL =
new OzoneAcl(IAccessAuthorizer.ACLIdentityType.USER,
- "johndoe", IAccessAuthorizer.ACLType.ALL, ACCESS);
+ "johndoe", ACCESS, IAccessAuthorizer.ACLType.ALL);
private static final OzoneAcl USER_ACL_2 =
new OzoneAcl(IAccessAuthorizer.ACLIdentityType.USER,
- "jane", IAccessAuthorizer.ACLType.ALL, ACCESS);
+ "jane", ACCESS, IAccessAuthorizer.ACLType.ALL);
private static List<OzoneAcl> aclListToAdd = new ArrayList<>();
private static MiniOzoneCluster cluster = null;
private static OzoneClient ozClient = null;
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java
index 37fec8dcda..97512fec40 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java
@@ -123,7 +123,7 @@ public class TestBucketOwner {
ozoneBucket.getAcls();
//Add Acls
OzoneAcl acl = new OzoneAcl(USER, "testuser",
- IAccessAuthorizer.ACLType.ALL, DEFAULT);
+ DEFAULT, IAccessAuthorizer.ACLType.ALL);
ozoneBucket.addAcl(acl);
}
}
@@ -179,7 +179,7 @@ public class TestBucketOwner {
OzoneVolume volume = client.getObjectStore().getVolume("volume1");
OzoneBucket ozoneBucket = volume.getBucket("bucket1");
OzoneAcl acl = new OzoneAcl(USER, "testuser1",
- IAccessAuthorizer.ACLType.ALL, DEFAULT);
+ DEFAULT, IAccessAuthorizer.ACLType.ALL);
ozoneBucket.addAcl(acl);
}, "Add Acls as non-volume and non-bucket owner should fail");
}
@@ -202,7 +202,7 @@ public class TestBucketOwner {
ozoneBucket.getAcls();
//Add Acls
OzoneAcl acl = new OzoneAcl(USER, "testuser2",
- IAccessAuthorizer.ACLType.ALL, DEFAULT);
+ DEFAULT, IAccessAuthorizer.ACLType.ALL);
ozoneBucket.addAcl(acl);
//Bucket Delete
volume.deleteBucket("bucket2");
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestKeyManagerImpl.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestKeyManagerImpl.java
index 9a5ded7148..f443104871 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestKeyManagerImpl.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestKeyManagerImpl.java
@@ -24,7 +24,6 @@ import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.BitSet;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
@@ -87,7 +86,6 @@ import org.apache.hadoop.ozone.om.helpers.OzoneFileStatus;
import org.apache.hadoop.ozone.om.helpers.BucketLayout;
import org.apache.hadoop.ozone.om.protocol.OzoneManagerProtocol;
import org.apache.hadoop.ozone.om.request.OMRequestTestUtils;
-import org.apache.hadoop.ozone.security.acl.IAccessAuthorizer;
import org.apache.hadoop.ozone.security.acl.IAccessAuthorizer.ACLIdentityType;
import org.apache.hadoop.ozone.security.acl.IAccessAuthorizer.ACLType;
import org.apache.hadoop.ozone.security.acl.OzoneObj;
@@ -129,6 +127,8 @@ import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
import org.junit.jupiter.params.provider.ValueSource;
+import static
org.apache.hadoop.ozone.security.acl.IAccessAuthorizer.ACLType.READ;
+import static
org.apache.hadoop.ozone.security.acl.IAccessAuthorizer.ACLType.WRITE;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
@@ -531,7 +531,7 @@ public class TestKeyManagerImpl {
.build();
OzoneAcl ozAcl1 = new OzoneAcl(ACLIdentityType.USER, "user1",
- ACLType.READ, ACCESS);
+ ACCESS, ACLType.READ);
writeClient.addAcl(ozPrefix1, ozAcl1);
List<OzoneAcl> ozAclGet = writeClient.getAcl(ozPrefix1);
@@ -539,24 +539,13 @@ public class TestKeyManagerImpl {
assertEquals(ozAcl1, ozAclGet.get(0));
List<OzoneAcl> acls = new ArrayList<>();
- OzoneAcl ozAcl2 = new OzoneAcl(ACLIdentityType.USER, "admin",
- ACLType.ALL, ACCESS);
+ OzoneAcl ozAcl2 = new OzoneAcl(ACLIdentityType.USER, "admin", ACCESS,
ACLType.ALL);
- BitSet rwRights = new BitSet();
- rwRights.set(IAccessAuthorizer.ACLType.WRITE.ordinal());
- rwRights.set(IAccessAuthorizer.ACLType.READ.ordinal());
- OzoneAcl ozAcl3 = new OzoneAcl(ACLIdentityType.GROUP, "dev",
- rwRights, ACCESS);
+ OzoneAcl ozAcl3 = new OzoneAcl(ACLIdentityType.GROUP, "dev", ACCESS, READ,
WRITE);
- BitSet wRights = new BitSet();
- wRights.set(IAccessAuthorizer.ACLType.WRITE.ordinal());
- OzoneAcl ozAcl4 = new OzoneAcl(ACLIdentityType.GROUP, "dev",
- wRights, ACCESS);
+ OzoneAcl ozAcl4 = new OzoneAcl(ACLIdentityType.GROUP, "dev", ACCESS,
WRITE);
- BitSet rRights = new BitSet();
- rRights.set(IAccessAuthorizer.ACLType.READ.ordinal());
- OzoneAcl ozAcl5 = new OzoneAcl(ACLIdentityType.GROUP, "dev",
- rRights, ACCESS);
+ OzoneAcl ozAcl5 = new OzoneAcl(ACLIdentityType.GROUP, "dev", ACCESS, READ);
acls.add(ozAcl2);
acls.add(ozAcl3);
@@ -628,7 +617,7 @@ public class TestKeyManagerImpl {
// Invalid prefix not ending with "/"
String invalidPrefix = "invalid/pf";
OzoneAcl ozAcl1 = new OzoneAcl(ACLIdentityType.USER, "user1",
- ACLType.READ, ACCESS);
+ ACCESS, ACLType.READ);
OzoneObj ozInvalidPrefix = new OzoneObjInfo.Builder()
.setVolumeName(volumeName)
@@ -692,7 +681,7 @@ public class TestKeyManagerImpl {
.build();
OzoneAcl ozAcl1 = new OzoneAcl(ACLIdentityType.USER, "user1",
- ACLType.READ, ACCESS);
+ ACCESS, ACLType.READ);
writeClient.addAcl(ozPrefix1, ozAcl1);
OzoneObj ozFile1 = new OzoneObjInfo.Builder()
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOmMetrics.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOmMetrics.java
index 95335d4e39..901670301e 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOmMetrics.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOmMetrics.java
@@ -629,7 +629,7 @@ public class TestOmMetrics {
// Test addAcl
writeClient.addAcl(volObj,
new OzoneAcl(IAccessAuthorizer.ACLIdentityType.USER, "ozoneuser",
- IAccessAuthorizer.ACLType.ALL, ACCESS));
+ ACCESS, IAccessAuthorizer.ACLType.ALL));
omMetrics = getMetrics("OMMetrics");
assertCounter("NumAddAcl", 1L, omMetrics);
@@ -695,7 +695,7 @@ public class TestOmMetrics {
long initialValue = metrics.getNumAddAcl();
objectStore.addAcl(volObj,
new OzoneAcl(IAccessAuthorizer.ACLIdentityType.USER, "ozoneuser",
- IAccessAuthorizer.ACLType.ALL, ACCESS));
+ ACCESS, IAccessAuthorizer.ACLType.ALL));
assertEquals(initialValue + 1, metrics.getNumAddAcl());
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOzoneManagerHAWithAllRunning.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOzoneManagerHAWithAllRunning.java
index 0a5fab260b..716c1003d2 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOzoneManagerHAWithAllRunning.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOzoneManagerHAWithAllRunning.java
@@ -561,7 +561,7 @@ class TestOzoneManagerHAWithAllRunning extends
TestOzoneManagerHA {
OzoneBucket ozoneBucket = setupBucket();
String remoteUserName = "remoteUser";
OzoneAcl defaultUserAcl = new OzoneAcl(USER, remoteUserName,
- READ, DEFAULT);
+ DEFAULT, READ);
OzoneObj ozoneObj = buildBucketObj(ozoneBucket);
@@ -573,7 +573,7 @@ class TestOzoneManagerHAWithAllRunning extends
TestOzoneManagerHA {
OzoneBucket ozoneBucket = setupBucket();
String remoteUserName = "remoteUser";
OzoneAcl defaultUserAcl = new OzoneAcl(USER, remoteUserName,
- READ, DEFAULT);
+ DEFAULT, READ);
OzoneObj ozoneObj = buildBucketObj(ozoneBucket);
@@ -586,7 +586,7 @@ class TestOzoneManagerHAWithAllRunning extends
TestOzoneManagerHA {
OzoneBucket ozoneBucket = setupBucket();
String remoteUserName = "remoteUser";
OzoneAcl defaultUserAcl = new OzoneAcl(USER, remoteUserName,
- READ, DEFAULT);
+ DEFAULT, READ);
OzoneObj ozoneObj = buildBucketObj(ozoneBucket);
@@ -618,7 +618,7 @@ class TestOzoneManagerHAWithAllRunning extends
TestOzoneManagerHA {
OzoneBucket ozoneBucket = setupBucket();
String remoteUserName = "remoteUser";
OzoneAcl userAcl = new OzoneAcl(USER, remoteUserName,
- READ, DEFAULT);
+ DEFAULT, READ);
String key = createKey(ozoneBucket);
@@ -632,7 +632,7 @@ class TestOzoneManagerHAWithAllRunning extends
TestOzoneManagerHA {
OzoneBucket ozoneBucket = setupBucket();
String remoteUserName = "remoteUser";
OzoneAcl userAcl = new OzoneAcl(USER, remoteUserName,
- READ, DEFAULT);
+ DEFAULT, READ);
String key = createKey(ozoneBucket);
@@ -647,7 +647,7 @@ class TestOzoneManagerHAWithAllRunning extends
TestOzoneManagerHA {
OzoneBucket ozoneBucket = setupBucket();
String remoteUserName = "remoteUser";
OzoneAcl userAcl = new OzoneAcl(USER, remoteUserName,
- READ, DEFAULT);
+ DEFAULT, READ);
String key = createKey(ozoneBucket);
@@ -663,7 +663,7 @@ class TestOzoneManagerHAWithAllRunning extends
TestOzoneManagerHA {
String remoteUserName = "remoteUser";
String prefixName = RandomStringUtils.randomAlphabetic(5) + "/";
OzoneAcl defaultUserAcl = new OzoneAcl(USER, remoteUserName,
- READ, DEFAULT);
+ DEFAULT, READ);
OzoneObj ozoneObj = buildPrefixObj(ozoneBucket, prefixName);
@@ -676,9 +676,9 @@ class TestOzoneManagerHAWithAllRunning extends
TestOzoneManagerHA {
String remoteUserName = "remoteUser";
String prefixName = RandomStringUtils.randomAlphabetic(5) + "/";
OzoneAcl userAcl = new OzoneAcl(USER, remoteUserName,
- READ, ACCESS);
+ ACCESS, READ);
OzoneAcl userAcl1 = new OzoneAcl(USER, "remote",
- READ, ACCESS);
+ ACCESS, READ);
OzoneObj ozoneObj = buildPrefixObj(ozoneBucket, prefixName);
@@ -708,7 +708,7 @@ class TestOzoneManagerHAWithAllRunning extends
TestOzoneManagerHA {
String remoteUserName = "remoteUser";
String prefixName = RandomStringUtils.randomAlphabetic(5) + "/";
OzoneAcl defaultUserAcl = new OzoneAcl(USER, remoteUserName,
- READ, DEFAULT);
+ DEFAULT, READ);
OzoneObj ozoneObj = buildPrefixObj(ozoneBucket, prefixName);
@@ -724,13 +724,13 @@ class TestOzoneManagerHAWithAllRunning extends
TestOzoneManagerHA {
OzoneObj srcObj = buildBucketObj(srcBucket);
// Add ACL to the LINK and verify that it is added to the source bucket
- OzoneAcl acl1 = new OzoneAcl(USER, "remoteUser1", READ, DEFAULT);
+ OzoneAcl acl1 = new OzoneAcl(USER, "remoteUser1", DEFAULT, READ);
boolean addAcl = getObjectStore().addAcl(linkObj, acl1);
assertTrue(addAcl);
assertEqualsAcls(srcObj, linkObj);
// Add ACL to the SOURCE and verify that it from link
- OzoneAcl acl2 = new OzoneAcl(USER, "remoteUser2", WRITE, DEFAULT);
+ OzoneAcl acl2 = new OzoneAcl(USER, "remoteUser2", DEFAULT, WRITE);
boolean addAcl2 = getObjectStore().addAcl(srcObj, acl2);
assertTrue(addAcl2);
assertEqualsAcls(srcObj, linkObj);
@@ -777,14 +777,14 @@ class TestOzoneManagerHAWithAllRunning extends
TestOzoneManagerHA {
// Set ACL to the LINK and verify that it is set to the source bucket
List<OzoneAcl> acl1 = Collections.singletonList(
- new OzoneAcl(USER, "remoteUser1", READ, DEFAULT));
+ new OzoneAcl(USER, "remoteUser1", DEFAULT, READ));
boolean setAcl1 = getObjectStore().setAcl(linkObj, acl1);
assertTrue(setAcl1);
assertEqualsAcls(srcObj, linkObj);
// Set ACL to the SOURCE and verify that it from link
List<OzoneAcl> acl2 = Collections.singletonList(
- new OzoneAcl(USER, "remoteUser2", WRITE, DEFAULT));
+ new OzoneAcl(USER, "remoteUser2", DEFAULT, WRITE));
boolean setAcl2 = getObjectStore().setAcl(srcObj, acl2);
assertTrue(setAcl2);
assertEqualsAcls(srcObj, linkObj);
@@ -800,12 +800,12 @@ class TestOzoneManagerHAWithAllRunning extends
TestOzoneManagerHA {
OzoneObj srcObj = buildKeyObj(srcBucket, key);
String user1 = "remoteUser1";
- OzoneAcl acl1 = new OzoneAcl(USER, user1, READ, DEFAULT);
+ OzoneAcl acl1 = new OzoneAcl(USER, user1, DEFAULT, READ);
testAddAcl(user1, linkObj, acl1); // case1: set link acl
assertEqualsAcls(srcObj, linkObj);
String user2 = "remoteUser2";
- OzoneAcl acl2 = new OzoneAcl(USER, user2, READ, DEFAULT);
+ OzoneAcl acl2 = new OzoneAcl(USER, user2, DEFAULT, READ);
testAddAcl(user2, srcObj, acl2); // case2: set src acl
assertEqualsAcls(srcObj, linkObj);
@@ -821,7 +821,7 @@ class TestOzoneManagerHAWithAllRunning extends
TestOzoneManagerHA {
OzoneObj linkObj = buildKeyObj(linkedBucket, key);
OzoneObj srcObj = buildKeyObj(srcBucket, key);
String user = "remoteUser1";
- OzoneAcl acl = new OzoneAcl(USER, user, READ, DEFAULT);
+ OzoneAcl acl = new OzoneAcl(USER, user, DEFAULT, READ);
testRemoveAcl(user, linkObj, acl);
assertEqualsAcls(srcObj, linkObj);
@@ -832,7 +832,7 @@ class TestOzoneManagerHAWithAllRunning extends
TestOzoneManagerHA {
OzoneObj linkObj2 = buildKeyObj(linkedBucket2, key2);
OzoneObj srcObj2 = buildKeyObj(srcBucket2, key2);
String user2 = "remoteUser2";
- OzoneAcl acl2 = new OzoneAcl(USER, user2, READ, DEFAULT);
+ OzoneAcl acl2 = new OzoneAcl(USER, user2, DEFAULT, READ);
testRemoveAcl(user2, srcObj2, acl2);
assertEqualsAcls(srcObj2, linkObj2);
@@ -847,12 +847,12 @@ class TestOzoneManagerHAWithAllRunning extends
TestOzoneManagerHA {
OzoneObj srcObj = buildKeyObj(srcBucket, key);
String user1 = "remoteUser1";
- OzoneAcl acl1 = new OzoneAcl(USER, user1, READ, DEFAULT);
+ OzoneAcl acl1 = new OzoneAcl(USER, user1, DEFAULT, READ);
testSetAcl(user1, linkObj, acl1); // case1: set link acl
assertEqualsAcls(srcObj, linkObj);
String user2 = "remoteUser2";
- OzoneAcl acl2 = new OzoneAcl(USER, user2, READ, DEFAULT);
+ OzoneAcl acl2 = new OzoneAcl(USER, user2, DEFAULT, READ);
testSetAcl(user2, srcObj, acl2); // case2: set src acl
assertEqualsAcls(srcObj, linkObj);
@@ -868,12 +868,12 @@ class TestOzoneManagerHAWithAllRunning extends
TestOzoneManagerHA {
createPrefix(linkObj);
String user1 = "remoteUser1";
- OzoneAcl acl1 = new OzoneAcl(USER, user1, READ, DEFAULT);
+ OzoneAcl acl1 = new OzoneAcl(USER, user1, DEFAULT, READ);
testAddAcl(user1, linkObj, acl1); // case1: set link acl
assertEqualsAcls(srcObj, linkObj);
String user2 = "remoteUser2";
- OzoneAcl acl2 = new OzoneAcl(USER, user2, READ, DEFAULT);
+ OzoneAcl acl2 = new OzoneAcl(USER, user2, DEFAULT, READ);
testAddAcl(user2, srcObj, acl2); // case2: set src acl
assertEqualsAcls(srcObj, linkObj);
@@ -891,7 +891,7 @@ class TestOzoneManagerHAWithAllRunning extends
TestOzoneManagerHA {
createPrefix(linkObj);
String user = "remoteUser1";
- OzoneAcl acl = new OzoneAcl(USER, user, READ, DEFAULT);
+ OzoneAcl acl = new OzoneAcl(USER, user, DEFAULT, READ);
testRemoveAcl(user, linkObj, acl);
assertEqualsAcls(srcObj, linkObj);
@@ -904,7 +904,7 @@ class TestOzoneManagerHAWithAllRunning extends
TestOzoneManagerHA {
createPrefix(srcObj2);
String user2 = "remoteUser2";
- OzoneAcl acl2 = new OzoneAcl(USER, user2, READ, DEFAULT);
+ OzoneAcl acl2 = new OzoneAcl(USER, user2, DEFAULT, READ);
testRemoveAcl(user2, srcObj2, acl2);
assertEqualsAcls(srcObj2, linkObj2);
@@ -920,12 +920,12 @@ class TestOzoneManagerHAWithAllRunning extends
TestOzoneManagerHA {
createPrefix(linkObj);
String user1 = "remoteUser1";
- OzoneAcl acl1 = new OzoneAcl(USER, user1, READ, DEFAULT);
+ OzoneAcl acl1 = new OzoneAcl(USER, user1, DEFAULT, READ);
testSetAcl(user1, linkObj, acl1); // case1: set link acl
assertEqualsAcls(srcObj, linkObj);
String user2 = "remoteUser2";
- OzoneAcl acl2 = new OzoneAcl(USER, user2, READ, DEFAULT);
+ OzoneAcl acl2 = new OzoneAcl(USER, user2, DEFAULT, READ);
testSetAcl(user2, srcObj, acl2); // case2: set src acl
assertEqualsAcls(srcObj, linkObj);
@@ -998,7 +998,7 @@ class TestOzoneManagerHAWithAllRunning extends
TestOzoneManagerHA {
}
OzoneAcl modifiedUserAcl = new OzoneAcl(USER, remoteUserName,
- WRITE, DEFAULT);
+ DEFAULT, WRITE);
List<OzoneAcl> newAcls = Collections.singletonList(modifiedUserAcl);
boolean setAcl = objectStore.setAcl(ozoneObj, newAcls);
@@ -1031,7 +1031,7 @@ class TestOzoneManagerHAWithAllRunning extends
TestOzoneManagerHA {
// Add an acl by changing acl type with same type, name and scope.
userAcl = new OzoneAcl(USER, remoteUserName,
- WRITE, DEFAULT);
+ DEFAULT, WRITE);
addAcl = objectStore.addAcl(ozoneObj, userAcl);
assertTrue(addAcl);
}
@@ -1052,7 +1052,7 @@ class TestOzoneManagerHAWithAllRunning extends
TestOzoneManagerHA {
// Add an acl by changing acl type with same type, name and scope.
userAcl = new OzoneAcl(USER, remoteUserName,
- WRITE, DEFAULT);
+ DEFAULT, WRITE);
addAcl = objectStore.addAcl(ozoneObj, userAcl);
assertTrue(addAcl);
}
@@ -1067,7 +1067,7 @@ class TestOzoneManagerHAWithAllRunning extends
TestOzoneManagerHA {
objectStore.addAcl(ozoneObj, userAcl);
// Add another arbitrary group ACL since the prefix will be removed when
removing
// the last ACL for the prefix and PREFIX_NOT_FOUND will be thrown
- OzoneAcl groupAcl = new OzoneAcl(GROUP, "arbitrary-group", READ, ACCESS);
+ OzoneAcl groupAcl = new OzoneAcl(GROUP, "arbitrary-group", ACCESS, READ);
objectStore.addAcl(ozoneObj, groupAcl);
}
acls = objectStore.getAcl(ozoneObj);
@@ -1087,7 +1087,7 @@ class TestOzoneManagerHAWithAllRunning extends
TestOzoneManagerHA {
// Just changed acl type here to write, rest all is same as defaultUserAcl.
OzoneAcl modifiedUserAcl = new OzoneAcl(USER, remoteUserName,
- WRITE, DEFAULT);
+ DEFAULT, WRITE);
addAcl = objectStore.addAcl(ozoneObj, modifiedUserAcl);
assertTrue(addAcl);
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshot.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshot.java
index b4e06c0342..ed399b3704 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshot.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshot.java
@@ -1090,7 +1090,7 @@ public abstract class TestOmSnapshot {
createSnapshot(testVolumeName, testBucketName, snap1);
OzoneObj keyObj = buildKeyObj(bucket, key1);
OzoneAcl userAcl = new OzoneAcl(USER, "user",
- WRITE, DEFAULT);
+ DEFAULT, WRITE);
store.addAcl(keyObj, userAcl);
String snap2 = "snap2";
diff --git
a/hadoop-ozone/interface-storage/src/main/java/org/apache/hadoop/ozone/om/helpers/OzoneAclStorage.java
b/hadoop-ozone/interface-storage/src/main/java/org/apache/hadoop/ozone/om/helpers/OzoneAclStorage.java
index 22284e1170..cb9bdc2b4b 100644
---
a/hadoop-ozone/interface-storage/src/main/java/org/apache/hadoop/ozone/om/helpers/OzoneAclStorage.java
+++
b/hadoop-ozone/interface-storage/src/main/java/org/apache/hadoop/ozone/om/helpers/OzoneAclStorage.java
@@ -18,9 +18,15 @@
package org.apache.hadoop.ozone.om.helpers;
import com.google.protobuf.ByteString;
+
import java.util.BitSet;
+import java.util.EnumSet;
+import java.util.List;
+import java.util.stream.Collectors;
+
import org.apache.hadoop.ozone.OzoneAcl;
import org.apache.hadoop.ozone.OzoneAcl.AclScope;
+import org.apache.hadoop.ozone.security.acl.IAccessAuthorizer;
import org.apache.hadoop.ozone.security.acl.IAccessAuthorizer.ACLIdentityType;
import
org.apache.hadoop.ozone.storage.proto.OzoneManagerStorageProtos.OzoneAclInfo;
import
org.apache.hadoop.ozone.storage.proto.OzoneManagerStorageProtos.OzoneAclInfo.OzoneAclScope;
@@ -55,9 +61,12 @@ final class OzoneAclStorage {
public static OzoneAcl fromProtobuf(OzoneAclInfo protoAcl) {
BitSet aclRights = BitSet.valueOf(protoAcl.getRights().toByteArray());
+ List<IAccessAuthorizer.ACLType> aclTypeList = aclRights.stream()
+ .mapToObj(a -> IAccessAuthorizer.ACLType.values()[a])
+ .collect(Collectors.toList());
+ EnumSet<IAccessAuthorizer.ACLType> aclSet = EnumSet.copyOf(aclTypeList);
return new OzoneAcl(ACLIdentityType.valueOf(protoAcl.getType().name()),
- protoAcl.getName(), aclRights,
- AclScope.valueOf(protoAcl.getAclScope().name()));
+ protoAcl.getName(), AclScope.valueOf(protoAcl.getAclScope().name()),
aclSet);
}
}
diff --git
a/hadoop-ozone/interface-storage/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmPrefixInfo.java
b/hadoop-ozone/interface-storage/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmPrefixInfo.java
index a8394b68f9..8070c93cd6 100644
---
a/hadoop-ozone/interface-storage/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmPrefixInfo.java
+++
b/hadoop-ozone/interface-storage/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmPrefixInfo.java
@@ -77,7 +77,7 @@ public class TestOmPrefixInfo {
return new OmPrefixInfo(path,
new ArrayList<>(Collections.singletonList(new OzoneAcl(
identityType, identityString,
- aclType, scope))), new HashMap<>(), 10, 100);
+ scope, aclType))), new HashMap<>(), 10, 100);
}
@@ -98,7 +98,7 @@ public class TestOmPrefixInfo {
// Change acls and check.
omPrefixInfo.addAcl(new OzoneAcl(
IAccessAuthorizer.ACLIdentityType.USER, username,
- IAccessAuthorizer.ACLType.READ, ACCESS));
+ ACCESS, IAccessAuthorizer.ACLType.READ));
assertNotEquals(omPrefixInfo, clonePrefixInfo);
diff --git
a/hadoop-ozone/interface-storage/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmPrefixInfoCodec.java
b/hadoop-ozone/interface-storage/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmPrefixInfoCodec.java
index f3ad1d8c76..4820b37e1b 100644
---
a/hadoop-ozone/interface-storage/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmPrefixInfoCodec.java
+++
b/hadoop-ozone/interface-storage/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmPrefixInfoCodec.java
@@ -45,7 +45,7 @@ public class TestOmPrefixInfoCodec extends
Proto2CodecTestBase<OmPrefixInfo> {
List<OzoneAcl> acls = new LinkedList<>();
OzoneAcl ozoneAcl = new OzoneAcl(ACLIdentityType.USER,
- "hive", ACLType.ALL, ACCESS);
+ "hive", ACCESS, ACLType.ALL);
acls.add(ozoneAcl);
OmPrefixInfo opiSave = OmPrefixInfo.newBuilder()
.setName("/user/hive/warehouse")
diff --git
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
index 9d18107a5d..52299c820a 100644
---
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
+++
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
@@ -4495,13 +4495,13 @@ public final class OzoneManager extends
ServiceRuntimeInfoImpl
List<OzoneAcl> listOfAcls = new ArrayList<>();
//User ACL
listOfAcls.add(new OzoneAcl(ACLIdentityType.USER,
- userName, ACLType.ALL, ACCESS));
+ userName, ACCESS, ACLType.ALL));
//Group ACLs of the User
List<String> userGroups = Arrays.asList(UserGroupInformation
.createRemoteUser(userName).getGroupNames());
userGroups.forEach((group) -> listOfAcls.add(
- new OzoneAcl(ACLIdentityType.GROUP, group, ACLType.ALL, ACCESS)));
+ new OzoneAcl(ACLIdentityType.GROUP, group, ACCESS, ACLType.ALL)));
// Add ACLs
for (OzoneAcl ozoneAcl : listOfAcls) {
diff --git
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/acl/prefix/TestOMPrefixAclResponse.java
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/acl/prefix/TestOMPrefixAclResponse.java
index 543266b51a..5ebd2e6fa1 100644
---
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/acl/prefix/TestOMPrefixAclResponse.java
+++
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/acl/prefix/TestOMPrefixAclResponse.java
@@ -51,9 +51,9 @@ public class TestOMPrefixAclResponse extends
TestOMKeyResponse {
@Test
public void testAddToDBBatch() throws Exception {
final OzoneAcl user1 = new OzoneAcl(USER, "user1",
- ACLType.READ_ACL, ACCESS);
+ ACCESS, ACLType.READ_ACL);
final OzoneAcl user2 = new OzoneAcl(USER, "user2",
- ACLType.WRITE, ACCESS);
+ ACCESS, ACLType.WRITE);
final String prefixName = "/vol/buck/prefix/";
List<OzoneAcl> acls = Arrays.asList(user1, user2);
diff --git
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/security/acl/TestOzoneNativeAuthorizer.java
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/security/acl/TestOzoneNativeAuthorizer.java
index 52dea922d5..7eb46f617f 100644
---
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/security/acl/TestOzoneNativeAuthorizer.java
+++
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/security/acl/TestOzoneNativeAuthorizer.java
@@ -242,9 +242,9 @@ public class TestOzoneNativeAuthorizer {
ACLType groupRight, boolean expectedResult) throws Exception {
createAll(keyName, prefixName, userRight, groupRight, expectedResult);
OzoneAcl userAcl = new OzoneAcl(USER, testUgi.getUserName(),
- parentDirUserAcl, ACCESS);
+ ACCESS, parentDirUserAcl);
OzoneAcl groupAcl = new OzoneAcl(GROUP, testUgi.getGroups().size() > 0 ?
- testUgi.getGroups().get(0) : "", parentDirGroupAcl, ACCESS);
+ testUgi.getGroups().get(0) : "", ACCESS, parentDirGroupAcl);
// Set access for volume.
// We should directly add to table because old API's update to DB.
@@ -264,9 +264,9 @@ public class TestOzoneNativeAuthorizer {
ACLType groupRight, boolean expectedResult) throws Exception {
createAll(keyName, prefixName, userRight, groupRight, expectedResult);
OzoneAcl userAcl = new OzoneAcl(USER, testUgi.getUserName(),
- parentDirUserAcl, ACCESS);
+ ACCESS, parentDirUserAcl);
OzoneAcl groupAcl = new OzoneAcl(GROUP, testUgi.getGroups().size() > 0 ?
- testUgi.getGroups().get(0) : "", parentDirGroupAcl, ACCESS);
+ testUgi.getGroups().get(0) : "", ACCESS, parentDirGroupAcl);
// Set access for volume & bucket. We should directly add to table
// because old API's update to DB.
@@ -294,9 +294,9 @@ public class TestOzoneNativeAuthorizer {
.build();
OzoneAcl userAcl = new OzoneAcl(USER, testUgi.getUserName(),
- parentDirUserAcl, ACCESS);
+ ACCESS, parentDirUserAcl);
OzoneAcl groupAcl = new OzoneAcl(GROUP, testUgi.getGroups().size() > 0 ?
- testUgi.getGroups().get(0) : "", parentDirGroupAcl, ACCESS);
+ testUgi.getGroups().get(0) : "", ACCESS, parentDirGroupAcl);
// Set access for volume & bucket. We should directly add to table
// because old API's update to DB.
@@ -351,8 +351,8 @@ public class TestOzoneNativeAuthorizer {
* if user/group has access to them.
*/
for (ACLType a1 : allAcls) {
- OzoneAcl newAcl = new OzoneAcl(accessType, getAclName(accessType), a1,
- ACCESS);
+ OzoneAcl newAcl = new OzoneAcl(accessType, getAclName(accessType),
ACCESS, a1
+ );
// Reset acls to only one right.
if (obj.getResourceType() == VOLUME) {
@@ -431,7 +431,7 @@ public class TestOzoneNativeAuthorizer {
ACLIdentityType identityType = ACLIdentityType.values()[type];
// Add remaining acls one by one and then check access.
OzoneAcl addAcl = new OzoneAcl(identityType,
- getAclName(identityType), a2, ACCESS);
+ getAclName(identityType), ACCESS, a2);
// For volume and bucket update to cache. As Old API's update to
// only DB not cache.
diff --git
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/security/acl/TestParentAcl.java
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/security/acl/TestParentAcl.java
index f5220df178..e7ef8f51c4 100644
---
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/security/acl/TestParentAcl.java
+++
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/security/acl/TestParentAcl.java
@@ -223,10 +223,10 @@ public class TestParentAcl {
.setAclRights(childAclType).build();
OzoneAcl childAcl = new OzoneAcl(USER,
- testUgi1.getUserName(), childAclType, ACCESS);
+ testUgi1.getUserName(), ACCESS, childAclType);
OzoneAcl parentAcl = new OzoneAcl(USER,
- testUgi1.getUserName(), parentAclType, ACCESS);
+ testUgi1.getUserName(), ACCESS, parentAclType);
assertFalse(nativeAuthorizer.checkAccess(child, requestContext));
if (child.getResourceType() == BUCKET) {
@@ -254,7 +254,7 @@ public class TestParentAcl {
// add the volume acl (grand-parent), now key access is allowed.
OzoneAcl parentVolumeAcl = new OzoneAcl(USER,
- testUgi1.getUserName(), READ, ACCESS);
+ testUgi1.getUserName(), ACCESS, READ);
addVolumeAcl(child.getVolumeName(), parentVolumeAcl);
assertTrue(nativeAuthorizer.checkAccess(
child, requestContext));
diff --git
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestEndpoints.java
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestEndpoints.java
index 9c92ad4d7e..310c8a28e7 100644
---
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestEndpoints.java
+++
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestEndpoints.java
@@ -435,14 +435,12 @@ public class TestEndpoints extends AbstractReconSqlDBTest
{
.addOzoneAcls(new OzoneAcl(
IAccessAuthorizer.ACLIdentityType.USER,
"TestUser2",
- IAccessAuthorizer.ACLType.WRITE,
- OzoneAcl.AclScope.ACCESS
+ OzoneAcl.AclScope.ACCESS, IAccessAuthorizer.ACLType.WRITE
))
.addOzoneAcls(new OzoneAcl(
IAccessAuthorizer.ACLIdentityType.USER,
"TestUser2",
- IAccessAuthorizer.ACLType.READ,
- OzoneAcl.AclScope.ACCESS
+ OzoneAcl.AclScope.ACCESS, IAccessAuthorizer.ACLType.READ
))
.build();
reconOMMetadataManager.getVolumeTable().put(volumeKey, args);
@@ -453,8 +451,7 @@ public class TestEndpoints extends AbstractReconSqlDBTest {
.addAcl(new OzoneAcl(
IAccessAuthorizer.ACLIdentityType.GROUP,
"TestGroup2",
- IAccessAuthorizer.ACLType.WRITE,
- OzoneAcl.AclScope.ACCESS
+ OzoneAcl.AclScope.ACCESS, IAccessAuthorizer.ACLType.WRITE
))
.setQuotaInBytes(OzoneConsts.GB)
.setUsedBytes(OzoneConsts.MB)
@@ -477,8 +474,7 @@ public class TestEndpoints extends AbstractReconSqlDBTest {
.addAcl(new OzoneAcl(
IAccessAuthorizer.ACLIdentityType.GROUP,
"TestGroup2",
- IAccessAuthorizer.ACLType.READ,
- OzoneAcl.AclScope.ACCESS
+ OzoneAcl.AclScope.ACCESS, IAccessAuthorizer.ACLType.READ
))
.setQuotaInBytes(OzoneConsts.GB)
.setUsedBytes(100 * OzoneConsts.MB)
diff --git
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/common/CommonUtils.java
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/common/CommonUtils.java
index f555e55ead..0414b8715c 100644
---
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/common/CommonUtils.java
+++
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/common/CommonUtils.java
@@ -67,7 +67,7 @@ public class CommonUtils {
return new OmPrefixInfo(path,
new ArrayList<>(Collections.singletonList(new OzoneAcl(
identityType, identityString,
- aclType, scope))), new HashMap<>(), 10, 100);
+ scope, aclType))), new HashMap<>(), 10, 100);
}
public void testNSSummaryBasicInfoRoot(
diff --git
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/BucketEndpoint.java
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/BucketEndpoint.java
index b8cd56d5f9..b7a5af7340 100644
---
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/BucketEndpoint.java
+++
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/BucketEndpoint.java
@@ -63,7 +63,7 @@ import javax.ws.rs.core.Response;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
-import java.util.BitSet;
+import java.util.EnumSet;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@@ -665,14 +665,11 @@ public class BucketEndpoint extends EndpointBase {
throw newError(NOT_IMPLEMENTED, part[0]);
}
// Build ACL on Bucket
- BitSet aclsOnBucket =
- S3Acl.getOzoneAclOnBucketFromS3Permission(permission);
+ EnumSet<IAccessAuthorizer.ACLType> aclsOnBucket =
S3Acl.getOzoneAclOnBucketFromS3Permission(permission);
OzoneAcl defaultOzoneAcl = new OzoneAcl(
- IAccessAuthorizer.ACLIdentityType.USER, part[1], aclsOnBucket,
- OzoneAcl.AclScope.DEFAULT);
- OzoneAcl accessOzoneAcl = new OzoneAcl(
- IAccessAuthorizer.ACLIdentityType.USER, part[1], aclsOnBucket,
- ACCESS);
+ IAccessAuthorizer.ACLIdentityType.USER, part[1],
OzoneAcl.AclScope.DEFAULT, aclsOnBucket
+ );
+ OzoneAcl accessOzoneAcl = new
OzoneAcl(IAccessAuthorizer.ACLIdentityType.USER, part[1], ACCESS, aclsOnBucket);
ozoneAclList.add(defaultOzoneAcl);
ozoneAclList.add(accessOzoneAcl);
}
@@ -699,11 +696,9 @@ public class BucketEndpoint extends EndpointBase {
throw newError(NOT_IMPLEMENTED, part[0]);
}
// Build ACL on Volume
- BitSet aclsOnVolume =
+ EnumSet<IAccessAuthorizer.ACLType> aclsOnVolume =
S3Acl.getOzoneAclOnVolumeFromS3Permission(permission);
- OzoneAcl accessOzoneAcl = new OzoneAcl(
- IAccessAuthorizer.ACLIdentityType.USER, part[1], aclsOnVolume,
- ACCESS);
+ OzoneAcl accessOzoneAcl = new
OzoneAcl(IAccessAuthorizer.ACLIdentityType.USER, part[1], ACCESS, aclsOnVolume);
ozoneAclList.add(accessOzoneAcl);
}
return ozoneAclList;
diff --git
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3Acl.java
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3Acl.java
index 792f2e2ef5..5d6057f061 100644
---
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3Acl.java
+++
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3Acl.java
@@ -29,7 +29,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
-import java.util.BitSet;
+import java.util.EnumSet;
import java.util.List;
import static
org.apache.hadoop.ozone.s3.exception.S3ErrorTable.INVALID_ARGUMENT;
@@ -228,15 +228,15 @@ public final class S3Acl {
grant.getGrantee().getXsiType());
if (identityType != null && identityType.isSupported()) {
String permission = grant.getPermission();
- BitSet acls = getOzoneAclOnBucketFromS3Permission(permission);
+ EnumSet<IAccessAuthorizer.ACLType> acls =
getOzoneAclOnBucketFromS3Permission(permission);
OzoneAcl defaultOzoneAcl = new OzoneAcl(
IAccessAuthorizer.ACLIdentityType.USER,
- grant.getGrantee().getId(), acls,
- OzoneAcl.AclScope.DEFAULT);
+ grant.getGrantee().getId(), OzoneAcl.AclScope.DEFAULT, acls
+ );
OzoneAcl accessOzoneAcl = new OzoneAcl(
IAccessAuthorizer.ACLIdentityType.USER,
- grant.getGrantee().getId(), acls,
- OzoneAcl.AclScope.ACCESS);
+ grant.getGrantee().getId(), OzoneAcl.AclScope.ACCESS, acls
+ );
ozoneAclList.add(defaultOzoneAcl);
ozoneAclList.add(accessOzoneAcl);
} else {
@@ -249,31 +249,31 @@ public final class S3Acl {
return ozoneAclList;
}
- public static BitSet getOzoneAclOnBucketFromS3Permission(String permission)
+ public static EnumSet<IAccessAuthorizer.ACLType>
getOzoneAclOnBucketFromS3Permission(String permission)
throws OS3Exception {
ACLType permissionType = ACLType.getType(permission);
if (permissionType == null) {
throw S3ErrorTable.newError(S3ErrorTable.INVALID_ARGUMENT, permission);
}
- BitSet acls = new BitSet(IAccessAuthorizer.ACLType.getNoOfAcls());
+ EnumSet<IAccessAuthorizer.ACLType> acls =
EnumSet.noneOf(IAccessAuthorizer.ACLType.class);
switch (permissionType) {
case FULL_CONTROL:
- acls.set(IAccessAuthorizer.ACLType.ALL.ordinal());
+ acls.add(IAccessAuthorizer.ACLType.ALL);
break;
case WRITE_ACP:
- acls.set(IAccessAuthorizer.ACLType.WRITE_ACL.ordinal());
+ acls.add(IAccessAuthorizer.ACLType.WRITE_ACL);
break;
case READ_ACP:
- acls.set(IAccessAuthorizer.ACLType.READ_ACL.ordinal());
+ acls.add(IAccessAuthorizer.ACLType.READ_ACL);
break;
case WRITE:
- acls.set(IAccessAuthorizer.ACLType.WRITE.ordinal());
- acls.set(IAccessAuthorizer.ACLType.DELETE.ordinal());
- acls.set(IAccessAuthorizer.ACLType.CREATE.ordinal());
+ acls.add(IAccessAuthorizer.ACLType.WRITE);
+ acls.add(IAccessAuthorizer.ACLType.DELETE);
+ acls.add(IAccessAuthorizer.ACLType.CREATE);
break;
case READ:
- acls.set(IAccessAuthorizer.ACLType.READ.ordinal());
- acls.set(IAccessAuthorizer.ACLType.LIST.ordinal());
+ acls.add(IAccessAuthorizer.ACLType.READ);
+ acls.add(IAccessAuthorizer.ACLType.LIST);
break;
default:
LOG.error("Failed to recognize S3 permission {}", permission);
@@ -292,11 +292,11 @@ public final class S3Acl {
grant.getGrantee().getXsiType());
if (identityType != null && identityType.isSupported()) {
String permission = grant.getPermission();
- BitSet acls = getOzoneAclOnVolumeFromS3Permission(permission);
+ EnumSet<IAccessAuthorizer.ACLType> acls =
getOzoneAclOnVolumeFromS3Permission(permission);
OzoneAcl accessOzoneAcl = new OzoneAcl(
IAccessAuthorizer.ACLIdentityType.USER,
- grant.getGrantee().getId(), acls,
- OzoneAcl.AclScope.ACCESS);
+ grant.getGrantee().getId(), OzoneAcl.AclScope.ACCESS, acls
+ );
ozoneAclList.add(accessOzoneAcl);
} else {
LOG.error("Grantee type {} is not supported",
@@ -309,35 +309,35 @@ public final class S3Acl {
}
// User privilege on volume follows the "lest privilege" principle.
- public static BitSet getOzoneAclOnVolumeFromS3Permission(String permission)
+ public static EnumSet<IAccessAuthorizer.ACLType>
getOzoneAclOnVolumeFromS3Permission(String permission)
throws OS3Exception {
- BitSet acls = new BitSet(IAccessAuthorizer.ACLType.getNoOfAcls());
+ EnumSet<IAccessAuthorizer.ACLType> acls =
EnumSet.noneOf(IAccessAuthorizer.ACLType.class);
ACLType permissionType = ACLType.getType(permission);
if (permissionType == null) {
throw S3ErrorTable.newError(S3ErrorTable.INVALID_ARGUMENT, permission);
}
switch (permissionType) {
case FULL_CONTROL:
- acls.set(IAccessAuthorizer.ACLType.READ.ordinal());
- acls.set(IAccessAuthorizer.ACLType.WRITE.ordinal());
- acls.set(IAccessAuthorizer.ACLType.READ_ACL.ordinal());
- acls.set(IAccessAuthorizer.ACLType.WRITE_ACL.ordinal());
+ acls.add(IAccessAuthorizer.ACLType.READ);
+ acls.add(IAccessAuthorizer.ACLType.WRITE);
+ acls.add(IAccessAuthorizer.ACLType.READ_ACL);
+ acls.add(IAccessAuthorizer.ACLType.WRITE_ACL);
break;
case WRITE_ACP:
- acls.set(IAccessAuthorizer.ACLType.READ.ordinal());
- acls.set(IAccessAuthorizer.ACLType.READ_ACL.ordinal());
- acls.set(IAccessAuthorizer.ACLType.WRITE_ACL.ordinal());
+ acls.add(IAccessAuthorizer.ACLType.READ);
+ acls.add(IAccessAuthorizer.ACLType.READ_ACL);
+ acls.add(IAccessAuthorizer.ACLType.WRITE_ACL);
break;
case READ_ACP:
- acls.set(IAccessAuthorizer.ACLType.READ.ordinal());
- acls.set(IAccessAuthorizer.ACLType.READ_ACL.ordinal());
+ acls.add(IAccessAuthorizer.ACLType.READ);
+ acls.add(IAccessAuthorizer.ACLType.READ_ACL);
break;
case WRITE:
- acls.set(IAccessAuthorizer.ACLType.READ.ordinal());
- acls.set(IAccessAuthorizer.ACLType.WRITE.ordinal());
+ acls.add(IAccessAuthorizer.ACLType.READ);
+ acls.add(IAccessAuthorizer.ACLType.WRITE);
break;
case READ:
- acls.set(IAccessAuthorizer.ACLType.READ.ordinal());
+ acls.add(IAccessAuthorizer.ACLType.READ);
break;
default:
LOG.error("Failed to recognize S3 permission {}", permission);
diff --git
a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorOm.java
b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorOm.java
index b8509d60c9..7390488c81 100644
---
a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorOm.java
+++
b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorOm.java
@@ -156,10 +156,10 @@ public class GeneratorOm extends BaseGenerator implements
.setQuotaInBytes(100L)
.addOzoneAcls(
new OzoneAcl(IAccessAuthorizer.ACLIdentityType.WORLD, "",
- IAccessAuthorizer.ACLType.ALL, ACCESS))
+ ACCESS, IAccessAuthorizer.ACLType.ALL))
.addOzoneAcls(
new OzoneAcl(IAccessAuthorizer.ACLIdentityType.USER, getUserId(),
- IAccessAuthorizer.ACLType.ALL, ACCESS)
+ ACCESS, IAccessAuthorizer.ACLType.ALL)
).build();
volTable.put("/" + volumeName, omVolumeArgs);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]