[ 
https://issues.apache.org/jira/browse/HDFS-5594?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chris Nauroth updated HDFS-5594:
--------------------------------

    Attachment: HDFS-5594.1.patch

This patch provides the {{FileSystem}} API described in the design doc for 
reading and writing ACLs.  Here are a few additional notes on this patch:
# The design doc mentioned an {{AclSpec}} class for use in the modification 
operations.  It turns out that we can simplify this to a {{Set<AclEntry>}}, so 
I didn't code a separate {{AclSpec}} class.  I'll plan to update the design doc 
accordingly.
# It might look odd that we have separate enums for read flags and write flags, 
both of which just contain a {{RECURSIVE}} option.  It's possible that these 
flags will diverge over time, so I'd like to keep the enums separate.  For 
example, Linux getfacl has various additional filtering flags that wouldn't 
make sense in the context of a write operation.
# The new objects are following patterns that we've started to use recently on 
things like the cache management APIs.  I made the objects immutable and 
provided builders to avoid an explosion of multiple constructors.
# I'm reusing {{FsAction}} in the ACL model.  This class is perfect for 
representing the permissions portion of an ACL entry, and it has convenience 
methods for computing union and intersection of permissions, which will help 
later.  I've expanded visiblity of the class from 
{{LimitedPrivate(\{"HDFS"\})}}/{{Unstable}} to {{Public}}/{{Stable}}.  I 
checked revision history, and this class actually has been quite stable.  The 
last code change was 5 years ago, and that was an internal implementation 
change that didn't alter the interface.  I see very little risk in expanding 
the visibility of this class.

The branch hasn't deviated from trunk yet, so I'm going to submit this for a 
Jenkins run.


> FileSystem API for ACLs.
> ------------------------
>
>                 Key: HDFS-5594
>                 URL: https://issues.apache.org/jira/browse/HDFS-5594
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: hdfs-client
>    Affects Versions: HDFS ACLs (HDFS-4685)
>            Reporter: Chris Nauroth
>            Assignee: Chris Nauroth
>         Attachments: HDFS-5594.1.patch
>
>
> Add new methods to {{FileSystem}} for manipulating ACLs.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to