This is an automated email from the ASF dual-hosted git repository.
wlo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/gobblin.git
The following commit(s) were added to refs/heads/master by this push:
new 2917b6311 [GOBBLIN-1866] Preserve sticky bit across distcp copies
(#3726)
2917b6311 is described below
commit 2917b6311949d25f898a6691fe0730d344299d25
Author: y242yang <[email protected]>
AuthorDate: Wed Aug 2 15:06:55 2023 -0700
[GOBBLIN-1866] Preserve sticky bit across distcp copies (#3726)
* [gobblin] move sticky bit
* [gobblin] add unit test to sticky bit
---------
Co-authored-by: Yiming Yang <[email protected]>
---
.../writer/FileAwareInputStreamDataWriter.java | 2 +-
.../writer/FileAwareInputStreamDataWriterTest.java | 25 ++++++++--------------
2 files changed, 10 insertions(+), 17 deletions(-)
diff --git
a/gobblin-data-management/src/main/java/org/apache/gobblin/data/management/copy/writer/FileAwareInputStreamDataWriter.java
b/gobblin-data-management/src/main/java/org/apache/gobblin/data/management/copy/writer/FileAwareInputStreamDataWriter.java
index 837174c20..2712cc67e 100644
---
a/gobblin-data-management/src/main/java/org/apache/gobblin/data/management/copy/writer/FileAwareInputStreamDataWriter.java
+++
b/gobblin-data-management/src/main/java/org/apache/gobblin/data/management/copy/writer/FileAwareInputStreamDataWriter.java
@@ -417,7 +417,7 @@ public class FileAwareInputStreamDataWriter extends
InstrumentedDataWriter<FileA
static FsPermission addExecutePermissionToOwner(FsPermission fsPermission) {
FsAction newOwnerAction =
fsPermission.getUserAction().or(FsAction.EXECUTE);
- return new FsPermission(newOwnerAction, fsPermission.getGroupAction(),
fsPermission.getOtherAction());
+ return new FsPermission(newOwnerAction, fsPermission.getGroupAction(),
fsPermission.getOtherAction(), fsPermission.getStickyBit());
}
@Override
diff --git
a/gobblin-data-management/src/test/java/org/apache/gobblin/data/management/copy/writer/FileAwareInputStreamDataWriterTest.java
b/gobblin-data-management/src/test/java/org/apache/gobblin/data/management/copy/writer/FileAwareInputStreamDataWriterTest.java
index bb88c2f71..8807de3f8 100644
---
a/gobblin-data-management/src/test/java/org/apache/gobblin/data/management/copy/writer/FileAwareInputStreamDataWriterTest.java
+++
b/gobblin-data-management/src/test/java/org/apache/gobblin/data/management/copy/writer/FileAwareInputStreamDataWriterTest.java
@@ -574,22 +574,15 @@ public class FileAwareInputStreamDataWriterTest {
@Test
public void testAddExecutePermission() {
-
Assert.assertEquals(FileAwareInputStreamDataWriter.addExecutePermissionToOwner(new
FsPermission("000")),
- new FsPermission("100"));
-
Assert.assertEquals(FileAwareInputStreamDataWriter.addExecutePermissionToOwner(new
FsPermission("100")),
- new FsPermission("100"));
-
Assert.assertEquals(FileAwareInputStreamDataWriter.addExecutePermissionToOwner(new
FsPermission("200")),
- new FsPermission("300"));
-
Assert.assertEquals(FileAwareInputStreamDataWriter.addExecutePermissionToOwner(new
FsPermission("400")),
- new FsPermission("500"));
-
Assert.assertEquals(FileAwareInputStreamDataWriter.addExecutePermissionToOwner(new
FsPermission("600")),
- new FsPermission("700"));
-
Assert.assertEquals(FileAwareInputStreamDataWriter.addExecutePermissionToOwner(new
FsPermission("700")),
- new FsPermission("700"));
-
Assert.assertEquals(FileAwareInputStreamDataWriter.addExecutePermissionToOwner(new
FsPermission("211")),
- new FsPermission("311"));
-
Assert.assertEquals(FileAwareInputStreamDataWriter.addExecutePermissionToOwner(new
FsPermission("250")),
- new FsPermission("350"));
+ String[] setPermissions = {"000", "100", "200", "400", "600", "700",
"211", "250"};
+ String[] expectPermissions = {"100", "100", "300", "500", "700", "700",
"311", "350"};
+ String[] stickyBit = {"" ,"1"};
+ for (String bit : stickyBit) {
+ for (int index = 0; index < setPermissions.length; ++index) {
+
Assert.assertEquals(FileAwareInputStreamDataWriter.addExecutePermissionToOwner(new
FsPermission(bit + setPermissions[index])),
+ new FsPermission(bit + expectPermissions[index]));
+ }
+ }
}
@Test