[ 
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)

Reply via email to