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

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

                Author: ASF GitHub Bot
            Created on: 09/Nov/22 00:45
            Start Date: 09/Nov/22 00:45
    Worklog Time Spent: 10m 
      Work Description: meethngala commented on code in PR #3577:
URL: https://github.com/apache/gobblin/pull/3577#discussion_r1017273123


##########
gobblin-data-management/src/test/java/org/apache/gobblin/data/management/copy/iceberg/IcebergDatasetTest.java:
##########
@@ -246,52 +246,74 @@ public void 
testGenerateCopyEntitiesMultiSnapshotWhenDestEmpty() throws IOExcept
         MANIFEST_LIST_PATH_1, MANIFEST_PATH_1, MANIFEST_DATA_PATH_1A, 
MANIFEST_DATA_PATH_1B);
 
     MockFileSystemBuilder sourceBuilder = new 
MockFileSystemBuilder(SRC_FS_URI);
-    sourceBuilder.addPaths(expectedPaths);
+    sourceBuilder.addPathsAndFileStatuses(expectedPaths, false);
     FileSystem sourceFs = sourceBuilder.build();
 
     IcebergTable icebergTable = 
MockIcebergTable.withSnapshots(Arrays.asList(SNAPSHOT_PATHS_1, 
SNAPSHOT_PATHS_0));
-    IcebergDataset icebergDataset = new TrickIcebergDataset(testDbName, 
testTblName, icebergTable, new Properties(), sourceFs);
+    IcebergDataset icebergDataset =
+        new TrickIcebergDataset(testDbName, testTblName, icebergTable, new 
Properties(), sourceFs);
 
     MockFileSystemBuilder destBuilder = new MockFileSystemBuilder(DEST_FS_URI);
     FileSystem destFs = destBuilder.build();
 
-    CopyConfiguration copyConfiguration = CopyConfiguration.builder(destFs, 
copyConfigProperties)
-        .preserve(PreserveAttributes.fromMnemonicString(""))
-        .copyContext(new CopyContext())
-        .build();
+    CopyConfiguration copyConfiguration =
+        CopyConfiguration.builder(destFs, 
copyConfigProperties).preserve(PreserveAttributes.fromMnemonicString(""))
+            .copyContext(new CopyContext()).build();
     Collection<CopyEntity> copyEntities = 
icebergDataset.generateCopyEntities(destFs, copyConfiguration);
     verifyCopyEntities(copyEntities, expectedPaths);
   }
 
+  @Test
+  public void testFsOwnershipAndPermissionPreservationWhenDestEmpty() throws 
IOException {
+    List<String> expectedPaths = Arrays.asList(METADATA_PATH, 
MANIFEST_LIST_PATH_0,
+        MANIFEST_PATH_0, MANIFEST_DATA_PATH_0A, MANIFEST_DATA_PATH_0B);
+    MockFileSystemBuilder sourceBuilder = new 
MockFileSystemBuilder(SRC_FS_URI);
+    sourceBuilder.addPathsAndFileStatuses(expectedPaths, true);
+    FileSystem sourceFs = sourceBuilder.build();
+
+    IcebergTable icebergTable = 
MockIcebergTable.withSnapshots(Arrays.asList(SNAPSHOT_PATHS_0));
+    IcebergDataset icebergDataset = new TrickIcebergDataset(testDbName, 
testTblName, icebergTable, new Properties(), sourceFs);
+
+    MockFileSystemBuilder destBuilder = new MockFileSystemBuilder(DEST_FS_URI);
+    FileSystem destFs = destBuilder.build();
+
+    CopyConfiguration copyConfiguration =
+        CopyConfiguration.builder(destFs, copyConfigProperties)
+            // preserving attributes for owner, group and permissions 
respectively
+            .preserve(PreserveAttributes.fromMnemonicString("ugp"))
+            .copyContext(new CopyContext()).build();

Review Comment:
   added a counter test!





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

    Worklog Id:     (was: 824387)
    Time Spent: 2h  (was: 1h 50m)

> Preserve Ancestor Owner and Permissions for Fs between Src and Dest for 
> Iceberg Distcp
> --------------------------------------------------------------------------------------
>
>                 Key: GOBBLIN-1720
>                 URL: https://issues.apache.org/jira/browse/GOBBLIN-1720
>             Project: Apache Gobblin
>          Issue Type: Improvement
>            Reporter: Meeth Gala
>            Priority: Major
>          Time Spent: 2h
>  Remaining Estimate: 0h
>
> We want to preserve the Fs ownership and permissions between src and dest 
> while performing an Iceberg based distcp. Currently, we are preserving all 
> the permissions up to root dir for Iceberg tables.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to