Example usage for org.apache.hadoop.fs.permission FsPermission getGroupAction

List of usage examples for org.apache.hadoop.fs.permission FsPermission getGroupAction

Introduction

In this page you can find the example usage for org.apache.hadoop.fs.permission FsPermission getGroupAction.

Prototype

public FsAction getGroupAction() 

Source Link

Document

Return group FsAction .

Usage

From source file:TestParascaleFileStatus.java

License:Apache License

public void testLoadPermissionInfo() {
    final Path p = new Path("/foo/bar");
    {/*www. j  av a 2  s.c o m*/
        final ParascaleFileStatusMock parascaleFileStatus = new ParascaleFileStatusMock(10, false, 2,
                32 * 1024 * 1024, System.currentTimeMillis(), p);
        parascaleFileStatus.permissionString = "-rw-r-xr-- 1 parascale parascale 0 Sep  9 12:37 16:43 bar";
        final FsPermission permission = parascaleFileStatus.getPermission();
        assertEquals(FsAction.READ, permission.getOtherAction());
        assertEquals(FsAction.READ_EXECUTE, permission.getGroupAction());
        assertEquals(FsAction.READ_WRITE, permission.getUserAction());
    }
    {
        final ParascaleFileStatusMock parascaleFileStatus = new ParascaleFileStatusMock(10, false, 2,
                32 * 1024 * 1024, System.currentTimeMillis(), p);
        parascaleFileStatus.permissionString = "-rw--wxr-- 1 parascale parascale 0 Sep  9 12:37 16:43 bar";
        assertEquals(32 * 1024 * 1024, parascaleFileStatus.getBlockSize());
        assertEquals("parascale", parascaleFileStatus.getOwner());
        final FsPermission permission = parascaleFileStatus.getPermission();
        assertEquals(FsAction.READ, permission.getOtherAction());
        assertEquals(FsAction.WRITE_EXECUTE, permission.getGroupAction());
        assertEquals(FsAction.READ_WRITE, permission.getUserAction());

    }
    final ParascaleFileStatusMock parascaleFileStatus = new ParascaleFileStatusMock(10, false, 2,
            32 * 1024 * 1024, System.currentTimeMillis(), p);
    parascaleFileStatus.permissionString = "-rw-r-xr-- 1 parascale parascale 0 Sep  9 12:37 16:43 bar";
    assertEquals("permissions already loaded - should be lazy", 0, parascaleFileStatus.count.get());
    parascaleFileStatus.getPermission();
    assertEquals("permissions loaded more than once", 1, parascaleFileStatus.count.get());
    parascaleFileStatus.getOwner();
    assertEquals("permissions loaded more than once", 1, parascaleFileStatus.count.get());
    parascaleFileStatus.getGroup();
    assertEquals("permissions loaded more than once", 1, parascaleFileStatus.count.get());
}

From source file:com.cloudera.hadoop.hdfs.nfs.nfs4.state.HDFSState.java

License:Apache License

protected boolean check(String user, List<String> groups, FileStatus status, FsAction access) {
    FsPermission mode = status.getPermission();
    if (user.equals(status.getOwner())) { // user class
        if (mode.getUserAction().implies(access)) {
            return true;
        }/*ww w .  j av a 2  s  .co  m*/
    } else if (groups.contains(status.getGroup())) { // group class
        if (mode.getGroupAction().implies(access)) {
            return true;
        }
    } else { // other class
        if (mode.getOtherAction().implies(access)) {
            return true;
        }
    }
    return false;
}

From source file:com.cloudera.hoop.client.fs.HoopFileSystem.java

License:Open Source License

/**
 * Converts a <code>FsPermission</code> to a Unix string symbolic representation (ie: '-rwxr--r--')
 * @param p the permission./*from   w ww .  j  a  v  a2s  .  c om*/
 * @return the Unix string symbolic reprentation.
 */
private String permissionToString(FsPermission p) {
    return (p == null) ? "default"
            : "-" + p.getUserAction().SYMBOL + p.getGroupAction().SYMBOL + p.getOtherAction().SYMBOL;
}

From source file:com.cloudera.hoop.fs.FSUtils.java

License:Open Source License

