Example usage for org.apache.hadoop.fs FileSystemLinkResolver FileSystemLinkResolver

List of usage examples for org.apache.hadoop.fs FileSystemLinkResolver FileSystemLinkResolver

Introduction

In this page you can find the example usage for org.apache.hadoop.fs FileSystemLinkResolver FileSystemLinkResolver.

Prototype

FileSystemLinkResolver

Source Link

Usage

From source file:com.mellanox.r4h.DistributedFileSystem.java

License:Apache License

private boolean mkdirsInternal(Path f, final FsPermission permission, final boolean createParent)
        throws IOException {
    statistics.incrementWriteOps(1);//from w ww. j  a va2 s  . c  o  m
    Path absF = fixRelativePart(f);
    return new FileSystemLinkResolver<Boolean>() {
        @Override
        public Boolean doCall(final Path p) throws IOException, UnresolvedLinkException {
            return dfs.mkdirs(getPathName(p), permission, createParent);
        }

        @Override
        public Boolean next(final FileSystem fs, final Path p) throws IOException {
            // FileSystem doesn't have a non-recursive mkdir() method
            // Best we can do is error out
            if (!createParent) {
                throw new IOException("FileSystem does not support non-recursive" + "mkdir");
            }
            return fs.mkdirs(p, permission);
        }
    }.resolve(this, absF);
}

From source file:com.mellanox.r4h.DistributedFileSystem.java

License:Apache License

/**
 * Returns the stat information about the file.
 * /*from w ww  .jav a2 s  .  c  o  m*/
 * @throws FileNotFoundException
 *             if the file does not exist.
 */
@Override
public FileStatus getFileStatus(Path f) throws IOException {
    statistics.incrementReadOps(1);
    Path absF = fixRelativePart(f);
    return new FileSystemLinkResolver<FileStatus>() {
        @Override
        public FileStatus doCall(final Path p) throws IOException, UnresolvedLinkException {
            HdfsFileStatus fi = dfs.getFileInfo(getPathName(p));
            if (fi != null) {
                return fi.makeQualified(getUri(), p);
            } else {
                throw new FileNotFoundException("File does not exist: " + p);
            }
        }

        @Override
        public FileStatus next(final FileSystem fs, final Path p) throws IOException {
            return fs.getFileStatus(p);
        }
    }.resolve(this, absF);
}

From source file:com.mellanox.r4h.DistributedFileSystem.java

License:Apache License

@SuppressWarnings("deprecation")
@Override// w ww  . ja  va2s  .c o m
public void createSymlink(final Path target, final Path link, final boolean createParent)
        throws AccessControlException, FileAlreadyExistsException, FileNotFoundException,
        ParentNotDirectoryException, UnsupportedFileSystemException, IOException {
    if (!FileSystem.areSymlinksEnabled()) {
        throw new UnsupportedOperationException("Symlinks not supported");
    }
    statistics.incrementWriteOps(1);
    final Path absF = fixRelativePart(link);
    new FileSystemLinkResolver<Void>() {
        @Override
        public Void doCall(final Path p) throws IOException, UnresolvedLinkException {
            dfs.createSymlink(target.toString(), getPathName(p), createParent);
            return null;
        }

        @Override
        public Void next(final FileSystem fs, final Path p) throws IOException, UnresolvedLinkException {
            fs.createSymlink(target, p, createParent);
            return null;
        }
    }.resolve(this, absF);
}

From source file:com.mellanox.r4h.DistributedFileSystem.java

License:Apache License

@Override
public FileStatus getFileLinkStatus(final Path f)
        throws AccessControlException, FileNotFoundException, UnsupportedFileSystemException, IOException {
    statistics.incrementReadOps(1);//from ww w  .j av  a 2s.  c  om
    final Path absF = fixRelativePart(f);
    FileStatus status = new FileSystemLinkResolver<FileStatus>() {
        @Override
        public FileStatus doCall(final Path p) throws IOException, UnresolvedLinkException {
            HdfsFileStatus fi = dfs.getFileLinkInfo(getPathName(p));
            if (fi != null) {
                return fi.makeQualified(getUri(), p);
            } else {
                throw new FileNotFoundException("File does not exist: " + p);
            }
        }

        @Override
        public FileStatus next(final FileSystem fs, final Path p) throws IOException, UnresolvedLinkException {
            return fs.getFileLinkStatus(p);
        }
    }.resolve(this, absF);
    // Fully-qualify the symlink
    if (status.isSymlink()) {
        Path targetQual = FSLinkResolver.qualifySymlinkTarget(this.getUri(), status.getPath(),
                status.getSymlink());
        status.setSymlink(targetQual);
    }
    return status;
}

From source file:com.mellanox.r4h.DistributedFileSystem.java

License:Apache License

