List of usage examples for org.apache.hadoop.fs.permission FsPermission getGroupAction
public FsAction getGroupAction()
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; }