Java Code Examples for org.apache.hadoop.fs.permission.FsPermission#getAclBit()

The following examples show how to use org.apache.hadoop.fs.permission.FsPermission#getAclBit() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: AclCommands.java    From hadoop with Apache License 2.0 6 votes vote down vote up
@Override
protected void processPath(PathData item) throws IOException {
  out.println("# file: " + item);
  out.println("# owner: " + item.stat.getOwner());
  out.println("# group: " + item.stat.getGroup());
  FsPermission perm = item.stat.getPermission();
  if (perm.getStickyBit()) {
    out.println("# flags: --" +
      (perm.getOtherAction().implies(FsAction.EXECUTE) ? "t" : "T"));
  }

  AclStatus aclStatus = item.fs.getAclStatus(item.path);
  List<AclEntry> entries = perm.getAclBit() ? aclStatus.getEntries()
      : Collections.<AclEntry> emptyList();
  ScopedAclEntries scopedEntries = new ScopedAclEntries(
    AclUtil.getAclFromPermAndEntries(perm, entries));
  printAclEntriesForSingleScope(aclStatus, perm,
      scopedEntries.getAccessEntries());
  printAclEntriesForSingleScope(aclStatus, perm,
      scopedEntries.getDefaultEntries());
  out.println();
}
 
Example 2
Source File: AclCommands.java    From big-c with Apache License 2.0 6 votes vote down vote up
@Override
protected void processPath(PathData item) throws IOException {
  out.println("# file: " + item);
  out.println("# owner: " + item.stat.getOwner());
  out.println("# group: " + item.stat.getGroup());
  FsPermission perm = item.stat.getPermission();
  if (perm.getStickyBit()) {
    out.println("# flags: --" +
      (perm.getOtherAction().implies(FsAction.EXECUTE) ? "t" : "T"));
  }

  AclStatus aclStatus = item.fs.getAclStatus(item.path);
  List<AclEntry> entries = perm.getAclBit() ? aclStatus.getEntries()
      : Collections.<AclEntry> emptyList();
  ScopedAclEntries scopedEntries = new ScopedAclEntries(
    AclUtil.getAclFromPermAndEntries(perm, entries));
  printAclEntriesForSingleScope(aclStatus, perm,
      scopedEntries.getAccessEntries());
  printAclEntriesForSingleScope(aclStatus, perm,
      scopedEntries.getDefaultEntries());
  out.println();
}
 
Example 3
Source File: JsonUtil.java    From hadoop with Apache License 2.0 5 votes vote down vote up
/** Convert a HdfsFileStatus object to a Json string. */
public static String toJsonString(final HdfsFileStatus status,
    boolean includeType) {
  if (status == null) {
    return null;
  }
  final Map<String, Object> m = new TreeMap<String, Object>();
  m.put("pathSuffix", status.getLocalName());
  m.put("type", PathType.valueOf(status));
  if (status.isSymlink()) {
    m.put("symlink", status.getSymlink());
  }

  m.put("length", status.getLen());
  m.put("owner", status.getOwner());
  m.put("group", status.getGroup());
  FsPermission perm = status.getPermission();
  m.put("permission", toString(perm));
  if (perm.getAclBit()) {
    m.put("aclBit", true);
  }
  if (perm.getEncryptedBit()) {
    m.put("encBit", true);
  }
  m.put("accessTime", status.getAccessTime());
  m.put("modificationTime", status.getModificationTime());
  m.put("blockSize", status.getBlockSize());
  m.put("replication", status.getReplication());
  m.put("fileId", status.getFileId());
  m.put("childrenNum", status.getChildrenNum());
  m.put("storagePolicy", status.getStoragePolicy());
  ObjectMapper mapper = new ObjectMapper();
  try {
    return includeType ?
        toJsonString(FileStatus.class, m) : mapper.writeValueAsString(m);
  } catch (IOException ignored) {
  }
  return null;
}
 
