[
https://issues.apache.org/jira/browse/GOBBLIN-2208?focusedWorklogId=970126&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-970126
]
ASF GitHub Bot logged work on GOBBLIN-2208:
-------------------------------------------
Author: ASF GitHub Bot
Created on: 21/May/25 07:26
Start Date: 21/May/25 07:26
Worklog Time Spent: 10m
Work Description: vsinghal85 commented on code in PR #4117:
URL: https://github.com/apache/gobblin/pull/4117#discussion_r2099561877
##########
gobblin-utility/src/test/java/org/apache/gobblin/util/HadoopUtilsTest.java:
##########
@@ -333,4 +344,166 @@ public void testMoveToTrash() throws IOException {
Assert.assertFalse(fs.exists(hadoopUtilsTestDir));
Assert.assertTrue(fs.exists(trashPath));
}
+
+ @Test
+ public void testEnsureDirectoryExistsWithAclPreservation() throws Exception {
+ final Path testDir = new Path(new Path(TEST_DIR_PATH),
"HadoopUtilsTestDir");
+ FileSystem fs = Mockito.mock(FileSystem.class);
Review Comment:
Local filesystem does not support ACL operations, therefore It would not be
able to test using that, probably none of the existing tests were covering ACL
logic, using mockito only seemed way out to tests ACL cases
##########
gobblin-utility/src/main/java/org/apache/gobblin/util/HadoopUtils.java:
##########
@@ -783,14 +816,21 @@ public static void ensureDirectoryExists(FileSystem fs,
Path path, Iterator<Owne
OwnerAndPermission ownerAndPermission =
ownerAndPermissionIterator.next();
if (path.getParent() != null) {
- ensureDirectoryExists(fs, path.getParent(),
ownerAndPermissionIterator, failIfOwnerSetFails);
+ ensureDirectoryExists(fs, path.getParent(),
ownerAndPermissionIterator, failIfOwnerSetFails, copyOnlySourceAclToDest);
}
if (!fs.mkdirs(path)) {
// fs.mkdirs returns false if path already existed. Do not overwrite
permissions
return;
}
-
+ try {
+ if (copyOnlySourceAclToDest) {
+ fs.removeAcl(path);
+ }
+ } catch(UnsupportedOperationException uoe) {
+ // ignore ACL calls through some unit tests, as it is not supported
for local FileSystem
+ log.info("removeACL operation is not supported for this file system");
Review Comment:
updated
Issue Time Tracking
-------------------
Worklog Id: (was: 970126)
Time Spent: 1h 10m (was: 1h)
> ACL Mismatch between source and dest for Manifest based copy
> ------------------------------------------------------------
>
> Key: GOBBLIN-2208
> URL: https://issues.apache.org/jira/browse/GOBBLIN-2208
> Project: Apache Gobblin
> Issue Type: Bug
> Reporter: Vaibhav Singhal
> Priority: Major
> Time Spent: 1h 10m
> Remaining Estimate: 0h
>
> During manifest based copy due to default ACL inheritence in the destination,
> after manifest based copy source and destination end up having different
> ACL's for source and destination
--
This message was sent by Atlassian Jira
(v8.20.10#820010)