@Override
public Path getLinkTarget(final Path f)
        throws AccessControlException, FileNotFoundException, UnsupportedFileSystemException, IOException {
    statistics.incrementReadOps(1);// w w w  .  ja v a  2  s .  com
    final Path absF = fixRelativePart(f);
    return new FileSystemLinkResolver<Path>() {
        @Override
        public Path doCall(final Path p) throws IOException, UnresolvedLinkException {
            HdfsFileStatus fi = dfs.getFileLinkInfo(getPathName(p));
            if (fi != null) {
                return fi.makeQualified(getUri(), p).getSymlink();
            } else {
                throw new FileNotFoundException("File does not exist: " + p);
            }
        }

        @Override
        public Path next(final FileSystem fs, final Path p) throws IOException, UnresolvedLinkException {
            return fs.getLinkTarget(p);
        }
    }.resolve(this, absF);
}

From source file:com.mellanox.r4h.DistributedFileSystem.java

License:Apache License

@Override
public FileChecksum getFileChecksum(Path f) throws IOException {
    statistics.incrementReadOps(1);/*  w w w . ja  v a  2  s.  c o  m*/
    Path absF = fixRelativePart(f);
    return new FileSystemLinkResolver<FileChecksum>() {
        @Override
        public FileChecksum doCall(final Path p) throws IOException, UnresolvedLinkException {
            return dfs.getFileChecksum(getPathName(p), Long.MAX_VALUE);
        }

        @Override
        public FileChecksum next(final FileSystem fs, final Path p) throws IOException {
            return fs.getFileChecksum(p);
        }
    }.resolve(this, absF);
}

From source file:com.mellanox.r4h.DistributedFileSystem.java

License:Apache License

@Override
public FileChecksum getFileChecksum(Path f, final long length) throws IOException {
    statistics.incrementReadOps(1);/*from   w ww  .ja va 2  s.  c o  m*/
    Path absF = fixRelativePart(f);
    return new FileSystemLinkResolver<FileChecksum>() {
        @Override
        public FileChecksum doCall(final Path p) throws IOException, UnresolvedLinkException {
            return dfs.getFileChecksum(getPathName(p), length);
        }

        @Override
        public FileChecksum next(final FileSystem fs, final Path p) throws IOException {
            if (fs instanceof DistributedFileSystem) {
                return ((DistributedFileSystem) fs).getFileChecksum(p, length);
            } else {
                throw new UnsupportedFileSystemException(
                        "getFileChecksum(Path, long) is not supported by " + fs.getClass().getSimpleName());
            }
        }
    }.resolve(this, absF);
}

From source file:com.mellanox.r4h.DistributedFileSystem.java

License:Apache License

@Override
public void setPermission(Path p, final FsPermission permission) throws IOException {
    statistics.incrementWriteOps(1);/*from w w w . ja v  a  2 s  .co  m*/
    Path absF = fixRelativePart(p);
    new FileSystemLinkResolver<Void>() {
        @Override
        public Void doCall(final Path p) throws IOException, UnresolvedLinkException {
            dfs.setPermission(getPathName(p), permission);
            return null;
        }

        @Override
        public Void next(final FileSystem fs, final Path p) throws IOException {
            fs.setPermission(p, permission);
            return null;
        }
    }.resolve(this, absF);
}

From source file:com.mellanox.r4h.DistributedFileSystem.java

License:Apache License

@Override
public void setOwner(Path p, final String username, final String groupname) throws IOException {
    if (username == null && groupname == null) {
        throw new IOException("username == null && groupname == null");
    }/*from  ww  w  .ja  v  a 2 s .co  m*/
    statistics.incrementWriteOps(1);
    Path absF = fixRelativePart(p);
    new FileSystemLinkResolver<Void>() {
        @Override
        public Void doCall(final Path p) throws IOException, UnresolvedLinkException {
            dfs.setOwner(getPathName(p), username, groupname);
            return null;
        }

        @Override
        public Void next(final FileSystem fs, final Path p) throws IOException {
            fs.setOwner(p, username, groupname);
            return null;
        }
    }.resolve(this, absF);
}

From source file:com.mellanox.r4h.DistributedFileSystem.java

License:Apache License

@Override
public void setTimes(Path p, final long mtime, final long atime) throws IOException {
    statistics.incrementWriteOps(1);/* w  ww  . j a  va  2  s  .com*/
    Path absF = fixRelativePart(p);
    new FileSystemLinkResolver<Void>() {
        @Override
        public Void doCall(final Path p) throws IOException, UnresolvedLinkException {
            dfs.setTimes(getPathName(p), mtime, atime);
            return null;
        }

        @Override
        public Void next(final FileSystem fs, final Path p) throws IOException {
            fs.setTimes(p, mtime, atime);
            return null;
        }
    }.resolve(this, absF);
}