Example 4
Source File: JsonUtil.java    From hadoop with Apache License 2.0 5 votes vote down vote up
/** Convert a AclStatus object to a Json string. */
public static String toJsonString(final AclStatus status) {
  if (status == null) {
    return null;
  }

  final Map<String, Object> m = new TreeMap<String, Object>();
  m.put("owner", status.getOwner());
  m.put("group", status.getGroup());
  m.put("stickyBit", status.isStickyBit());

  final List<String> stringEntries = new ArrayList<>();
  for (AclEntry entry : status.getEntries()) {
    stringEntries.add(entry.toString());
  }
  m.put("entries", stringEntries);

  FsPermission perm = status.getPermission();
  if (perm != null) {
    m.put("permission", toString(perm));
    if (perm.getAclBit()) {
      m.put("aclBit", true);
    }
    if (perm.getEncryptedBit()) {
      m.put("encBit", true);
    }
  }
  final Map<String, Map<String, Object>> finalMap =
      new TreeMap<String, Map<String, Object>>();
  finalMap.put(AclStatus.class.getSimpleName(), m);

  ObjectMapper mapper = new ObjectMapper();
  try {
    return mapper.writeValueAsString(finalMap);
  } catch (IOException ignored) {
  }
  return null;
}
 
Example 5
Source File: DistCpUtils.java    From hadoop with Apache License 2.0 5 votes vote down vote up
/**
 * Converts a FileStatus to a CopyListingFileStatus.  If preserving ACLs,
 * populates the CopyListingFileStatus with the ACLs. If preserving XAttrs,
 * populates the CopyListingFileStatus with the XAttrs.
 *
 * @param fileSystem FileSystem containing the file
 * @param fileStatus FileStatus of file
 * @param preserveAcls boolean true if preserving ACLs
 * @param preserveXAttrs boolean true if preserving XAttrs
 * @param preserveRawXAttrs boolean true if preserving raw.* XAttrs
 * @throws IOException if there is an I/O error
 */
public static CopyListingFileStatus toCopyListingFileStatus(
    FileSystem fileSystem, FileStatus fileStatus, boolean preserveAcls, 
    boolean preserveXAttrs, boolean preserveRawXAttrs) throws IOException {
  CopyListingFileStatus copyListingFileStatus =
    new CopyListingFileStatus(fileStatus);
  if (preserveAcls) {
    FsPermission perm = fileStatus.getPermission();
    if (perm.getAclBit()) {
      List<AclEntry> aclEntries = fileSystem.getAclStatus(
        fileStatus.getPath()).getEntries();
      copyListingFileStatus.setAclEntries(aclEntries);
    }
  }
  if (preserveXAttrs || preserveRawXAttrs) {
    Map<String, byte[]> srcXAttrs = fileSystem.getXAttrs(fileStatus.getPath());
    if (preserveXAttrs && preserveRawXAttrs) {
       copyListingFileStatus.setXAttrs(srcXAttrs);
    } else {
      Map<String, byte[]> trgXAttrs = Maps.newHashMap();
      final String rawNS =
          StringUtils.toLowerCase(XAttr.NameSpace.RAW.name());
      for (Map.Entry<String, byte[]> ent : srcXAttrs.entrySet()) {
        final String xattrName = ent.getKey();
        if (xattrName.startsWith(rawNS)) {
          if (preserveRawXAttrs) {
            trgXAttrs.put(xattrName, ent.getValue());
          }
        } else if (preserveXAttrs) {
          trgXAttrs.put(xattrName, ent.getValue());
        }
      }
      copyListingFileStatus.setXAttrs(trgXAttrs);
    }
  }
  return copyListingFileStatus;
}
 
Example 6
Source File: JsonUtil.java    From big-c with Apache License 2.0 5 votes vote down vote up
/** Convert a HdfsFileStatus object to a Json string. */
public static String toJsonString(final HdfsFileStatus status,
    boolean includeType) {
  if (status == null) {
    return null;
  }
  final Map<String, Object> m = new TreeMap<String, Object>();
  m.put("pathSuffix", status.getLocalName());
  m.put("type", PathType.valueOf(status));
  if (status.isSymlink()) {
    m.put("symlink", status.getSymlink());
  }

  m.put("length", status.getLen());
  m.put("owner", status.getOwner());
  m.put("group", status.getGroup());
  FsPermission perm = status.getPermission();
  m.put("permission", toString(perm));
  if (perm.getAclBit()) {
    m.put("aclBit", true);
  }
  if (perm.getEncryptedBit()) {
    m.put("encBit", true);
  }
  m.put("accessTime", status.getAccessTime());
  m.put("modificationTime", status.getModificationTime());
  m.put("blockSize", status.getBlockSize());
  m.put("replication", status.getReplication());
  m.put("fileId", status.getFileId());
  m.put("childrenNum", status.getChildrenNum());
  m.put("storagePolicy", status.getStoragePolicy());
  ObjectMapper mapper = new ObjectMapper();
  try {
    return includeType ?
        toJsonString(FileStatus.class, m) : mapper.writeValueAsString(m);
  } catch (IOException ignored) {
  }
  return null;
}
 
