[
https://issues.apache.org/jira/browse/HADOOP-18117?focusedWorklogId=724232&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-724232
]
ASF GitHub Bot logged work on HADOOP-18117:
-------------------------------------------
Author: ASF GitHub Bot
Created on: 10/Feb/22 02:16
Start Date: 10/Feb/22 02:16
Worklog Time Spent: 10m
Work Description: mohan3d commented on pull request #3970:
URL: https://github.com/apache/hadoop/pull/3970#issuecomment-1034420347
@whbing you mean something like this to test functionality before and after?
BTW, I put this unittest in **TestDistCpSystem.java**, let me know if it's
not an appropriate place.
```java
@Test
public void testUpdateRootDirectoryAttributes() throws Exception {
FileSystem fs = cluster.getFileSystem();
Path source = new Path("/src");
Path dest1 = new Path("/dest1");
Path dest2 = new Path("/dest2");
fs.delete(source, true);
fs.delete(dest1, true);
fs.delete(dest2, true);
// Create a source dir
fs.mkdirs(source);
fs.setOwner(source,"userA", "groupA");
fs.setTimes(source, new Random().nextLong(), new Random().nextLong());
GenericTestUtils.createFiles(fs, source, 3, 5, 5);
// should not preserve attrs
DistCpTestUtils.assertRunDistCp(DistCpConstants.SUCCESS,
source.toString(),
dest1.toString(), "-p -update", conf);
FileStatus srcStatus = fs.getFileStatus(source);
FileStatus destStatus1 = fs.getFileStatus(dest1);
assertNotEquals(destStatus1.getOwner(), srcStatus.getOwner());
assertNotEquals(destStatus1.getModificationTime(),
srcStatus.getModificationTime());
// should preserve attrs
DistCpTestUtils.assertRunDistCp(DistCpConstants.SUCCESS,
source.toString(),
dest2.toString(), "-p -update -updateRootDirectoryAttributes", conf);
FileStatus destStatus2 = fs.getFileStatus(dest1);
assertEquals(destStatus2.getOwner(), srcStatus.getOwner());
assertEquals(destStatus2.getModificationTime(),
srcStatus.getModificationTime());
}
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 724232)
Time Spent: 40m (was: 0.5h)
> Add an option to preserve root directory permissions
> ----------------------------------------------------
>
> Key: HADOOP-18117
> URL: https://issues.apache.org/jira/browse/HADOOP-18117
> Project: Hadoop Common
> Issue Type: Improvement
> Reporter: Mohanad Elsafty
> Assignee: Mohanad Elsafty
> Priority: Minor
> Labels: pull-request-available
> Time Spent: 40m
> Remaining Estimate: 0h
>
> As mentioned in https://issues.apache.org/jira/browse/HADOOP-15211
>
> If *-update* or *-overwrite* is being passed when *distcp* used, the root
> directory will be skipped in two occasions (CopyListing#doBuildListing &
> CopyCommitter#preserveFileAttributesForDirectories), which will ignore root
> directory's attributes.
>
> We face the same issue when distcp huge data between clusters and it takes
> too much effort to update root directories attributes manually.
>
> From the earlier ticket it's obvious why this behaviour is there, but
> sometime we need to enforce root directory update hence I will add a new
> option for distcp to enable someone (who understands the need of this and
> know what they are doing) to enforce the update of root directory's
> attributes (permissions, ownership, ...)
>
> It should be simple one, something like this
> {code:java}
> $ hadoop distcp -p -update -updateRootDirectoryAttributes /a/b/c /a/b/d {code}
> This behaviour is optional and will be *false* by default. (it should not
> affect existing *distcp* users).
--
This message was sent by Atlassian Jira
(v8.20.1#820001)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]