Java 类org.apache.hadoop.hdfs.protocol.SnapshottableDirectoryStatus 实例源码

项目:hadoop    文件:FSNamesystem.java   
/**
 * Get the list of snapshottable directories that are owned 
 * by the current user. Return all the snapshottable directories if the 
 * current user is a super user.
 * @return The list of all the current snapshottable directories
 * @throws IOException
 */
public SnapshottableDirectoryStatus[] getSnapshottableDirListing()
    throws IOException {
  SnapshottableDirectoryStatus[] status = null;
  checkOperation(OperationCategory.READ);
  boolean success = false;
  readLock();
  try {
    checkOperation(OperationCategory.READ);
    status = FSDirSnapshotOp.getSnapshottableDirListing(dir, snapshotManager);
    success = true;
  } finally {
    readUnlock();
  }
  logAuditEvent(success, "listSnapshottableDirectory", null, null, null);
  return status;
}
项目:hadoop    文件:PBHelper.java   
public static SnapshottableDirectoryStatus convert(
    SnapshottableDirectoryStatusProto sdirStatusProto) {
  if (sdirStatusProto == null) {
    return null;
  }
  final HdfsFileStatusProto status = sdirStatusProto.getDirStatus();
  return new SnapshottableDirectoryStatus(
      status.getModificationTime(),
      status.getAccessTime(),
      PBHelper.convert(status.getPermission()),
      status.getOwner(),
      status.getGroup(),
      status.getPath().toByteArray(),
      status.getFileId(),
      status.getChildrenNum(),
      sdirStatusProto.getSnapshotNumber(),
      sdirStatusProto.getSnapshotQuota(),
      sdirStatusProto.getParentFullpath().toByteArray());
}
项目:hadoop    文件:PBHelper.java   
public static SnapshottableDirectoryStatusProto convert(
    SnapshottableDirectoryStatus status) {
  if (status == null) {
    return null;
  }
  int snapshotNumber = status.getSnapshotNumber();
  int snapshotQuota = status.getSnapshotQuota();
  byte[] parentFullPath = status.getParentFullPath();
  ByteString parentFullPathBytes = ByteString.copyFrom(
      parentFullPath == null ? DFSUtil.EMPTY_BYTES : parentFullPath);
  HdfsFileStatusProto fs = convert(status.getDirStatus());
  SnapshottableDirectoryStatusProto.Builder builder = 
      SnapshottableDirectoryStatusProto
      .newBuilder().setSnapshotNumber(snapshotNumber)
      .setSnapshotQuota(snapshotQuota).setParentFullpath(parentFullPathBytes)
      .setDirStatus(fs);
  return builder.build();
}
项目:hadoop    文件:PBHelper.java   
public static SnapshottableDirectoryStatus[] convert(
    SnapshottableDirectoryListingProto sdlp) {
  if (sdlp == null)
    return null;
  List<SnapshottableDirectoryStatusProto> list = sdlp
      .getSnapshottableDirListingList();
  if (list.isEmpty()) {
    return new SnapshottableDirectoryStatus[0];
  } else {
    SnapshottableDirectoryStatus[] result = 
        new SnapshottableDirectoryStatus[list.size()];
    for (int i = 0; i < list.size(); i++) {
      result[i] = PBHelper.convert(list.get(i));
    }
    return result;
  }
}
项目:hadoop    文件:ClientNamenodeProtocolServerSideTranslatorPB.java   
@Override
public GetSnapshottableDirListingResponseProto getSnapshottableDirListing(
    RpcController controller, GetSnapshottableDirListingRequestProto request)
    throws ServiceException {
  try {
    SnapshottableDirectoryStatus[] result = server
        .getSnapshottableDirListing();
    if (result != null) {
      return GetSnapshottableDirListingResponseProto.newBuilder().
          setSnapshottableDirList(PBHelper.convert(result)).build();
    } else {
      return NULL_GET_SNAPSHOTTABLE_DIR_LISTING_RESPONSE;
    }
  } catch (IOException e) {
    throw new ServiceException(e);
  }
}
项目:hadoop    文件:ClientNamenodeProtocolTranslatorPB.java   
@Override
public SnapshottableDirectoryStatus[] getSnapshottableDirListing()
    throws IOException {
  GetSnapshottableDirListingRequestProto req = 
      GetSnapshottableDirListingRequestProto.newBuilder().build();
  try {
    GetSnapshottableDirListingResponseProto result = rpcProxy
        .getSnapshottableDirListing(null, req);

    if (result.hasSnapshottableDirList()) {
      return PBHelper.convert(result.getSnapshottableDirList());
    }
    return null;
  } catch (ServiceException e) {
    throw ProtobufHelper.getRemoteException(e);
  }
}
项目:aliyun-oss-hadoop-fs    文件:PBHelperClient.java   
public static SnapshottableDirectoryStatus[] convert(
    SnapshottableDirectoryListingProto sdlp) {
  if (sdlp == null)
    return null;
  List<SnapshottableDirectoryStatusProto> list = sdlp
      .getSnapshottableDirListingList();
  if (list.isEmpty()) {
    return new SnapshottableDirectoryStatus[0];
  } else {
    SnapshottableDirectoryStatus[] result =
        new SnapshottableDirectoryStatus[list.size()];
    for (int i = 0; i < list.size(); i++) {
      result[i] = convert(list.get(i));
    }
    return result;
  }
}
项目:aliyun-oss-hadoop-fs    文件:PBHelperClient.java   
public static SnapshottableDirectoryStatus convert(
    SnapshottableDirectoryStatusProto sdirStatusProto) {
  if (sdirStatusProto == null) {
    return null;
  }
  final HdfsFileStatusProto status = sdirStatusProto.getDirStatus();
  return new SnapshottableDirectoryStatus(
      status.getModificationTime(),
      status.getAccessTime(),
      convert(status.getPermission()),
      status.getOwner(),
      status.getGroup(),
      status.getPath().toByteArray(),
      status.getFileId(),
      status.getChildrenNum(),
      sdirStatusProto.getSnapshotNumber(),
      sdirStatusProto.getSnapshotQuota(),
      sdirStatusProto.getParentFullpath().toByteArray());
}
项目:aliyun-oss-hadoop-fs    文件:PBHelperClient.java   
public static SnapshottableDirectoryStatusProto convert(
    SnapshottableDirectoryStatus status) {
  if (status == null) {
    return null;
  }
  int snapshotNumber = status.getSnapshotNumber();
  int snapshotQuota = status.getSnapshotQuota();
  byte[] parentFullPath = status.getParentFullPath();
  ByteString parentFullPathBytes = getByteString(
      parentFullPath == null ? DFSUtilClient.EMPTY_BYTES : parentFullPath);
  HdfsFileStatusProto fs = convert(status.getDirStatus());
  SnapshottableDirectoryStatusProto.Builder builder =
      SnapshottableDirectoryStatusProto
          .newBuilder()
          .setSnapshotNumber(snapshotNumber)
          .setSnapshotQuota(snapshotQuota)
          .setParentFullpath(parentFullPathBytes)
          .setDirStatus(fs);
  return builder.build();
}
项目:aliyun-oss-hadoop-fs    文件:ClientNamenodeProtocolTranslatorPB.java   
@Override
public SnapshottableDirectoryStatus[] getSnapshottableDirListing()
    throws IOException {
  GetSnapshottableDirListingRequestProto req =
      GetSnapshottableDirListingRequestProto.newBuilder().build();
  try {
    GetSnapshottableDirListingResponseProto result = rpcProxy
        .getSnapshottableDirListing(null, req);

    if (result.hasSnapshottableDirList()) {
      return PBHelperClient.convert(result.getSnapshottableDirList());
    }
    return null;
  } catch (ServiceException e) {
    throw ProtobufHelper.getRemoteException(e);
  }
}
项目:aliyun-oss-hadoop-fs    文件:FSNamesystem.java   
/**
 * Get the list of snapshottable directories that are owned 
 * by the current user. Return all the snapshottable directories if the 
 * current user is a super user.
 * @return The list of all the current snapshottable directories
 * @throws IOException
 */