Example 7
Source File: JsonUtil.java    From big-c with Apache License 2.0 5 votes vote down vote up
/** Convert a AclStatus object to a Json string. */
public static String toJsonString(final AclStatus status) {
  if (status == null) {
    return null;
  }

  final Map<String, Object> m = new TreeMap<String, Object>();
  m.put("owner", status.getOwner());
  m.put("group", status.getGroup());
  m.put("stickyBit", status.isStickyBit());

  final List<String> stringEntries = new ArrayList<>();
  for (AclEntry entry : status.getEntries()) {
    stringEntries.add(entry.toString());
  }
  m.put("entries", stringEntries);

  FsPermission perm = status.getPermission();
  if (perm != null) {
    m.put("permission", toString(perm));
    if (perm.getAclBit()) {
      m.put("aclBit", true);
    }
    if (perm.getEncryptedBit()) {
      m.put("encBit", true);
    }
  }
  final Map<String, Map<String, Object>> finalMap =
      new TreeMap<String, Map<String, Object>>();
  finalMap.put(AclStatus.class.getSimpleName(), m);

  ObjectMapper mapper = new ObjectMapper();
  try {
    return mapper.writeValueAsString(finalMap);
  } catch (IOException ignored) {
  }
  return null;
}
 
Example 8
Source File: DistCpUtils.java    From big-c with Apache License 2.0 5 votes vote down vote up
/**
 * Converts a FileStatus to a CopyListingFileStatus.  If preserving ACLs,
 * populates the CopyListingFileStatus with the ACLs. If preserving XAttrs,
 * populates the CopyListingFileStatus with the XAttrs.
 *
 * @param fileSystem FileSystem containing the file
 * @param fileStatus FileStatus of file
 * @param preserveAcls boolean true if preserving ACLs
 * @param preserveXAttrs boolean true if preserving XAttrs
 * @param preserveRawXAttrs boolean true if preserving raw.* XAttrs
 * @throws IOException if there is an I/O error
 */
public static CopyListingFileStatus toCopyListingFileStatus(
    FileSystem fileSystem, FileStatus fileStatus, boolean preserveAcls, 
    boolean preserveXAttrs, boolean preserveRawXAttrs) throws IOException {
  CopyListingFileStatus copyListingFileStatus =
    new CopyListingFileStatus(fileStatus);
  if (preserveAcls) {
    FsPermission perm = fileStatus.getPermission();
    if (perm.getAclBit()) {
      List<AclEntry> aclEntries = fileSystem.getAclStatus(
        fileStatus.getPath()).getEntries();
      copyListingFileStatus.setAclEntries(aclEntries);
    }
  }
  if (preserveXAttrs || preserveRawXAttrs) {
    Map<String, byte[]> srcXAttrs = fileSystem.getXAttrs(fileStatus.getPath());
    if (preserveXAttrs && preserveRawXAttrs) {
       copyListingFileStatus.setXAttrs(srcXAttrs);
    } else {
      Map<String, byte[]> trgXAttrs = Maps.newHashMap();
      final String rawNS =
          StringUtils.toLowerCase(XAttr.NameSpace.RAW.name());
      for (Map.Entry<String, byte[]> ent : srcXAttrs.entrySet()) {
        final String xattrName = ent.getKey();
        if (xattrName.startsWith(rawNS)) {
          if (preserveRawXAttrs) {
            trgXAttrs.put(xattrName, ent.getValue());
          }
        } else if (preserveXAttrs) {
          trgXAttrs.put(xattrName, ent.getValue());
        }
      }
      copyListingFileStatus.setXAttrs(trgXAttrs);
    }
  }
  return copyListingFileStatus;
}
 
Example 9
Source File: CommandWithDestination.java    From hadoop with Apache License 2.0 4 votes vote down vote up
/**
 * Preserve the attributes of the source to the target.
 * The method calls {@link #shouldPreserve(FileAttribute)} to check what
 * attribute to preserve.
 * @param src source to preserve
 * @param target where to preserve attributes
 * @param preserveRawXAttrs true if raw.* xattrs should be preserved
 * @throws IOException if fails to preserve attributes
 */
