[ 
https://issues.apache.org/jira/browse/GOBBLIN-2208?focusedWorklogId=970118&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-970118
 ]

ASF GitHub Bot logged work on GOBBLIN-2208:
-------------------------------------------

                Author: ASF GitHub Bot
            Created on: 21/May/25 05:49
            Start Date: 21/May/25 05:49
    Worklog Time Spent: 10m 
      Work Description: vsinghal85 commented on code in PR #4117:
URL: https://github.com/apache/gobblin/pull/4117#discussion_r2099409354


##########
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);
+    Path targetDir = new Path(testDir, "target");
+
+    Mockito.when(fs.exists(targetDir)).thenReturn(false);
+    Mockito.when(fs.exists(targetDir.getParent())).thenReturn(true);
+
+    // Create ACL entries
+    List<AclEntry> aclEntries = Lists.newArrayList(
+        new AclEntry.Builder()
+            .setName("user1")
+            .setType(AclEntryType.USER)
+            .setScope(AclEntryScope.ACCESS)
+            .setPermission(FsAction.ALL)
+            .build(),
+        new AclEntry.Builder()
+            .setName("group1")
+            .setType(AclEntryType.GROUP)
+            .setScope(AclEntryScope.ACCESS)
+            .setPermission(FsAction.READ_EXECUTE)
+            .build()
+    );
+
+    // Create OwnerAndPermission with the ACLs
+    OwnerAndPermission ownerAndPermission = 
getOwnerAndPermissionForAclEntries(aclEntries);
+
+    // Mock mkdirs to return true
+    Mockito.when(fs.mkdirs(targetDir)).thenReturn(true);
+    // Call ensureDirectoryExists with copyOnlySourceAclToDest=true
+    HadoopUtils.ensureDirectoryExists(fs, targetDir,
+        Collections.singletonList(ownerAndPermission).listIterator(),
+        true, true);
+    // Verify mkdirs was called
+    Mockito.verify(fs).mkdirs(targetDir);
+    Mockito.verify(fs).removeAcl(targetDir);
+    // Verify modifyAclEntries was called with correct ACLs
+    Mockito.verify(fs).modifyAclEntries(targetDir, aclEntries);
+  }
+
+  @Test
+  public void testEnsureDirectoryExistsWithExistingDirectory() throws 
Exception {
+    final Path testDir = new Path(new Path(TEST_DIR_PATH), 
TEST_CHILD_DIR_NAME);
+    FileSystem fs = Mockito.mock(FileSystem.class);
+    // Create target directory path
+    Path targetDir = new Path(testDir, "target");
+
+    Mockito.when(fs.exists(targetDir)).thenReturn(true);
+    Mockito.when(fs.exists(targetDir.getParent())).thenReturn(true);

Review Comment:
   I prefer it this way, since this is more readable, combining in one line 
would be over optimization here.





Issue Time Tracking
-------------------

            Worklog Id:     (was: 970118)
    Remaining Estimate: 0h
            Time Spent: 10m

> 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: 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