public SnapshottableDirectoryStatus[] getSnapshottableDirListing()
    throws IOException {
  SnapshottableDirectoryStatus[] status = null;
  checkOperation(OperationCategory.READ);
  boolean success = false;
  readLock();
  try {
    checkOperation(OperationCategory.READ);
    status = FSDirSnapshotOp.getSnapshottableDirListing(dir, snapshotManager);
    success = true;
  } finally {
    readUnlock();
  }
  logAuditEvent(success, "listSnapshottableDirectory", null, null, null);
  return status;
}
项目:aliyun-oss-hadoop-fs    文件:ClientNamenodeProtocolServerSideTranslatorPB.java   
@Override
public GetSnapshottableDirListingResponseProto getSnapshottableDirListing(
    RpcController controller, GetSnapshottableDirListingRequestProto request)
    throws ServiceException {
  try {
    SnapshottableDirectoryStatus[] result = server
        .getSnapshottableDirListing();
    if (result != null) {
      return GetSnapshottableDirListingResponseProto.newBuilder().
          setSnapshottableDirList(PBHelperClient.convert(result)).build();
    } else {
      return NULL_GET_SNAPSHOTTABLE_DIR_LISTING_RESPONSE;
    }
  } catch (IOException e) {
    throw new ServiceException(e);
  }
}
项目:big-c    文件:FSNamesystem.java   
/**
 * Get the list of snapshottable directories that are owned 
 * by the current user. Return all the snapshottable directories if the 
 * current user is a super user.
 * @return The list of all the current snapshottable directories
 * @throws IOException
 */
