Browse Source

AMBARI-15044. HDFS API ignores fs.permissions.umask-mode property. (Gaurav Nagar via dipayanb)

Dipayan Bhowmick 9 years ago
parent
commit
b0ab893ff0

+ 8 - 0
contrib/views/files/src/main/resources/view.xml

@@ -87,6 +87,14 @@
         <required>false</required>
         <cluster-config>fake</cluster-config>
     </parameter>
+    <parameter>
+        <name>hdfs.umask-mode</name>
+        <description>The umask used when creating files and directories. Defaults to 022</description>
+        <label>Umask</label>
+        <default-value>022</default-value>
+        <required>false</required>
+        <cluster-config>hdfs-site/fs.permissions.umask-mode</cluster-config>
+    </parameter>
     <parameter>
         <name>hdfs.auth_to_local</name>
         <description>Auth to Local Configuration</description>

+ 9 - 0
contrib/views/hive/src/main/resources/view.xml

@@ -166,6 +166,15 @@
         <required>false</required>
     </parameter>
 
+    <parameter>
+        <name>hdfs.umask-mode</name>
+        <description>The umask used when creating files and directories. Defaults to 022</description>
+        <label>Umask</label>
+        <default-value>022</default-value>
+        <required>false</required>
+        <cluster-config>hdfs-site/fs.permissions.umask-mode</cluster-config>
+    </parameter>
+
     <parameter>
         <name>hdfs.auth_to_local</name>
         <description>Auth to Local Configuration</description>

+ 9 - 0
contrib/views/pig/src/main/resources/view.xml

@@ -91,6 +91,15 @@
         <cluster-config>fake</cluster-config>
     </parameter>
 
+    <parameter>
+        <name>hdfs.umask-mode</name>
+        <description>The umask used when creating files and directories. Defaults to 022</description>
+        <label>Umask</label>
+        <default-value>022</default-value>
+        <required>false</required>
+        <cluster-config>hdfs-site/fs.permissions.umask-mode</cluster-config>
+    </parameter>
+
     <parameter>
         <name>webhdfs.username</name>
         <description>User and doAs for proxy user for HDFS. By default, uses the currently logged-in Ambari user.</description>

+ 6 - 0
contrib/views/utils/src/main/java/org/apache/ambari/view/utils/hdfs/ConfigurationBuilder.java

@@ -63,6 +63,9 @@ public class ConfigurationBuilder {
   public static final String FAILOVER_PROXY_PROVIDER_INSTANCE_PROPERTY = "webhdfs.client.failover.proxy.provider";
   public static final String FAILOVER_PROXY_PROVIDER_CLUSTER_PROPERTY  = "dfs.client.failover.proxy.provider.%s";
 
+  public static final String UMASK_CLUSTER_PROPERTY = "fs.permissions.umask-mode";
+  public static final String UMASK_INSTANCE_PROPERTY = "hdfs.umask-mode";
+
   private Configuration conf = new Configuration();
   private ViewContext context;
   private AmbariApi ambariApi = null;
@@ -224,6 +227,9 @@ public class ConfigurationBuilder {
     parseProperties();
     setAuthParams(buildAuthenticationConfig());
 
+    String umask = context.getProperties().get(UMASK_INSTANCE_PROPERTY);
+    if(umask != null && !umask.isEmpty()) conf.set(UMASK_CLUSTER_PROPERTY,umask);
+
     conf.set("fs.hdfs.impl", DistributedFileSystem.class.getName());
     conf.set("fs.webhdfs.impl", WebHdfsFileSystem.class.getName());
     conf.set("fs.file.impl", LocalFileSystem.class.getName());