protected void preserveAttributes(PathData src, PathData target,
    boolean preserveRawXAttrs)
    throws IOException {
  if (shouldPreserve(FileAttribute.TIMESTAMPS)) {
    target.fs.setTimes(
        target.path,
        src.stat.getModificationTime(),
        src.stat.getAccessTime());
  }
  if (shouldPreserve(FileAttribute.OWNERSHIP)) {
    target.fs.setOwner(
        target.path,
        src.stat.getOwner(),
        src.stat.getGroup());
  }
  if (shouldPreserve(FileAttribute.PERMISSION) ||
      shouldPreserve(FileAttribute.ACL)) {
    target.fs.setPermission(
        target.path,
        src.stat.getPermission());
  }
  if (shouldPreserve(FileAttribute.ACL)) {
    FsPermission perm = src.stat.getPermission();
    if (perm.getAclBit()) {
      List<AclEntry> srcEntries =
          src.fs.getAclStatus(src.path).getEntries();
      List<AclEntry> srcFullEntries =
          AclUtil.getAclFromPermAndEntries(perm, srcEntries);
      target.fs.setAcl(target.path, srcFullEntries);
    }
  }
  final boolean preserveXAttrs = shouldPreserve(FileAttribute.XATTR);
  if (preserveXAttrs || preserveRawXAttrs) {
    Map<String, byte[]> srcXAttrs = src.fs.getXAttrs(src.path);
    if (srcXAttrs != null) {
      Iterator<Entry<String, byte[]>> iter = srcXAttrs.entrySet().iterator();
      while (iter.hasNext()) {
        Entry<String, byte[]> entry = iter.next();
        final String xattrName = entry.getKey();
        if (xattrName.startsWith(RAW) || preserveXAttrs) {
          target.fs.setXAttr(target.path, entry.getKey(), entry.getValue());
        }
      }
    }
  }
}
 
Example 10
Source File: CommandWithDestination.java    From big-c with Apache License 2.0 4 votes vote down vote up
/**
 * Preserve the attributes of the source to the target.
 * The method calls {@link #shouldPreserve(FileAttribute)} to check what
 * attribute to preserve.
 * @param src source to preserve
 * @param target where to preserve attributes
 * @param preserveRawXAttrs true if raw.* xattrs should be preserved
 * @throws IOException if fails to preserve attributes
 */
protected void preserveAttributes(PathData src, PathData target,
    boolean preserveRawXAttrs)
    throws IOException {
  if (shouldPreserve(FileAttribute.TIMESTAMPS)) {
    target.fs.setTimes(
        target.path,
        src.stat.getModificationTime(),
        src.stat.getAccessTime());
  }
  if (shouldPreserve(FileAttribute.OWNERSHIP)) {
    target.fs.setOwner(
        target.path,
        src.stat.getOwner(),
        src.stat.getGroup());
  }
  if (shouldPreserve(FileAttribute.PERMISSION) ||
      shouldPreserve(FileAttribute.ACL)) {
    target.fs.setPermission(
        target.path,
        src.stat.getPermission());
  }
  if (shouldPreserve(FileAttribute.ACL)) {
    FsPermission perm = src.stat.getPermission();
    if (perm.getAclBit()) {
      List<AclEntry> srcEntries =
          src.fs.getAclStatus(src.path).getEntries();
      List<AclEntry> srcFullEntries =
          AclUtil.getAclFromPermAndEntries(perm, srcEntries);
      target.fs.setAcl(target.path, srcFullEntries);
    }
  }
  final boolean preserveXAttrs = shouldPreserve(FileAttribute.XATTR);
  if (preserveXAttrs || preserveRawXAttrs) {
    Map<String, byte[]> srcXAttrs = src.fs.getXAttrs(src.path);
    if (srcXAttrs != null) {
      Iterator<Entry<String, byte[]>> iter = srcXAttrs.entrySet().iterator();
      while (iter.hasNext()) {
        Entry<String, byte[]> entry = iter.next();
        final String xattrName = entry.getKey();
        if (xattrName.startsWith(RAW) || preserveXAttrs) {
          target.fs.setXAttr(target.path, entry.getKey(), entry.getValue());
        }
      }
    }
  }
}