Search in sources :

Example 11 with SnapshottableDirectoryStatus

use of org.apache.hadoop.hdfs.protocol.SnapshottableDirectoryStatus in project hadoop by apache.

the class SnapshotManager method getSnapshottableDirListing.

/**
   * List all the snapshottable directories that are owned by the current user.
   * @param userName Current user name.
   * @return Snapshottable directories that are owned by the current user,
   *         represented as an array of {@link SnapshottableDirectoryStatus}. If
   *         {@code userName} is null, return all the snapshottable dirs.
   */
public SnapshottableDirectoryStatus[] getSnapshottableDirListing(String userName) {
    if (snapshottables.isEmpty()) {
        return null;
    }
    List<SnapshottableDirectoryStatus> statusList = new ArrayList<SnapshottableDirectoryStatus>();
    for (INodeDirectory dir : snapshottables.values()) {
        if (userName == null || userName.equals(dir.getUserName())) {
            SnapshottableDirectoryStatus status = new SnapshottableDirectoryStatus(dir.getModificationTime(), dir.getAccessTime(), dir.getFsPermission(), dir.getUserName(), dir.getGroupName(), dir.getLocalNameBytes(), dir.getId(), dir.getChildrenNum(Snapshot.CURRENT_STATE_ID), dir.getDirectorySnapshottableFeature().getNumSnapshots(), dir.getDirectorySnapshottableFeature().getSnapshotQuota(), dir.getParent() == null ? DFSUtilClient.EMPTY_BYTES : DFSUtil.string2Bytes(dir.getParent().getFullPathName()));
            statusList.add(status);
        }
    }
    Collections.sort(statusList, SnapshottableDirectoryStatus.COMPARATOR);
    return statusList.toArray(new SnapshottableDirectoryStatus[statusList.size()]);
}
Also used : INodeDirectory(org.apache.hadoop.hdfs.server.namenode.INodeDirectory) ArrayList(java.util.ArrayList) SnapshottableDirectoryStatus(org.apache.hadoop.hdfs.protocol.SnapshottableDirectoryStatus)

Aggregations

SnapshottableDirectoryStatus (org.apache.hadoop.hdfs.protocol.SnapshottableDirectoryStatus)11 Path (org.apache.hadoop.fs.Path)7 Test (org.junit.Test)7 IOException (java.io.IOException)4 DistributedFileSystem (org.apache.hadoop.hdfs.DistributedFileSystem)3 INodeDirectory (org.apache.hadoop.hdfs.server.namenode.INodeDirectory)3 ArrayList (java.util.ArrayList)2 DirectoryDiff (org.apache.hadoop.hdfs.server.namenode.snapshot.DirectoryWithSnapshotFeature.DirectoryDiff)2 AccessControlException (org.apache.hadoop.security.AccessControlException)2 EOFException (java.io.EOFException)1 File (java.io.File)1 FileNotFoundException (java.io.FileNotFoundException)1 SocketException (java.net.SocketException)1 SocketTimeoutException (java.net.SocketTimeoutException)1 URISyntaxException (java.net.URISyntaxException)1 Date (java.util.Date)1 ServletException (javax.servlet.ServletException)1 Configuration (org.apache.hadoop.conf.Configuration)1 FileSystem (org.apache.hadoop.fs.FileSystem)1 UnresolvedLinkException (org.apache.hadoop.fs.UnresolvedLinkException)1