private List<Map<String, Object>> getFileStatusList(String path) throws IOException { List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); long id = lookup(path); FsImageProto.INodeSection.INode inode = fromINodeId(id); if (inode.getType() == FsImageProto.INodeSection.INode.Type.DIRECTORY) { if (!dirmap.containsKey(id)) { // if the directory is empty, return empty list return list; } long[] children = dirmap.get(id); for (long cid : children) { list.add(getFileStatus(fromINodeId(cid), true)); } } else { list.add(getFileStatus(inode, false)); } return list; }
private Map<String, Object> getFileStatus (FsImageProto.INodeSection.INode inode, boolean printSuffix){ Map<String, Object> map = Maps.newHashMap(); switch (inode.getType()) { case FILE: { FsImageProto.INodeSection.INodeFile f = inode.getFile(); map.put("replication", f.getReplication()); map.put("type", inode.getType()); map.put("fileId", inode.getId()); map.put("childrenNum", 0); map.put("permission", toString(p.getPermission())); map.put("replication", 0); map.put("type", inode.getType()); map.put("fileId", inode.getId()); map.put("childrenNum", dirmap.containsKey(inode.getId()) ? map.put("permission", toString(p.getPermission())); map.put("replication", 0); map.put("type", inode.getType()); map.put("symlink", d.getTarget().toStringUtf8()); map.put("fileId", inode.getId());
private List<Map<String, Object>> getFileStatusList(String path) throws IOException { List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); long id = lookup(path); FsImageProto.INodeSection.INode inode = fromINodeId(id); if (inode.getType() == FsImageProto.INodeSection.INode.Type.DIRECTORY) { if (!dirmap.containsKey(id)) { // if the directory is empty, return empty list return list; } long[] children = dirmap.get(id); for (long cid : children) { list.add(getFileStatus(fromINodeId(cid), true)); } } else { list.add(getFileStatus(inode, false)); } return list; }
private INode loadINode(INodeSection.INode n) { switch (n.getType()) { case FILE: return loadINodeFile(n); case DIRECTORY: return loadINodeDirectory(n, parent.getLoaderContext()); case SYMLINK: return loadINodeSymlink(n); default: break; } return null; }
private INode loadINode(INodeSection.INode n) { switch (n.getType()) { case FILE: return loadINodeFile(n); case DIRECTORY: return loadINodeDirectory(n, parent.getLoaderContext()); case SYMLINK: return loadINodeSymlink(n); default: break; } return null; }
private INodeSymlink loadINodeSymlink(INodeSection.INode n) { assert n.getType() == INodeSection.INode.Type.SYMLINK; INodeSection.INodeSymlink s = n.getSymlink(); final PermissionStatus permissions = loadPermission(s.getPermission(), parent.getLoaderContext().getStringTable()); INodeSymlink sym = new INodeSymlink(n.getId(), n.getName().toByteArray(), permissions, s.getModificationTime(), s.getAccessTime(), s.getTarget().toStringUtf8()); return sym; }
private INodeSymlink loadINodeSymlink(INodeSection.INode n) { assert n.getType() == INodeSection.INode.Type.SYMLINK; INodeSection.INodeSymlink s = n.getSymlink(); final PermissionStatus permissions = loadPermission(s.getPermission(), parent.getLoaderContext().getStringTable()); INodeSymlink sym = new INodeSymlink(n.getId(), n.getName().toByteArray(), permissions, s.getModificationTime(), s.getAccessTime(), s.getTarget().toStringUtf8()); return sym; }
boolean hasAcl = false; switch (inode.getType()) { case FILE: INodeFile file = inode.getFile();
private INodeFile loadINodeFile(INodeSection.INode n) { assert n.getType() == INodeSection.INode.Type.FILE; INodeSection.INodeFile f = n.getFile(); List<BlockProto> bp = f.getBlocksList();
public static INodeDirectory loadINodeDirectory(INodeSection.INode n, LoaderContext state) { assert n.getType() == INodeSection.INode.Type.DIRECTORY; INodeSection.INodeDirectory d = n.getDirectory();
long[] data = new long[4]; FsImageProto.INodeSection.INodeFile f = inode.getFile(); switch (inode.getType()) { case FILE: data[0] = 0;
private void fillDirSummary(long id, long[] data) throws IOException { data[0]++; long[] children = dirmap.get(id); if (children == null) { return; } for (long cid : children) { INode node = fromINodeId(cid); switch (node.getType()) { case DIRECTORY: fillDirSummary(cid, data); break; case FILE: FsImageProto.INodeSection.INodeFile f = node.getFile(); long curLength = getFileSize(f); data[1]++; data[2] += curLength; data[3] += (curLength) * (f.getReplication()); break; case SYMLINK: data[1]++; break; default: break; } } }
private PermissionStatus getPermissionStatus(String path) throws IOException { long id = lookup(path); FsImageProto.INodeSection.INode inode = fromINodeId(id); switch (inode.getType()) { case FILE: { FsImageProto.INodeSection.INodeFile f = inode.getFile(); return FSImageFormatPBINode.Loader.loadPermission( f.getPermission(), stringTable); } case DIRECTORY: { FsImageProto.INodeSection.INodeDirectory d = inode.getDirectory(); return FSImageFormatPBINode.Loader.loadPermission( d.getPermission(), stringTable); } case SYMLINK: { FsImageProto.INodeSection.INodeSymlink s = inode.getSymlink(); return FSImageFormatPBINode.Loader.loadPermission( s.getPermission(), stringTable); } default: { return null; } } }
public Builder mergeFrom(org.apache.hadoop.hdfs.server.namenode.FsImageProto.INodeSection.INode other) { if (other == org.apache.hadoop.hdfs.server.namenode.FsImageProto.INodeSection.INode.getDefaultInstance()) return this; if (other.hasType()) { setType(other.getType()); } if (other.hasId()) { setId(other.getId()); } if (other.hasName()) { setName(other.getName()); } if (other.hasFile()) { mergeFile(other.getFile()); } if (other.hasDirectory()) { mergeDirectory(other.getDirectory()); } if (other.hasSymlink()) { mergeSymlink(other.getSymlink()); } this.mergeUnknownFields(other.getUnknownFields()); return this; }
private List<AclEntry> getAclEntryList(String path) throws IOException { long id = lookup(path); FsImageProto.INodeSection.INode inode = fromINodeId(id); switch (inode.getType()) { case FILE: { FsImageProto.INodeSection.INodeFile f = inode.getFile(); return FSImageFormatPBINode.Loader.loadAclEntries( f.getAcl(), stringTable); } case DIRECTORY: { FsImageProto.INodeSection.INodeDirectory d = inode.getDirectory(); return FSImageFormatPBINode.Loader.loadAclEntries( d.getAcl(), stringTable); } default: { return new ArrayList<AclEntry>(); } } }
private List<XAttr> getXAttrList(String path) throws IOException { long id = lookup(path); FsImageProto.INodeSection.INode inode = fromINodeId(id); switch (inode.getType()) { case FILE: return FSImageFormatPBINode.Loader.loadXAttrs( inode.getFile().getXAttrs(), stringTable); case DIRECTORY: return FSImageFormatPBINode.Loader.loadXAttrs(inode.getDirectory() .getXAttrs(), stringTable); default: return null; } }
private INode loadINode(INodeSection.INode n) { switch (n.getType()) { case FILE: return loadINodeFile(n); case DIRECTORY: return loadINodeDirectory(n, parent.getLoaderContext()); case SYMLINK: return loadINodeSymlink(n); default: break; } return null; }
private void dumpINodeFields(INodeSection.INode p) { o(SECTION_ID, p.getId()).o(INODE_SECTION_TYPE, p.getType()) .o(SECTION_NAME, p.getName().toStringUtf8()); if (p.hasFile()) { dumpINodeFile(p.getFile()); } else if (p.hasDirectory()) { dumpINodeDirectory(p.getDirectory()); } else if (p.hasSymlink()) { dumpINodeSymlink(p.getSymlink()); } }
private INodeSymlink loadINodeSymlink(INodeSection.INode n) { assert n.getType() == INodeSection.INode.Type.SYMLINK; INodeSection.INodeSymlink s = n.getSymlink(); final PermissionStatus permissions = loadPermission(s.getPermission(), parent.getLoaderContext().getStringTable()); INodeSymlink sym = new INodeSymlink(n.getId(), n.getName().toByteArray(), permissions, s.getModificationTime(), s.getAccessTime(), s.getTarget().toStringUtf8()); return sym; }