public SnapshottableDirectoryStatus[] getSnapshottableDirListing()
    throws IOException {
  SnapshottableDirectoryStatus[] status = null;
  checkOperation(OperationCategory.READ);
  boolean success = false;
  readLock();
  try {
    checkOperation(OperationCategory.READ);
    status = FSDirSnapshotOp.getSnapshottableDirListing(dir, snapshotManager);
    success = true;
  } finally {
    readUnlock();
  }
  logAuditEvent(success, "listSnapshottableDirectory", null, null, null);
  return status;
}
项目:big-c    文件:PBHelper.java   
public static SnapshottableDirectoryStatus convert(
    SnapshottableDirectoryStatusProto sdirStatusProto) {
  if (sdirStatusProto == null) {
    return null;
  }
  final HdfsFileStatusProto status = sdirStatusProto.getDirStatus();
  return new SnapshottableDirectoryStatus(
      status.getModificationTime(),
      status.getAccessTime(),
      PBHelper.convert(status.getPermission()),
      status.getOwner(),
      status.getGroup(),
      status.getPath().toByteArray(),
      status.getFileId(),
      status.getChildrenNum(),
      sdirStatusProto.getSnapshotNumber(),
      sdirStatusProto.getSnapshotQuota(),
      sdirStatusProto.getParentFullpath().toByteArray());
}
项目:big-c    文件:PBHelper.java   
public static SnapshottableDirectoryStatusProto convert(
    SnapshottableDirectoryStatus status) {
  if (status == null) {
    return null;
  }
  int snapshotNumber = status.getSnapshotNumber();
  int snapshotQuota = status.getSnapshotQuota();
  byte[] parentFullPath = status.getParentFullPath();
  ByteString parentFullPathBytes = ByteString.copyFrom(
      parentFullPath == null ? DFSUtil.EMPTY_BYTES : parentFullPath);
  HdfsFileStatusProto fs = convert(status.getDirStatus());
  SnapshottableDirectoryStatusProto.Builder builder = 
      SnapshottableDirectoryStatusProto
      .newBuilder().setSnapshotNumber(snapshotNumber)
      .setSnapshotQuota(snapshotQuota).setParentFullpath(parentFullPathBytes)
      .setDirStatus(fs);
  return builder.build();
}
项目:big-c    文件:PBHelper.java   
public static SnapshottableDirectoryStatus[] convert(
    SnapshottableDirectoryListingProto sdlp) {
  if (sdlp == null)
    return null;
  List<SnapshottableDirectoryStatusProto> list = sdlp
      .getSnapshottableDirListingList();
  if (list.isEmpty()) {
    return new SnapshottableDirectoryStatus[0];
  } else {
    SnapshottableDirectoryStatus[] result = 
        new SnapshottableDirectoryStatus[list.size()];
    for (int i = 0; i < list.size(); i++) {
      result[i] = PBHelper.convert(list.get(i));
    }
    return result;
  }
}
项目:big-c    文件:ClientNamenodeProtocolServerSideTranslatorPB.java   
@Override
public GetSnapshottableDirListingResponseProto getSnapshottableDirListing(
    RpcController controller, GetSnapshottableDirListingRequestProto request)
    throws ServiceException {
  try {
    SnapshottableDirectoryStatus[] result = server
        .getSnapshottableDirListing();
    if (result != null) {
      return GetSnapshottableDirListingResponseProto.newBuilder().
          setSnapshottableDirList(PBHelper.convert(result)).build();
    } else {
      return NULL_GET_SNAPSHOTTABLE_DIR_LISTING_RESPONSE;
    }
  } catch (IOException e) {
    throw new ServiceException(e);
  }
}
项目:big-c    文件:ClientNamenodeProtocolTranslatorPB.java   
@Override
public SnapshottableDirectoryStatus[] getSnapshottableDirListing()
    throws IOException {
  GetSnapshottableDirListingRequestProto req = 
      GetSnapshottableDirListingRequestProto.newBuilder().build();
  try {
    GetSnapshottableDirListingResponseProto result = rpcProxy
        .getSnapshottableDirListing(null, req);

    if (result.hasSnapshottableDirList()) {
      return PBHelper.convert(result.getSnapshottableDirList());
    }
    return null;
  } catch (ServiceException e) {
    throw ProtobufHelper.getRemoteException(e);
  }
}
项目:hadoop-2.6.0-cdh5.4.3    文件:FSNamesystem.java   
/**
 * Get the list of snapshottable directories that are owned 
 * by the current user. Return all the snapshottable directories if the 
 * current user is a super user.
 * @return The list of all the current snapshottable directories
 * @throws IOException
 */