/**
 * Converts a Hadoop permission into a Unix permission symbolic
 * representation (i.e. -rwxr--r--) or default if the permission is NULL.
 *
 * @param p Hadoop permission.//  w  w w  .ja v a 2s  .  c  o  m
 * @return the Unix permission symbolic representation or default if the
 * permission is NULL.
 */
private static String permissionToString(FsPermission p) {
    return (p == null) ? "default"
            : "-" + p.getUserAction().SYMBOL + p.getGroupAction().SYMBOL + p.getOtherAction().SYMBOL;
}

From source file:com.cloudera.recordbreaker.analyzer.FSAnalyzer.java

License:Open Source License

/**
 * <code>addFileMetadata</code> stores the pathname, size, owner, etc.
 *//*from ww  w . j  a  v a  2s .  c  o  m*/
void addFileMetadata(final FileStatus fstatus, final long crawlId) {
    // Compute strings to represent file metadata
    Path insertFile = fstatus.getPath();
    final boolean isDir = fstatus.isDir();
    FsPermission fsp = fstatus.getPermission();
    final String permissions = (isDir ? "d" : "-") + fsp.getUserAction().SYMBOL + fsp.getGroupAction().SYMBOL
            + fsp.getOtherAction().SYMBOL;

    // Compute formal pathname representation
    String fnameString = null;
    String parentPathString = null;
    if (isDir && insertFile.getParent() == null) {
        parentPathString = "";
        fnameString = insertFile.toString();
    } else {
        fnameString = insertFile.getName();
        parentPathString = insertFile.getParent().toString();

        // REMIND --- mjc --- If we want to modify the Files table s.t. it does
        // not contain the filesystem prefix, then this would be the place to do it.

        if (!parentPathString.endsWith("/")) {
            parentPathString = parentPathString + "/";
        }
    }
    final String parentPath = parentPathString;
    final String fName = fnameString;
    final long fileId = dbQueue.execute(new SQLiteJob<Long>() {
        protected Long job(SQLiteConnection db) throws SQLiteException {
            SQLiteStatement stmt = db.prepare("INSERT into Files VALUES(null, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
            try {
                stmt.bind(1, isDir ? "True" : "False").bind(2, crawlId).bind(3, fName)
                        .bind(4, fstatus.getOwner()).bind(5, fstatus.getGroup()).bind(6, permissions)
                        .bind(7, fstatus.getLen())
                        .bind(8, fileDateFormat.format(new Date(fstatus.getModificationTime())))
                        .bind(9, parentPath);
                stmt.step();
                return db.getLastInsertId();
            } finally {
                stmt.dispose();
            }
        }
    }).complete();
}

From source file:com.moz.fiji.mapreduce.tools.FijiBulkLoad.java

License:Apache License

/**
 * Helper method used by recursiveGrantAllReadWritePermissions to actually grant the
 * additional read and write permissions to all.  It deals with FileStatus objects
 * since that is the object that supports listStatus.
 *
 * @param hdfs The FileSystem on which the file exists.
 * @param status The status of the file whose permissions are checked and on whose children
 *     this method is called recursively.
 * @throws IOException on IOException./*  www .ja  v a 2 s.c  o m*/
 */
private void recursiveGrantAllReadWritePermissions(FileSystem hdfs, FileStatus status) throws IOException {
    final FsPermission currentPermissions = status.getPermission();
    if (!currentPermissions.getOtherAction().implies(FsAction.READ_WRITE)) {
        LOG.info("Adding a+rw to permissions for {}: {}", status.getPath(), currentPermissions);
        hdfs.setPermission(status.getPath(),
                new FsPermission(currentPermissions.getUserAction(),
                        currentPermissions.getGroupAction().or(FsAction.READ_WRITE),
                        currentPermissions.getOtherAction().or(FsAction.READ_WRITE)));
    }
    // Recurse into any files and directories in the path.
    // We must use listStatus because listFiles does not list subdirectories.
    FileStatus[] subStatuses = hdfs.listStatus(status.getPath());
    for (FileStatus subStatus : subStatuses) {
        if (!subStatus.equals(status)) {
            recursiveGrantAllReadWritePermissions(hdfs, subStatus);
        }
    }
}

From source file:com.ning.hfind.FileStatusAttributes.java

License:Apache License

private boolean allows(FsAction action, String user, Collection<String> groups) {
    FsPermission permission = status.getPermission();

    return permission.getOtherAction().implies(action)
            || status.getOwner().equals(user) && permission.getUserAction().implies(action)
            || groups.contains(status.getGroup()) && permission.getGroupAction().implies(action);
}

From source file:com.streamsets.pipeline.stage.destination.hdfs.util.TestHdfsUtils.java

License:Apache License

@Test
public void testParseFsPermission() {
    FsPermission permission;

    /*//from   w  ww  .j a va 2 s . c  o m
    // Not testing string constants as they behave differently in different Hadoop versions
    permission = HdfsUtils.parseFsPermission("a-rwx"); // Pre HADOOP-13508
    permission = HdfsUtils.parseFsPermission("a=rwx"); // Post HADOOP-13508
    assertEquals(FsAction.ALL, permission.getUserAction());
    assertEquals(FsAction.ALL, permission.getGroupAction());
    assertEquals(FsAction.ALL, permission.getOtherAction());
    */

    // Octal format
    permission = HdfsUtils.parseFsPermission("770");
    assertEquals(FsAction.ALL, permission.getUserAction());
    assertEquals(FsAction.ALL, permission.getGroupAction());
    assertEquals(FsAction.NONE, permission.getOtherAction());

    // Unix format
    permission = HdfsUtils.parseFsPermission("rwxrwx---");
    assertEquals(FsAction.ALL, permission.getUserAction());
    assertEquals(FsAction.ALL, permission.getGroupAction());
    assertEquals(FsAction.NONE, permission.getOtherAction());
}

From source file:com.uber.hoodie.common.table.timeline.dto.FSPermissionDTO.java

License:Apache License

public static FSPermissionDTO fromFsPermission(FsPermission permission) {
    if (null == permission) {
        return null;
    }/*from w  w w  .  ja  va 2s .c om*/
    FSPermissionDTO dto = new FSPermissionDTO();
    dto.useraction = permission.getUserAction();
    dto.groupaction = permission.getGroupAction();
    dto.otheraction = permission.getOtherAction();
    dto.stickyBit = permission.getStickyBit();
    return dto;
}

From source file:de.tiqsolutions.hdfs.PosixAttributesImpl.java

License:Apache License

@Override
public Set<PosixFilePermission> permissions() {
    Set<PosixFilePermission> permissions = new HashSet<>();
    FsPermission permission = fileStatus.getPermission();
    FsAction action = permission.getUserAction();
    if (action != null) {
        int bits = action.ordinal();
        if ((bits & FsAction.EXECUTE.ordinal()) > 0)
            permissions.add(PosixFilePermission.OWNER_EXECUTE);
        if ((bits & FsAction.WRITE.ordinal()) > 0)
            permissions.add(PosixFilePermission.OWNER_WRITE);
        if ((bits & FsAction.READ.ordinal()) > 0)
            permissions.add(PosixFilePermission.OWNER_READ);
    }/*from  w ww  . j  a v  a2s. com*/

    action = permission.getGroupAction();
    if (action != null) {
        int bits = action.ordinal();
        if ((bits & FsAction.EXECUTE.ordinal()) > 0)
            permissions.add(PosixFilePermission.GROUP_EXECUTE);
        if ((bits & FsAction.WRITE.ordinal()) > 0)
            permissions.add(PosixFilePermission.GROUP_WRITE);
        if ((bits & FsAction.READ.ordinal()) > 0)
            permissions.add(PosixFilePermission.GROUP_READ);
    }

    action = permission.getOtherAction();
    if (action != null) {
        int bits = action.ordinal();
        if ((bits & FsAction.EXECUTE.ordinal()) > 0)
            permissions.add(PosixFilePermission.OTHERS_EXECUTE);
        if ((bits & FsAction.WRITE.ordinal()) > 0)
            permissions.add(PosixFilePermission.OTHERS_WRITE);
        if ((bits & FsAction.READ.ordinal()) > 0)
            permissions.add(PosixFilePermission.OTHERS_READ);
    }

    return permissions;
}