|
@@ -72,6 +72,7 @@ public class TestDFSPermission extends TestCase {
|
|
|
final private static Path NON_EXISTENT_FILE = new Path("/NonExistentFile");
|
|
|
|
|
|
private FileSystem fs;
|
|
|
+ private MiniDFSCluster cluster;
|
|
|
private static Random r;
|
|
|
|
|
|
static {
|
|
@@ -105,18 +106,25 @@ public class TestDFSPermission extends TestCase {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void setUp() throws IOException {
|
|
|
+ cluster = new MiniDFSCluster.Builder(conf).numDataNodes(3).build();
|
|
|
+ cluster.waitActive();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void tearDown() throws IOException {
|
|
|
+ if (cluster != null) {
|
|
|
+ cluster.shutdown();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/** This tests if permission setting in create, mkdir, and
|
|
|
* setPermission works correctly
|
|
|
*/
|
|
|
public void testPermissionSetting() throws Exception {
|
|
|
- MiniDFSCluster cluster = new MiniDFSCluster.Builder(conf).numDataNodes(3).build();
|
|
|
- try {
|
|
|
- cluster.waitActive();
|
|
|
- testPermissionSetting(OpType.CREATE); // test file creation
|
|
|
- testPermissionSetting(OpType.MKDIRS); // test directory creation
|
|
|
- } finally {
|
|
|
- cluster.shutdown();
|
|
|
- }
|
|
|
+ testPermissionSetting(OpType.CREATE); // test file creation
|
|
|
+ testPermissionSetting(OpType.MKDIRS); // test directory creation
|
|
|
}
|
|
|
|
|
|
private void initFileSystem(short umask) throws Exception {
|
|
@@ -245,17 +253,22 @@ public class TestDFSPermission extends TestCase {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * check that ImmutableFsPermission can be used as the argument
|
|
|
+ * to setPermission
|
|
|
+ */
|
|
|
+ public void testImmutableFsPermission() throws IOException {
|
|
|
+ fs = FileSystem.get(conf);
|
|
|
+
|
|
|
+ // set the permission of the root to be world-wide rwx
|
|
|
+ fs.setPermission(new Path("/"),
|
|
|
+ FsPermission.createImmutable((short)0777));
|
|
|
+ }
|
|
|
+
|
|
|
/* check if the ownership of a file/directory is set correctly */
|
|
|
public void testOwnership() throws Exception {
|
|
|
- MiniDFSCluster cluster = new MiniDFSCluster.Builder(conf).numDataNodes(3).build();
|
|
|
- try {
|
|
|
- cluster.waitActive();
|
|
|
- testOwnership(OpType.CREATE); // test file creation
|
|
|
- testOwnership(OpType.MKDIRS); // test directory creation
|
|
|
- } finally {
|
|
|
- fs.close();
|
|
|
- cluster.shutdown();
|
|
|
- }
|
|
|
+ testOwnership(OpType.CREATE); // test file creation
|
|
|
+ testOwnership(OpType.MKDIRS); // test directory creation
|
|
|
}
|
|
|
|
|
|
/* change a file/directory's owner and group.
|
|
@@ -342,9 +355,7 @@ public class TestDFSPermission extends TestCase {
|
|
|
/* Check if namenode performs permission checking correctly for
|
|
|
* superuser, file owner, group owner, and other users */
|
|
|
public void testPermissionChecking() throws Exception {
|
|
|
- MiniDFSCluster cluster = new MiniDFSCluster.Builder(conf).numDataNodes(3).build();
|
|
|
try {
|
|
|
- cluster.waitActive();
|
|
|
fs = FileSystem.get(conf);
|
|
|
|
|
|
// set the permission of the root to be world-wide rwx
|
|
@@ -401,7 +412,6 @@ public class TestDFSPermission extends TestCase {
|
|
|
parentPermissions, permissions, parentPaths, filePaths, dirPaths);
|
|
|
} finally {
|
|
|
fs.close();
|
|
|
- cluster.shutdown();
|
|
|
}
|
|
|
}
|
|
|
|