public SnapshottableDirectoryStatus[] getSnapshottableDirListing()
    throws IOException {
  SnapshottableDirectoryStatus[] status = null;
  checkOperation(OperationCategory.READ);
  final FSPermissionChecker checker = getPermissionChecker();
  readLock();
  try {
    checkOperation(OperationCategory.READ);
    final String user = checker.isSuperUser()? null : checker.getUser();
    status = snapshotManager.getSnapshottableDirListing(user);
  } finally {
    readUnlock();
  }
  if (auditLog.isInfoEnabled() && isExternalInvocation()) {
    logAuditEvent(true, "listSnapshottableDirectory", null, null, null);
  }
  return status;
}
项目:hadoop-2.6.0-cdh5.4.3    文件:PBHelper.java   
public static SnapshottableDirectoryStatus convert(
    SnapshottableDirectoryStatusProto sdirStatusProto) {
  if (sdirStatusProto == null) {
    return null;
  }
  final HdfsFileStatusProto status = sdirStatusProto.getDirStatus();
  return new SnapshottableDirectoryStatus(
      status.getModificationTime(),
      status.getAccessTime(),
      PBHelper.convert(status.getPermission()),
      status.getOwner(),
      status.getGroup(),
      status.getPath().toByteArray(),
      status.getFileId(),
      status.getChildrenNum(),
      sdirStatusProto.getSnapshotNumber(),
      sdirStatusProto.getSnapshotQuota(),
      sdirStatusProto.getParentFullpath().toByteArray());
}
项目:hadoop-2.6.0-cdh5.4.3    文件:PBHelper.java   
public static SnapshottableDirectoryStatusProto convert(
    SnapshottableDirectoryStatus status) {
  if (status == null) {
    return null;
  }
  int snapshotNumber = status.getSnapshotNumber();
  int snapshotQuota = status.getSnapshotQuota();
  byte[] parentFullPath = status.getParentFullPath();
  ByteString parentFullPathBytes = ByteString.copyFrom(
      parentFullPath == null ? DFSUtil.EMPTY_BYTES : parentFullPath);
  HdfsFileStatusProto fs = convert(status.getDirStatus());
  SnapshottableDirectoryStatusProto.Builder builder = 
      SnapshottableDirectoryStatusProto
      .newBuilder().setSnapshotNumber(snapshotNumber)
      .setSnapshotQuota(snapshotQuota).setParentFullpath(parentFullPathBytes)
      .setDirStatus(fs);
  return builder.build();
}
项目:hadoop-2.6.0-cdh5.4.3    文件:PBHelper.java   
public static SnapshottableDirectoryStatus[] convert(
    SnapshottableDirectoryListingProto sdlp) {
  if (sdlp == null)
    return null;
  List<SnapshottableDirectoryStatusProto> list = sdlp
      .getSnapshottableDirListingList();
  if (list.isEmpty()) {
    return new SnapshottableDirectoryStatus[0];
  } else {
    SnapshottableDirectoryStatus[] result = 
        new SnapshottableDirectoryStatus[list.size()];
    for (int i = 0; i < list.size(); i++) {
      result[i] = PBHelper.convert(list.get(i));
    }
    return result;
  }
}
项目:hadoop-2.6.0-cdh5.4.3    文件:ClientNamenodeProtocolServerSideTranslatorPB.java   
@Override
public GetSnapshottableDirListingResponseProto getSnapshottableDirListing(
    RpcController controller, GetSnapshottableDirListingRequestProto request)
    throws ServiceException {
  try {
    SnapshottableDirectoryStatus[] result = server
        .getSnapshottableDirListing();
    if (result != null) {
      return GetSnapshottableDirListingResponseProto.newBuilder().
          setSnapshottableDirList(PBHelper.convert(result)).build();
    } else {
      return NULL_GET_SNAPSHOTTABLE_DIR_LISTING_RESPONSE;
    }
  } catch (IOException e) {
    throw new ServiceException(e);
  }
}
项目:hadoop-2.6.0-cdh5.4.3    文件:ClientNamenodeProtocolTranslatorPB.java   
@Override
public SnapshottableDirectoryStatus[] getSnapshottableDirListing()
    throws IOException {
  GetSnapshottableDirListingRequestProto req = 
      GetSnapshottableDirListingRequestProto.newBuilder().build();
  try {
    GetSnapshottableDirListingResponseProto result = rpcProxy
        .getSnapshottableDirListing(null, req);

    if (result.hasSnapshottableDirList()) {
      return PBHelper.convert(result.getSnapshottableDirList());
    }
    return null;
  } catch (ServiceException e) {
    throw ProtobufHelper.getRemoteException(e);
  }
}
项目:hadoop-plus    文件:FSNamesystem.java   
/**
 * Get the list of snapshottable directories that are owned 
 * by the current user. Return all the snapshottable directories if the 
 * current user is a super user.
 * @return The list of all the current snapshottable directories
 * @throws IOException
 */
