Author: cnauroth
Date: Tue Jan 7 00:47:49 2014
New Revision: 1556090
URL: http://svn.apache.org/r1556090
Log:
HDFS-5673. Implement logic for modification of ACLs. Contributed by Chris
Nauroth.
Modified:
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/permission/AclEntry.java
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/permission/AclStatus.java
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/permission/TestAcl.java
Modified:
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/permission/AclEntry.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/permission/AclEntry.java?rev=1556090&r1=1556089&r2=1556090&view=diff
==============================================================================
---
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/permission/AclEntry.java
(original)
+++
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/permission/AclEntry.java
Tue Jan 7 00:47:49 2014
@@ -18,11 +18,8 @@
package org.apache.hadoop.fs.permission;
import static org.apache.hadoop.fs.permission.AclEntryScope.*;
-import static org.apache.hadoop.fs.permission.AclEntryType.*;
import com.google.common.base.Objects;
-import com.google.common.collect.ComparisonChain;
-import com.google.common.collect.Ordering;
import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.classification.InterfaceStability;
@@ -31,20 +28,12 @@ import org.apache.hadoop.classification.
* Defines a single entry in an ACL. An ACL entry has a type (user, group,
* mask, or other), an optional name (referring to a specific user or group), a
* set of permissions (any combination of read, write and execute), and a scope
- * (access or default). The natural ordering for entries within an ACL is:
- * <ol>
- * <li>owner entry (unnamed user)</li>
- * <li>all named user entries (internal ordering undefined)</li>
- * <li>owning group entry (unnamed group)</li>
- * <li>all named group entries (internal ordering undefined)</li>
- * <li>other entry</li>
- * </ol>
- * All access ACL entries sort ahead of all default ACL entries. AclEntry
- * instances are immutable. Use a {@link Builder} to create a new instance.
+ * (access or default). AclEntry instances are immutable. Use a {@link
Builder}
+ * to create a new instance.
*/
@InterfaceAudience.Public
@InterfaceStability.Evolving
-public class AclEntry implements Comparable<AclEntry> {
+public class AclEntry {
private final AclEntryType type;
private final String name;
private final FsAction permission;
@@ -107,15 +96,6 @@ public class AclEntry implements Compara
}
@Override
- public int compareTo(AclEntry other) {
- return ComparisonChain.start()
- .compare(scope, other.scope, Ordering.explicit(ACCESS, DEFAULT))
- .compare(type, other.type, Ordering.explicit(USER, GROUP, MASK, OTHER))
- .compare(name, other.name, Ordering.natural().nullsFirst())
- .result();
- }
-
- @Override
public String toString() {
StringBuilder sb = new StringBuilder();
if (scope == AclEntryScope.DEFAULT) {
Modified:
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/permission/AclStatus.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/permission/AclStatus.java?rev=1556090&r1=1556089&r2=1556090&view=diff
==============================================================================
---
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/permission/AclStatus.java
(original)
+++
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/permission/AclStatus.java
Tue Jan 7 00:47:49 2014
@@ -17,7 +17,6 @@
*/
package org.apache.hadoop.fs.permission;
-import java.util.Collections;
import java.util.List;
import org.apache.hadoop.classification.InterfaceAudience;
@@ -197,8 +196,6 @@ public class AclStatus {
this.owner = owner;
this.group = group;
this.stickyBit = stickyBit;
- List<AclEntry> entriesCopy = Lists.newArrayList(entries);
- Collections.sort(entriesCopy);
- this.entries = entriesCopy;
+ this.entries = Lists.newArrayList(entries);
}
}
Modified:
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/permission/TestAcl.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/permission/TestAcl.java?rev=1556090&r1=1556089&r2=1556090&view=diff
==============================================================================
---
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/permission/TestAcl.java
(original)
+++
hadoop/common/branches/HDFS-4685/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/permission/TestAcl.java
Tue Jan 7 00:47:49 2014
@@ -19,13 +19,9 @@ package org.apache.hadoop.fs.permission;
import static org.junit.Assert.*;
-import java.util.List;
-
import org.junit.BeforeClass;
import org.junit.Test;
-import com.google.common.collect.Lists;
-
/**
* Tests covering basic functionality of the ACL objects.
*/
@@ -166,35 +162,6 @@ public class TestAcl {
}
@Test
- public void testEntryNaturalOrdering() {
- AclEntry expected[] = new AclEntry[] {
- ENTRY5, // owner
- ENTRY1, // named user
- ENTRY11, // group
- ENTRY3, // named group
- ENTRY9, // mask
- ENTRY7, // other
- ENTRY13, // default owner
- ENTRY8, // default named user
- ENTRY12, // default group
- ENTRY6, // default named group
- ENTRY10, // default mask
- ENTRY4 // default other
- };
- List<AclEntry> actual = Lists.newArrayList(STATUS4.getEntries());
- assertNotNull(actual);
- assertEquals(expected.length, actual.size());
- for (int i = 0; i < expected.length; ++i) {
- AclEntry expectedEntry = expected[i];
- AclEntry actualEntry = actual.get(i);
- assertEquals(
- String.format("At position %d, expected = %s, actual = %s", i,
- expectedEntry, actualEntry),
- expectedEntry, actualEntry);
- }
- }
-
- @Test
public void testEntryScopeIsAccessIfUnspecified() {
assertEquals(AclEntryScope.ACCESS, ENTRY1.getScope());
assertEquals(AclEntryScope.ACCESS, ENTRY2.getScope());