[
https://issues.apache.org/jira/browse/HADOOP-18444?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17601430#comment-17601430
]
ASF GitHub Bot commented on HADOOP-18444:
-----------------------------------------
xinglin opened a new pull request, #4869:
URL: https://github.com/apache/hadoop/pull/4869
<!--
Thanks for sending a pull request!
1. If this is your first time, please read our contributor guidelines:
https://cwiki.apache.org/confluence/display/HADOOP/How+To+Contribute
2. Make sure your PR title starts with JIRA issue id, e.g.,
'HADOOP-17799. Your PR title ...'.
-->
### Description of PR
Trash.moveToAppropriateTrash is used by hadoop cli -rm and hive, to move
files to trash. However, its current implementation does not support localized
trash policy we added to ViewFileSystem in
[HADOOP-18144](https://issues.apache.org/jira/browse/HADOOP-18144).
The reason is in moveToAppropriateTrash, it first resolves a path and then
uses the resolvedFs, to initialize the trash. As a result, it uses
getTrashRoot() implementation from targetFs, not ViewFileSystem. The new
localized trash policy we implemented in ViewFileSystem is not used.
With this patch, we check whether the FileSystem object is a ViewFileSystem
object and whether the localized trash policy flag is set. If both conditions
are true, we initialize the Trash object with the ViewFileSystem FS object and
call moveToTrash() with the logical path directly.
### How was this patch tested?
Passed a new test added to TestViewFsTrash
`mvn test -Dtest="TestViewFsTrash"`
> Add Support for localized trash for ViewFileSystem in
> Trash.moveToAppropriateTrash
> ----------------------------------------------------------------------------------
>
> Key: HADOOP-18444
> URL: https://issues.apache.org/jira/browse/HADOOP-18444
> Project: Hadoop Common
> Issue Type: Bug
> Reporter: Xing Lin
> Assignee: Xing Lin
> Priority: Major
>
> Trash.moveToAppropriateTrash is used by _hadoop cli -rm_ and hive, to move
> files to trash. However, its current implementation does not support
> localized trash policy we added to ViewFileSystem in HADOOP-18144.
> The reason is in moveToAppropriateTrash, it first resolves a path and then
> uses the resolvedFs, to initialize the trash. As a result, it uses
> getTrashRoot() implementation from targetFs, not ViewFileSystem. The new
> localized trash policy we implemented in ViewFileSystem is not invoked.
> With the new localized trash policy for ViewFileSystem, the trash root would
> be local to a mount point, thus, for ViewFileSystem with this flag turned on,
> there is no need to resolve the path in moveToAppropriateTrash. Rename in
> ViewFileSystem can resolve the logical paths correctly and be able to move a
> file to trash within a mount point.
> Code section of current moveToAppropriateTrash implementation.
> {code:java}
> public static boolean moveToAppropriateTrash(FileSystem fs, Path p,
> Configuration conf) throws IOException {
> Path fullyResolvedPath = fs.resolvePath(p);
> FileSystem fullyResolvedFs =
> FileSystem.get(fullyResolvedPath.toUri(), conf);
> ...
> Trash trash = new Trash(fullyResolvedFs, conf);
> return trash.moveToTrash(fullyResolvedPath);
> }{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]