public SnapshottableDirectoryStatus[] getSnapshottableDirListing()
    throws IOException {
  SnapshottableDirectoryStatus[] status = null;
  readLock();
  try {
    checkOperation(OperationCategory.READ);
    FSPermissionChecker checker = getPermissionChecker();
    final String user = checker.isSuperUser()? null : checker.getUser();
    status = snapshotManager.getSnapshottableDirListing(user);
  } finally {
    readUnlock();
  }
  if (auditLog.isInfoEnabled() && isExternalInvocation()) {
    logAuditEvent(true, "listSnapshottableDirectory", null, null, null);
  }
  return status;
}
项目:hadoop-plus    文件:SnapshotManager.java   
/**
 * 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 (INodeDirectorySnapshottable 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(null),
          dir.getNumSnapshots(),
          dir.getSnapshotQuota(), dir.getParent() == null ? 
              DFSUtil.EMPTY_BYTES : 
              DFSUtil.string2Bytes(dir.getParent().getFullPathName()));
      statusList.add(status);
    }
  }
  Collections.sort(statusList, SnapshottableDirectoryStatus.COMPARATOR);
  return statusList.toArray(
      new SnapshottableDirectoryStatus[statusList.size()]);
}
项目:hadoop-plus    文件:PBHelper.java   
public static SnapshottableDirectoryStatus convert(
    SnapshottableDirectoryStatusProto sdirStatusProto) {
  if (sdirStatusProto == null) {
    return null;
  }
  final HdfsFileStatusProto status = sdirStatusProto.getDirStatus();
  return new SnapshottableDirectoryStatus(
      status.getModificationTime(),
      status.getAccessTime(),
      PBHelper.convert(status.getPermission()),
      status.getOwner(),
      status.getGroup(),
      status.getPath().toByteArray(),
      status.getFileId(),
      status.getChildrenNum(),
      sdirStatusProto.getSnapshotNumber(),
      sdirStatusProto.getSnapshotQuota(),
      sdirStatusProto.getParentFullpath().toByteArray());
}
项目:hadoop-plus    文件:PBHelper.java   
public static SnapshottableDirectoryStatusProto convert(
    SnapshottableDirectoryStatus status) {
  if (status == null) {
    return null;
  }
  int snapshotNumber = status.getSnapshotNumber();
  int snapshotQuota = status.getSnapshotQuota();
  byte[] parentFullPath = status.getParentFullPath();
  ByteString parentFullPathBytes = ByteString.copyFrom(
      parentFullPath == null ? DFSUtil.EMPTY_BYTES : parentFullPath);
  HdfsFileStatusProto fs = convert(status.getDirStatus());
  SnapshottableDirectoryStatusProto.Builder builder = 
      SnapshottableDirectoryStatusProto
      .newBuilder().setSnapshotNumber(snapshotNumber)
      .setSnapshotQuota(snapshotQuota).setParentFullpath(parentFullPathBytes)
      .setDirStatus(fs);
  return builder.build();
}
项目:hadoop-plus    文件:PBHelper.java   
public static SnapshottableDirectoryStatus[] convert(
    SnapshottableDirectoryListingProto sdlp) {
  if (sdlp == null)
    return null;
  List<SnapshottableDirectoryStatusProto> list = sdlp
      .getSnapshottableDirListingList();
  if (list.isEmpty()) {
    return new SnapshottableDirectoryStatus[0];
  } else {
    SnapshottableDirectoryStatus[] result = 
        new SnapshottableDirectoryStatus[list.size()];
    for (int i = 0; i < list.size(); i++) {
      result[i] = PBHelper.convert(list.get(i));
    }
    return result;
  }
}
项目:hadoop-plus    文件:ClientNamenodeProtocolServerSideTranslatorPB.java   
@Override
public GetSnapshottableDirListingResponseProto getSnapshottableDirListing(
    RpcController controller, GetSnapshottableDirListingRequestProto request)
    throws ServiceException {
  try {
    SnapshottableDirectoryStatus[] result = server
        .getSnapshottableDirListing();
    if (result != null) {
      return GetSnapshottableDirListingResponseProto.newBuilder().
          setSnapshottableDirList(PBHelper.convert(result)).build();
    } else {
      return NULL_GET_SNAPSHOTTABLE_DIR_LISTING_RESPONSE;
    }
  } catch (IOException e) {
    throw new ServiceException(e);
  }
}
项目:hadoop-plus    文件:ClientNamenodeProtocolTranslatorPB.java   
@Override
public SnapshottableDirectoryStatus[] getSnapshottableDirListing()
    throws IOException {
  GetSnapshottableDirListingRequestProto req = 
      GetSnapshottableDirListingRequestProto.newBuilder().build();
  try {
    GetSnapshottableDirListingResponseProto result = rpcProxy
        .getSnapshottableDirListing(null, req);

    if (result.hasSnapshottableDirList()) {
      return PBHelper.convert(result.getSnapshottableDirList());
    }
    return null;
  } catch (ServiceException e) {
    throw ProtobufHelper.getRemoteException(e);
  }
}
项目:FlexMap    文件:FSNamesystem.java   
/**
 * Get the list of snapshottable directories that are owned 
 * by the current user. Return all the snapshottable directories if the 
 * current user is a super user.
 * @return The list of all the current snapshottable directories
 * @throws IOException
 */
public SnapshottableDirectoryStatus[] getSnapshottableDirListing()
    throws IOException {
  SnapshottableDirectoryStatus[] status = null;
  checkOperation(OperationCategory.READ);
  final FSPermissionChecker checker = getPermissionChecker();
  readLock();
  try {
    checkOperation(OperationCategory.READ);
    final String user = checker.isSuperUser()? null : checker.getUser();
    status = snapshotManager.getSnapshottableDirListing(user);
  } finally {
    readUnlock();
  }
  if (auditLog.isInfoEnabled() && isExternalInvocation()) {
    logAuditEvent(true, "listSnapshottableDirectory", null, null, null);
  }
  return status;
}
项目:FlexMap    文件:PBHelper.java   
public static SnapshottableDirectoryStatus convert(
    SnapshottableDirectoryStatusProto sdirStatusProto) {
  if (sdirStatusProto == null) {
    return null;
  }
  final HdfsFileStatusProto status = sdirStatusProto.getDirStatus();
  return new SnapshottableDirectoryStatus(
      status.getModificationTime(),
      status.getAccessTime(),
      PBHelper.convert(status.getPermission()),
      status.getOwner(),
      status.getGroup(),
      status.getPath().toByteArray(),
      status.getFileId(),
      status.getChildrenNum(),
      sdirStatusProto.getSnapshotNumber(),
      sdirStatusProto.getSnapshotQuota(),
      sdirStatusProto.getParentFullpath().toByteArray());
}
项目:FlexMap    文件:PBHelper.java   
public static SnapshottableDirectoryStatusProto convert(
    SnapshottableDirectoryStatus status) {
  if (status == null) {
    return null;
  }
  int snapshotNumber = status.getSnapshotNumber();
  int snapshotQuota = status.getSnapshotQuota();
  byte[] parentFullPath = status.getParentFullPath();
  ByteString parentFullPathBytes = ByteString.copyFrom(
      parentFullPath == null ? DFSUtil.EMPTY_BYTES : parentFullPath);
  HdfsFileStatusProto fs = convert(status.getDirStatus());
  SnapshottableDirectoryStatusProto.Builder builder = 
      SnapshottableDirectoryStatusProto
      .newBuilder().setSnapshotNumber(snapshotNumber)
      .setSnapshotQuota(snapshotQuota).setParentFullpath(parentFullPathBytes)
      .setDirStatus(fs);
  return builder.build();
}
项目:FlexMap    文件:PBHelper.java   
public static SnapshottableDirectoryStatus[] convert(
    SnapshottableDirectoryListingProto sdlp) {
  if (sdlp == null)
    return null;
  List<SnapshottableDirectoryStatusProto> list = sdlp
      .getSnapshottableDirListingList();
  if (list.isEmpty()) {
    return new SnapshottableDirectoryStatus[0];
  } else {
    SnapshottableDirectoryStatus[] result = 
        new SnapshottableDirectoryStatus[list.size()];
    for (int i = 0; i < list.size(); i++) {
      result[i] = PBHelper.convert(list.get(i));
    }
    return result;
  }
}
项目:FlexMap    文件:ClientNamenodeProtocolServerSideTranslatorPB.java   
@Override
public GetSnapshottableDirListingResponseProto getSnapshottableDirListing(
    RpcController controller, GetSnapshottableDirListingRequestProto request)
    throws ServiceException {
  try {
    SnapshottableDirectoryStatus[] result = server
        .getSnapshottableDirListing();
    if (result != null) {
      return GetSnapshottableDirListingResponseProto.newBuilder().
          setSnapshottableDirList(PBHelper.convert(result)).build();
    } else {
      return NULL_GET_SNAPSHOTTABLE_DIR_LISTING_RESPONSE;
    }
  } catch (IOException e) {
    throw new ServiceException(e);
  }
}
项目:FlexMap    文件:ClientNamenodeProtocolTranslatorPB.java   
@Override
public SnapshottableDirectoryStatus[] getSnapshottableDirListing()
    throws IOException {
  GetSnapshottableDirListingRequestProto req = 
      GetSnapshottableDirListingRequestProto.newBuilder().build();
  try {
    GetSnapshottableDirListingResponseProto result = rpcProxy
        .getSnapshottableDirListing(null, req);

    if (result.hasSnapshottableDirList()) {
      return PBHelper.convert(result.getSnapshottableDirList());
    }
    return null;
  } catch (ServiceException e) {
    throw ProtobufHelper.getRemoteException(e);
  }
}
项目:raccovery    文件:Utils.java   
public static void checkSnapshottableDirs(Volume[] volumes) throws IOException {
    for (Volume v : volumes) {
        LOG.debug("Checking to see if Volume {} has snapshots enabled", v.getBasePath());
        FileSystem fs = v.getFileSystem();
        if (fs instanceof DistributedFileSystem) {
            DistributedFileSystem dfs = (DistributedFileSystem) fs;
            SnapshottableDirectoryStatus[] snaps = dfs.getSnapshottableDirListing();
            boolean found = false;
            if (null != snaps) {
                for (SnapshottableDirectoryStatus snap : snaps) {
                    LOG.trace("Snapshots enabled for directory: {}", snap.getFullPath());
                    if (v.getBasePath().equals(snap.getFullPath().toString())) {
                        found = true;
                        LOG.debug("Snapshots enabled for Volume {}", v);
                        break;
                    }
                }
            }
            if (!found) {
                throw new RuntimeException(v.toString() + " is not configured for snapshots.");
            }
        } else {
            throw new RuntimeException("Configured Accumulo volume is not an HDFS DistributedFileSystem.");
        }
    }
}
项目:hadoop-TCP    文件:FSNamesystem.java   
/**
 * Get the list of snapshottable directories that are owned 
 * by the current user. Return all the snapshottable directories if the 
 * current user is a super user.
 * @return The list of all the current snapshottable directories
 * @throws IOException
 */
public SnapshottableDirectoryStatus[] getSnapshottableDirListing()
    throws IOException {
  SnapshottableDirectoryStatus[] status = null;
  final FSPermissionChecker checker = getPermissionChecker();
  readLock();
  try {
    checkOperation(OperationCategory.READ);
    final String user = checker.isSuperUser()? null : checker.getUser();
    status = snapshotManager.getSnapshottableDirListing(user);
  } finally {
    readUnlock();
  }
  if (auditLog.isInfoEnabled() && isExternalInvocation()) {
    logAuditEvent(true, "listSnapshottableDirectory", null, null, null);
  }
  return status;
}
项目:hadoop-TCP    文件:SnapshotManager.java   
/**
 * 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 (INodeDirectorySnapshottable 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(null),
          dir.getNumSnapshots(),
          dir.getSnapshotQuota(), dir.getParent() == null ? 
              DFSUtil.EMPTY_BYTES : 
              DFSUtil.string2Bytes(dir.getParent().getFullPathName()));
      statusList.add(status);
    }
  }
  Collections.sort(statusList, SnapshottableDirectoryStatus.COMPARATOR);
  return statusList.toArray(
      new SnapshottableDirectoryStatus[statusList.size()]);
}