Search in sources :

Example 1 with DirOp

use of org.apache.hadoop.hdfs.server.namenode.FSDirectory.DirOp in project hadoop by apache.

the class FSDirStatAndListingOp method getFileInfo.

/**
   * Get the file info for a specific file.
   *
   * @param srcArg The string representation of the path to the file
   * @param resolveLink whether to throw UnresolvedLinkException
   *        if src refers to a symlink
   *
   * @return object containing information regarding the file
   *         or null if file not found
   */
static HdfsFileStatus getFileInfo(FSDirectory fsd, String srcArg, boolean resolveLink) throws IOException {
    DirOp dirOp = resolveLink ? DirOp.READ : DirOp.READ_LINK;
    FSPermissionChecker pc = fsd.getPermissionChecker();
    final INodesInPath iip;
    if (pc.isSuperUser()) {
        // superuser to receive null instead.
        try {
            iip = fsd.resolvePath(pc, srcArg, dirOp);
        } catch (AccessControlException ace) {
            return null;
        }
    } else {
        iip = fsd.resolvePath(pc, srcArg, dirOp);
    }
    return getFileInfo(fsd, iip);
}
Also used : DirOp(org.apache.hadoop.hdfs.server.namenode.FSDirectory.DirOp) AccessControlException(org.apache.hadoop.security.AccessControlException)

Aggregations

DirOp (org.apache.hadoop.hdfs.server.namenode.FSDirectory.DirOp)1 AccessControlException (org.apache.hadoop.security.AccessControlException)1