/** * @return the default ACL as string entries for this file */ public List<String> convertDefaultAclToStringEntries() { // do not use getX as the name of the method, otherwise it will be used by json serialization return (mDefaultAcl == null) ? new ArrayList<>() : mDefaultAcl.toStringEntries(); }
@Override protected void runPlainPath(AlluxioURI path, CommandLine cl) throws AlluxioException, IOException { URIStatus status = mFileSystem.getStatus(path); System.out.println("# file: " + status.getPath()); System.out.println("# owner: " + status.getOwner()); System.out.println("# group: " + status.getGroup()); for (String entry : status.getAcl().toStringEntries()) { System.out.println(entry); } List<String> defaultAclEntries = status.getDefaultAcl().toStringEntries(); for (String entry: defaultAclEntries) { System.out.println(entry); } }
@Test public void inheritNonExtendedDefaultAcl() throws Exception { AlluxioURI dir = new AlluxioURI("/dir"); mFileSystemMaster.createDirectory(dir, CreateDirectoryContext.defaults()); String aclString = "default:user::-w-"; mFileSystemMaster.setAcl(dir, SetAclAction.MODIFY, Arrays.asList(AclEntry.fromCliString(aclString)), SetAclContext.defaults()); AlluxioURI inner = new AlluxioURI("/dir/inner"); mFileSystemMaster.createDirectory(inner, CreateDirectoryContext.defaults()); FileInfo fileInfo = mFileSystemMaster.getFileInfo(inner, GetStatusContext.defaults()); List<String> accessEntries = fileInfo.getAcl().toStringEntries(); assertTrue(accessEntries.toString(), accessEntries.contains("user::-w-")); List<String> defaultEntries = fileInfo.getDefaultAcl().toStringEntries(); assertTrue(defaultEntries.toString(), defaultEntries.contains(aclString)); }
@Test public void inheritExtendedDefaultAcl() throws Exception { AlluxioURI dir = new AlluxioURI("/dir"); mFileSystemMaster.createDirectory(dir, CreateDirectoryContext.defaults()); String aclString = "default:user:foo:-w-"; mFileSystemMaster.setAcl(dir, SetAclAction.MODIFY, Arrays.asList(AclEntry.fromCliString(aclString)), SetAclContext.defaults()); AlluxioURI inner = new AlluxioURI("/dir/inner"); mFileSystemMaster.createDirectory(inner, CreateDirectoryContext.defaults()); FileInfo fileInfo = mFileSystemMaster.getFileInfo(inner, GetStatusContext.defaults()); List<String> accessEntries = fileInfo.getAcl().toStringEntries(); assertTrue(accessEntries.toString(), accessEntries.contains("user:foo:-w-")); List<String> defaultEntries = fileInfo.getDefaultAcl().toStringEntries(); assertTrue(defaultEntries.toString(), defaultEntries.contains(aclString)); }