浏览代码

HUE-5296 [fb] Deleting a file from File Browser should determine the trash dir via getTrashRoots

Jenny Kim 9 年之前
父节点
当前提交
07e78ae
共有 1 个文件被更改,包括 13 次插入1 次删除
  1. 13 1
      desktop/libs/hadoop/src/hadoop/fs/webhdfs.py

+ 13 - 1
desktop/libs/hadoop/src/hadoop/fs/webhdfs.py

@@ -163,7 +163,19 @@ class WebHdfs(Hdfs):
 
   @property
   def trash_path(self):
-    return self.join(self.get_home_dir(), '.Trash')
+    trash_path = self.join(self.get_home_dir(), '.Trash')
+    try:
+      path = '/'
+      params = self._getparams()
+      params['op'] = 'GETTRASHROOT'
+      json = self._root.get(path, params)
+      trash_path = json['Path']
+    except WebHdfsException, e:
+      if 'IllegalArgumentException' in e.message:
+        LOG.warn('WebHDFS operation GETTRASHROOT is not implemented, returning default trash path: %s' % trash_path)
+      else:
+        raise e
+    return trash_path
 
   @property
   def current_trash_path(self):