本文整理汇总了Java中org.apache.hadoop.fs.FileStatus.getPermission方法的典型用法代码示例。如果您正苦于以下问题:Java FileStatus.getPermission方法的具体用法?Java FileStatus.getPermission怎么用?Java FileStatus.getPermission使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.hadoop.fs.FileStatus
的用法示例。
在下文中一共展示了FileStatus.getPermission方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: testSetPermission
import org.apache.hadoop.fs.FileStatus; //导入方法依赖的package包/类
@Override
protected void testSetPermission() throws Exception {
if (Path.WINDOWS) {
FileSystem fs = FileSystem.get(getProxiedFSConf());
Path path = new Path(getProxiedFSTestDir(), "foodir");
fs.mkdirs(path);
fs = getHttpFSFileSystem();
FsPermission permission1 = new FsPermission(FsAction.READ_WRITE, FsAction.NONE, FsAction.NONE);
fs.setPermission(path, permission1);
fs.close();
fs = FileSystem.get(getProxiedFSConf());
FileStatus status1 = fs.getFileStatus(path);
fs.close();
FsPermission permission2 = status1.getPermission();
Assert.assertEquals(permission2, permission1);
// sticky bit not supported on Windows with local file system, so the
// subclass skips that part of the test
} else {
super.testSetPermission();
}
}
示例2: checkPublicPermsForAll
import org.apache.hadoop.fs.FileStatus; //导入方法依赖的package包/类
private static boolean checkPublicPermsForAll(FileSystem fs,
FileStatus status, FsAction dir, FsAction file)
throws IOException {
FsPermission perms = status.getPermission();
FsAction otherAction = perms.getOtherAction();
if (status.isDirectory()) {
if (!otherAction.implies(dir)) {
return false;
}
for (FileStatus child : fs.listStatus(status.getPath())) {
if(!checkPublicPermsForAll(fs, child, dir, file)) {
return false;
}
}
return true;
}
return (otherAction.implies(file));
}
示例3: create
import org.apache.hadoop.fs.FileStatus; //导入方法依赖的package包/类
private FSDataOutputStream create(Path f, Reporter reporter,
FileStatus srcstat) throws IOException {
if (destFileSys.exists(f)) {
destFileSys.delete(f, false);
}
if (!preserve_status) {
return destFileSys.create(f, true, sizeBuf, reporter);
}
FsPermission permission = preseved.contains(FileAttribute.PERMISSION)?
srcstat.getPermission(): null;
short replication = preseved.contains(FileAttribute.REPLICATION)?
srcstat.getReplication(): destFileSys.getDefaultReplication(f);
long blockSize = preseved.contains(FileAttribute.BLOCK_SIZE)?
srcstat.getBlockSize(): destFileSys.getDefaultBlockSize(f);
return destFileSys.create(f, permission, true, sizeBuf, replication,
blockSize, reporter);
}
示例4: validateDistCacheFiles
import org.apache.hadoop.fs.FileStatus; //导入方法依赖的package包/类
/**
* Validate private/public distributed cache files.
*
* @param filesSizesExpected
* list of sizes of expected dist cache files
* @param distCacheDir
* the distributed cache dir to be validated
* @throws IOException
* @throws FileNotFoundException
*/
private void validateDistCacheFiles(List<Long> filesSizesExpected, Path distCacheDir)
throws FileNotFoundException, IOException {
// RemoteIterator<LocatedFileStatus> iter =
FileStatus[] statuses = GridmixTestUtils.dfs.listStatus(distCacheDir);
int numFiles = filesSizesExpected.size();
assertEquals("Number of files under distributed cache dir is wrong.",
numFiles, statuses.length);
for (int i = 0; i < numFiles; i++) {
FileStatus stat = statuses[i];
assertTrue("File size of distributed cache file "
+ stat.getPath().toUri().getPath() + " is wrong.",
filesSizesExpected.remove(stat.getLen()));
FsPermission perm = stat.getPermission();
assertEquals("Wrong permissions for distributed cache file "
+ stat.getPath().toUri().getPath(), new FsPermission(
GenerateDistCacheData.GRIDMIX_DISTCACHE_FILE_PERM), perm);
}
}
示例5: checkPermissionOfOther
import org.apache.hadoop.fs.FileStatus; //导入方法依赖的package包/类
/**
* Checks for a given path whether the Other permissions on it imply the permission in the passed
* FsAction
*
* @return true if the path in the uri is visible to all, false otherwise
* @throws IOException
*/
public boolean checkPermissionOfOther(FileSystem fs, Path path, FsAction action,
Map<URI, FileStatus> statCache) throws IOException {
FileStatus status = getFileStatus(fs, path.toUri(), statCache);
FsPermission perms = status.getPermission();
FsAction otherAction = perms.getOtherAction();
return otherAction.implies(action);
}
示例6: stashOriginalFilePermissions
import org.apache.hadoop.fs.FileStatus; //导入方法依赖的package包/类
@Override
protected void stashOriginalFilePermissions() throws IOException {
// save off permissions in case we need to
// rewrite the keystore in flush()
FileStatus s = fs.getFileStatus(getPath());
permissions = s.getPermission();
}
示例7: applyNewPermission
import org.apache.hadoop.fs.FileStatus; //导入方法依赖的package包/类
/**
* Apply permission against specified file and determine what the
* new mode would be
* @param file File against which to apply mode
* @return File's new mode if applied.
*/
public short applyNewPermission(FileStatus file) {
FsPermission perms = file.getPermission();
int existing = perms.toShort();
boolean exeOk = file.isDirectory() || (existing & 0111) != 0;
return (short)combineModes(existing, exeOk);
}
示例8: loadFromPath
import org.apache.hadoop.fs.FileStatus; //导入方法依赖的package包/类
private FsPermission loadFromPath(Path p, char[] password)
throws IOException, NoSuchAlgorithmException, CertificateException {
try (FSDataInputStream in = fs.open(p)) {
FileStatus s = fs.getFileStatus(p);
keyStore.load(in, password);
return s.getPermission();
}
}
示例9: testRootReadableExecutableInternal
import org.apache.hadoop.fs.FileStatus; //导入方法依赖的package包/类
private void testRootReadableExecutableInternal(boolean located)
throws IOException {
// verify executable permission on root: cd /
//
Assert.assertFalse("In root before cd",
fsView.getWorkingDirectory().isRoot());
fsView.setWorkingDirectory(new Path("/"));
Assert.assertTrue("Not in root dir after cd",
fsView.getWorkingDirectory().isRoot());
// verify readable
//
verifyRootChildren(listStatusInternal(located,
fsView.getWorkingDirectory()));
// verify permissions
//
final FileStatus rootStatus =
fsView.getFileStatus(fsView.getWorkingDirectory());
final FsPermission perms = rootStatus.getPermission();
Assert.assertTrue("User-executable permission not set!",
perms.getUserAction().implies(FsAction.EXECUTE));
Assert.assertTrue("User-readable permission not set!",
perms.getUserAction().implies(FsAction.READ));
Assert.assertTrue("Group-executable permission not set!",
perms.getGroupAction().implies(FsAction.EXECUTE));
Assert.assertTrue("Group-readable permission not set!",
perms.getGroupAction().implies(FsAction.READ));
Assert.assertTrue("Other-executable permission not set!",
perms.getOtherAction().implies(FsAction.EXECUTE));
Assert.assertTrue("Other-readable permission not set!",
perms.getOtherAction().implies(FsAction.READ));
}
示例10: checkPermissionOfOther
import org.apache.hadoop.fs.FileStatus; //导入方法依赖的package包/类
/**
* Checks for a given path whether the Other permissions on it
* imply the permission in the passed FsAction
* @param fs
* @param path
* @param action
* @return true if the path in the uri is visible to all, false otherwise
* @throws IOException
*/
private static boolean checkPermissionOfOther(FileSystem fs, Path path,
FsAction action, Map<URI, FileStatus> statCache) throws IOException {
FileStatus status = getFileStatus(fs, path.toUri(), statCache);
FsPermission perms = status.getPermission();
FsAction otherAction = perms.getOtherAction();
if (otherAction.implies(action)) {
return true;
}
return false;
}
示例11: checkPermission
import org.apache.hadoop.fs.FileStatus; //导入方法依赖的package包/类
static FsPermission checkPermission(FileSystem fs,
String path, FsPermission expected) throws IOException {
FileStatus s = fs.getFileStatus(new Path(path));
LOG.info(s.getPath() + ": " + s.isDirectory() + " " + s.getPermission()
+ ":" + s.getOwner() + ":" + s.getGroup());
if (expected != null) {
assertEquals(expected, s.getPermission());
assertEquals(expected.toShort(), s.getPermission().toShort());
}
return s.getPermission();
}
示例12: isDifferent
import org.apache.hadoop.fs.FileStatus; //导入方法依赖的package包/类
private boolean isDifferent(FileStatus original) {
if (owner != null && !owner.equals(original.getOwner())) {
return true;
}
if (group != null && !group.equals(original.getGroup())) {
return true;
}
if (permission != null) {
FsPermission orig = original.getPermission();
return original.isDirectory()? !permission.equals(orig):
!permission.applyUMask(FILE_UMASK).equals(orig);
}
return false;
}
示例13: toCopyListingFileStatus
import org.apache.hadoop.fs.FileStatus; //导入方法依赖的package包/类
/**
* 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;
}
示例14: testRootReadableExecutable
import org.apache.hadoop.fs.FileStatus; //导入方法依赖的package包/类
@Test
public void testRootReadableExecutable() throws IOException {
// verify executable permission on root: cd /
//
Assert.assertFalse("In root before cd",
fsView.getWorkingDirectory().isRoot());
fsView.setWorkingDirectory(new Path("/"));
Assert.assertTrue("Not in root dir after cd",
fsView.getWorkingDirectory().isRoot());
// verify readable
//
verifyRootChildren(fsView.listStatus(fsView.getWorkingDirectory()));
// verify permissions
//
final FileStatus rootStatus =
fsView.getFileStatus(fsView.getWorkingDirectory());
final FsPermission perms = rootStatus.getPermission();
Assert.assertTrue("User-executable permission not set!",
perms.getUserAction().implies(FsAction.EXECUTE));
Assert.assertTrue("User-readable permission not set!",
perms.getUserAction().implies(FsAction.READ));
Assert.assertTrue("Group-executable permission not set!",
perms.getGroupAction().implies(FsAction.EXECUTE));
Assert.assertTrue("Group-readable permission not set!",
perms.getGroupAction().implies(FsAction.READ));
Assert.assertTrue("Other-executable permission not set!",
perms.getOtherAction().implies(FsAction.EXECUTE));
Assert.assertTrue("Other-readable permission not set!",
perms.getOtherAction().implies(FsAction.READ));
}
示例15: toProtoFileStatus
import org.apache.hadoop.fs.FileStatus; //导入方法依赖的package包/类
/**
* Converts a Hadoop {@link FileStatus} instance into a protobuf
* {@link DFSProtos.FileStatus}
*
* @param status
* the Hadoop status instance to convert
* @return a protobuf status instance
* @throws IOException
*/
static DFS.FileStatus toProtoFileStatus(FileStatus status) throws IOException {
DFS.FileStatus.Builder builder = DFS.FileStatus.newBuilder();
builder
.setLength(status.getLen())
.setIsDirectory(status.isDirectory())
.setBlockReplication(status.getReplication())
.setBlockSize(status.getBlockSize())
.setModificationTime(status.getModificationTime())
.setAccessTime(status.getAccessTime());
// Handling potential null values
if (status.getPath() != null) {
builder = builder.setPath(status.getPath().toUri().getPath());
}
if (status.getPermission() != null) {
builder = builder.setPermission(status.getPermission().toExtendedShort());
}
if (status.getOwner() != null) {
builder = builder.setOwner(status.getOwner());
}
if (status.getGroup() != null) {
builder = builder.setGroup(status.getGroup());
}
if (status.isSymlink()) {
builder = builder.setSymlink(status.getSymlink().toString());
}
return builder.build();
}