MAPREDUCE-7375 JobSubmissionFiles don't set right permission after mkdirs (#4237)
Signed-off-by: Chris Nauroth <cnauroth@apache.org>
(cherry picked from commit 36bf54aba0
)
This commit is contained in:
parent
f5e9901e6d
commit
eef2fdcc29
|
@ -159,7 +159,7 @@ public class JobSubmissionFiles {
|
|||
fs.setPermission(stagingArea, JOB_DIR_PERMISSION);
|
||||
}
|
||||
} catch (FileNotFoundException e) {
|
||||
fs.mkdirs(stagingArea, new FsPermission(JOB_DIR_PERMISSION));
|
||||
FileSystem.mkdirs(fs, stagingArea, new FsPermission(JOB_DIR_PERMISSION));
|
||||
}
|
||||
return stagingArea;
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
package org.apache.hadoop.mapreduce;
|
||||
|
||||
import org.apache.hadoop.conf.Configuration;
|
||||
import org.apache.hadoop.fs.CommonConfigurationKeys;
|
||||
import org.apache.hadoop.fs.FileStatus;
|
||||
import org.apache.hadoop.fs.FileSystem;
|
||||
import org.apache.hadoop.fs.FileSystemTestHelper;
|
||||
|
@ -33,6 +34,8 @@ import static org.junit.Assert.assertEquals;
|
|||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import org.apache.hadoop.hdfs.MiniDFSCluster;
|
||||
import org.apache.hadoop.hdfs.HdfsConfiguration;
|
||||
/**
|
||||
* Tests for JobSubmissionFiles Utility class.
|
||||
*/
|
||||
|
@ -139,4 +142,26 @@ public class TestJobSubmissionFiles {
|
|||
assertEquals(stagingPath,
|
||||
JobSubmissionFiles.getStagingDir(cluster, conf, user));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDirPermission() throws Exception {
|
||||
Cluster cluster = mock(Cluster.class);
|
||||
HdfsConfiguration conf = new HdfsConfiguration();
|
||||
conf.set(CommonConfigurationKeys.FS_PERMISSIONS_UMASK_KEY, "700");
|
||||
MiniDFSCluster dfsCluster = null;
|
||||
try {
|
||||
dfsCluster = new MiniDFSCluster.Builder(conf).numDataNodes(2).build();
|
||||
FileSystem fs = dfsCluster.getFileSystem();
|
||||
UserGroupInformation user = UserGroupInformation
|
||||
.createUserForTesting(USER_1_SHORT_NAME, GROUP_NAMES);
|
||||
Path stagingPath = new Path(fs.getUri().toString() + "/testDirPermission");
|
||||
when(cluster.getStagingAreaDir()).thenReturn(stagingPath);
|
||||
Path res = JobSubmissionFiles.getStagingDir(cluster, conf, user);
|
||||
assertEquals(new FsPermission(0700), fs.getFileStatus(res).getPermission());
|
||||
} finally {
|
||||
if (dfsCluster != null) {
|
||||
dfsCluster.shutdown();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue