/** * @return the default ACL entries for this path, mutable */ public DefaultAccessControlList getDefaultAcl() { return mInfo.getDefaultAcl(); }
@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)); }
@Test public void removeExtendedDefaultAclMask() throws Exception { mFileSystemMaster.createDirectory(NESTED_URI, CreateDirectoryContext .defaults(CreateDirectoryPOptions.newBuilder().setRecursive(true))); AclEntry newAcl = AclEntry.fromCliString("default:user:newuser:rwx"); // Add an ACL addAcl(NESTED_URI, newAcl); assertThat(getInfo(NESTED_URI).getDefaultAcl().getEntries(), hasItem(newAcl)); // Attempt to remove the ACL mask AclEntry maskEntry = AclEntry.fromCliString("default:mask::rwx"); assertThat(getInfo(NESTED_URI).getDefaultAcl().getEntries(), hasItem(maskEntry)); try { removeAcl(NESTED_URI, maskEntry); fail("Expected removing the mask from an extended ACL to fail"); } catch (IOException e) { assertThat(e.getMessage(), containsString("mask")); } // Remove the extended ACL removeAcl(NESTED_URI, newAcl); // Now we can add and remove a mask addAcl(NESTED_URI, maskEntry); removeAcl(NESTED_URI, maskEntry); }
builder.setAcl(toProto(fileInfo.getAcl())); if (!fileInfo.getDefaultAcl().equals(DefaultAccessControlList.EMPTY_DEFAULT_ACL)) { builder.setDefaultAcl(toProto(fileInfo.getDefaultAcl()));
Assert.assertEquals(a.getInAlluxioPercentage(), b.getInAlluxioPercentage()); Assert.assertEquals(a.getAcl(), b.getAcl()); Assert.assertEquals(a.getDefaultAcl(), b.getDefaultAcl()); Assert.assertEquals(a.getUfsFingerprint(), b.getUfsFingerprint()); Assert.assertEquals(a.getReplicationMax(), b.getReplicationMax());