Repository: ambari
Updated Branches:
  refs/heads/trunk ccf34af2a -> fb12cc209


AMBARI-5742. View: Files support for optional username view parameter. (jaimin)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/fb12cc20
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/fb12cc20
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/fb12cc20

Branch: refs/heads/trunk
Commit: fb12cc209bdd30978cd1b2262ab7dc0f0429c9d6
Parents: ccf34af
Author: Jaimin Jetly <jai...@hortonworks.com>
Authored: Mon May 12 12:32:14 2014 -0700
Committer: Jaimin Jetly <jai...@hortonworks.com>
Committed: Mon May 12 12:32:14 2014 -0700

----------------------------------------------------------------------
 .../apache/ambari/view/filebrowser/HdfsService.java   | 14 +++++++++++++-
 contrib/views/files/src/main/resources/view.xml       |  6 +++++-
 .../ambari/view/filebrowser/FilebrowserTest.java      |  7 +++++++
 3 files changed, 25 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/fb12cc20/contrib/views/files/src/main/java/org/apache/ambari/view/filebrowser/HdfsService.java
----------------------------------------------------------------------
diff --git 
a/contrib/views/files/src/main/java/org/apache/ambari/view/filebrowser/HdfsService.java
 
b/contrib/views/files/src/main/java/org/apache/ambari/view/filebrowser/HdfsService.java
index 6765de0..9ece468 100644
--- 
a/contrib/views/files/src/main/java/org/apache/ambari/view/filebrowser/HdfsService.java
+++ 
b/contrib/views/files/src/main/java/org/apache/ambari/view/filebrowser/HdfsService.java
@@ -66,9 +66,21 @@ public abstract class HdfsService {
   public HdfsApi getApi(ViewContext context) throws IOException, Exception {
     if (_api == null) {
       Thread.currentThread().setContextClassLoader(null);
-      _api = new HdfsApi(context.getProperties().get("dataworker.defaultFs"), 
context.getUsername());
+      _api = new HdfsApi(context.getProperties().get("dataworker.defaultFs"), 
getUsername(context));
     }
     return _api;
   }
 
+  /**
+   * Get username to use in HDFS
+   * @param context View Context instance
+   * @return user name
+   */
+  public String getUsername(ViewContext context) {
+    String username = context.getProperties().get("dataworker.username");
+    if (username == null || username.isEmpty())
+      username = context.getUsername();
+    return username;
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/ambari/blob/fb12cc20/contrib/views/files/src/main/resources/view.xml
----------------------------------------------------------------------
diff --git a/contrib/views/files/src/main/resources/view.xml 
b/contrib/views/files/src/main/resources/view.xml
index 1922fa3..3d9b610 100644
--- a/contrib/views/files/src/main/resources/view.xml
+++ b/contrib/views/files/src/main/resources/view.xml
@@ -24,7 +24,11 @@
         <description>FileSystem URI</description>
         <required>true</required>
     </parameter>
-
+    <parameter>
+        <name>dataworker.username</name>
+        <description>The username (defaults to ViewContext 
username)</description>
+        <required>false</required>
+    </parameter>
     
     <resource>
         <name>files</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/fb12cc20/contrib/views/files/src/test/java/org/apache/ambari/view/filebrowser/FilebrowserTest.java
----------------------------------------------------------------------
diff --git 
a/contrib/views/files/src/test/java/org/apache/ambari/view/filebrowser/FilebrowserTest.java
 
b/contrib/views/files/src/test/java/org/apache/ambari/view/filebrowser/FilebrowserTest.java
index ba5f316..6eb10e3 100644
--- 
a/contrib/views/files/src/test/java/org/apache/ambari/view/filebrowser/FilebrowserTest.java
+++ 
b/contrib/views/files/src/test/java/org/apache/ambari/view/filebrowser/FilebrowserTest.java
@@ -155,6 +155,13 @@ public class FilebrowserTest{
     Response result = fileBrowserService.download().downloadGZip(dr);
   }
 
+  @Test
+  public void testUsername() throws Exception {
+    Assert.assertEquals(System.getProperty("user.name"), 
fileBrowserService.upload().getUsername(context));
+    properties.put("dataworker.username", "test-user");
+    Assert.assertEquals("test-user", 
fileBrowserService.upload().getUsername(context));
+  }
+
   private static <T> T getService(Class<T> clazz,
                                   final ViewResourceHandler 
viewResourceHandler,
                                   final ViewContext viewInstanceContext) {

Reply via email to