Search in sources :

Example 21 with WebHdfsFileSystem

use of org.apache.hadoop.hdfs.web.WebHdfsFileSystem in project hadoop by apache.

the class TestDelegationTokenForProxyUser method testWebHdfsDoAs.

@Test(timeout = 5000)
public void testWebHdfsDoAs() throws Exception {
    WebHdfsTestUtil.LOG.info("START: testWebHdfsDoAs()");
    WebHdfsTestUtil.LOG.info("ugi.getShortUserName()=" + ugi.getShortUserName());
    final WebHdfsFileSystem webhdfs = WebHdfsTestUtil.getWebHdfsFileSystemAs(ugi, config, WebHdfsConstants.WEBHDFS_SCHEME);
    final Path root = new Path("/");
    cluster.getFileSystem().setPermission(root, new FsPermission((short) 0777));
    Whitebox.setInternalState(webhdfs, "ugi", proxyUgi);
    {
        Path responsePath = webhdfs.getHomeDirectory();
        WebHdfsTestUtil.LOG.info("responsePath=" + responsePath);
        Assert.assertEquals(webhdfs.getUri() + "/user/" + PROXY_USER, responsePath.toString());
    }
    final Path f = new Path("/testWebHdfsDoAs/a.txt");
    {
        FSDataOutputStream out = webhdfs.create(f);
        out.write("Hello, webhdfs user!".getBytes());
        out.close();
        final FileStatus status = webhdfs.getFileStatus(f);
        WebHdfsTestUtil.LOG.info("status.getOwner()=" + status.getOwner());
        Assert.assertEquals(PROXY_USER, status.getOwner());
    }
    {
        final FSDataOutputStream out = webhdfs.append(f);
        out.write("\nHello again!".getBytes());
        out.close();
        final FileStatus status = webhdfs.getFileStatus(f);
        WebHdfsTestUtil.LOG.info("status.getOwner()=" + status.getOwner());
        WebHdfsTestUtil.LOG.info("status.getLen()  =" + status.getLen());
        Assert.assertEquals(PROXY_USER, status.getOwner());
    }
}
Also used : Path(org.apache.hadoop.fs.Path) FileStatus(org.apache.hadoop.fs.FileStatus) FsPermission(org.apache.hadoop.fs.permission.FsPermission) FSDataOutputStream(org.apache.hadoop.fs.FSDataOutputStream) WebHdfsFileSystem(org.apache.hadoop.hdfs.web.WebHdfsFileSystem) Test(org.junit.Test)

Aggregations

WebHdfsFileSystem (org.apache.hadoop.hdfs.web.WebHdfsFileSystem)21 Test (org.junit.Test)19 Path (org.apache.hadoop.fs.Path)18 Configuration (org.apache.hadoop.conf.Configuration)10 URI (java.net.URI)9 HttpURLConnection (java.net.HttpURLConnection)5 URL (java.net.URL)5 ContentSummary (org.apache.hadoop.fs.ContentSummary)5 FsPermission (org.apache.hadoop.fs.permission.FsPermission)5 FileStatus (org.apache.hadoop.fs.FileStatus)3 IOException (java.io.IOException)2 InputStream (java.io.InputStream)2 FsShell (org.apache.hadoop.fs.FsShell)2 HdfsAdmin (org.apache.hadoop.hdfs.client.HdfsAdmin)2 DelegationTokenIdentifier (org.apache.hadoop.hdfs.security.token.delegation.DelegationTokenIdentifier)2 Text (org.apache.hadoop.io.Text)2 AccessControlException (org.apache.hadoop.security.AccessControlException)2 Credentials (org.apache.hadoop.security.Credentials)2 Token (org.apache.hadoop.security.token.Token)2 Mockito.anyString (org.mockito.Mockito.anyString)2