2222import static org .apache .hadoop .hdfs .DFSConfigKeys .DFS_HA_NAMENODES_KEY_PREFIX ;
2323import static org .apache .hadoop .hdfs .DFSConfigKeys .DFS_INTERNAL_NAMESERVICES_KEY ;
2424import static org .apache .hadoop .hdfs .DFSConfigKeys .DFS_NAMENODE_BACKUP_ADDRESS_KEY ;
25+ import static org .apache .hadoop .hdfs .DFSConfigKeys .DFS_HTTP_POLICY_KEY ;
26+ import static org .apache .hadoop .hdfs .DFSConfigKeys .DFS_NAMENODE_HTTPS_ADDRESS_KEY ;
2527import static org .apache .hadoop .hdfs .DFSConfigKeys .DFS_NAMENODE_HTTPS_PORT_DEFAULT ;
2628import static org .apache .hadoop .hdfs .DFSConfigKeys .DFS_NAMENODE_HTTP_ADDRESS_KEY ;
2729import static org .apache .hadoop .hdfs .DFSConfigKeys .DFS_NAMENODE_HTTP_PORT_DEFAULT ;
7072import org .apache .hadoop .hdfs .protocol .LocatedBlocks ;
7173import org .apache .hadoop .hdfs .server .namenode .NameNode ;
7274import org .apache .hadoop .hdfs .server .namenode .ha .ConfiguredFailoverProxyProvider ;
75+ import org .apache .hadoop .http .HttpConfig ;
7376import org .apache .hadoop .net .NetUtils ;
7477import org .apache .hadoop .security .UserGroupInformation ;
7578import org .apache .hadoop .security .alias .CredentialProvider ;
@@ -87,6 +90,8 @@ public class TestDFSUtil {
8790 static final String NS1_NN_ADDR = "ns1-nn.example.com:8020" ;
8891 static final String NS1_NN1_ADDR = "ns1-nn1.example.com:8020" ;
8992 static final String NS1_NN2_ADDR = "ns1-nn2.example.com:8020" ;
93+ static final String NS1_NN1_HTTPS_ADDR = "ns1-nn1.example.com:50740" ;
94+ static final String NS1_NN1_HTTP_ADDR = "ns1-nn1.example.com:50070" ;
9095
9196 /**
9297 * Reset to default UGI settings since some tests change them.
@@ -465,6 +470,32 @@ public void testEmptyConf() {
465470 }
466471 }
467472
473+ @ Test
474+ public void testGetNamenodeWebAddr () {
475+ HdfsConfiguration conf = new HdfsConfiguration ();
476+
477+ conf .set (DFSUtil .addKeySuffixes (
478+ DFS_NAMENODE_HTTPS_ADDRESS_KEY , "ns1" , "nn1" ), NS1_NN1_HTTPS_ADDR );
479+ conf .set (DFSUtil .addKeySuffixes (
480+ DFS_NAMENODE_HTTP_ADDRESS_KEY , "ns1" , "nn1" ), NS1_NN1_HTTP_ADDR );
481+
482+ conf .set (DFS_HTTP_POLICY_KEY , HttpConfig .Policy .HTTPS_ONLY .name ());
483+ String httpsOnlyWebAddr = DFSUtil .getNamenodeWebAddr (
484+ conf , "ns1" , "nn1" );
485+ assertEquals (NS1_NN1_HTTPS_ADDR , httpsOnlyWebAddr );
486+
487+ conf .set (DFS_HTTP_POLICY_KEY , HttpConfig .Policy .HTTP_ONLY .name ());
488+ String httpOnlyWebAddr = DFSUtil .getNamenodeWebAddr (
489+ conf , "ns1" , "nn1" );
490+ assertEquals (NS1_NN1_HTTP_ADDR , httpOnlyWebAddr );
491+
492+ conf .set (DFS_HTTP_POLICY_KEY , HttpConfig .Policy .HTTP_AND_HTTPS .name ());
493+ String httpAndHttpsWebAddr = DFSUtil .getNamenodeWebAddr (
494+ conf , "ns1" , "nn1" );
495+ assertEquals (NS1_NN1_HTTP_ADDR , httpAndHttpsWebAddr );
496+
497+ }
498+
468499 @ Test
469500 public void testGetInfoServer () throws IOException , URISyntaxException {
470501 HdfsConfiguration conf = new HdfsConfiguration ();
0 commit comments