You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-commits@hadoop.apache.org by to...@apache.org on 2012/04/12 20:08:16 UTC
svn commit: r1325415 - in
/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs:
CHANGES.txt src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java
src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestDelegationTokensWithHA.java
Author: todd
Date: Thu Apr 12 18:08:16 2012
New Revision: 1325415
URL: http://svn.apache.org/viewvc?rev=1325415&view=rev
Log:
HDFS-3255. HA DFS returns wrong token service. Contributed by Daryn Sharp.
Modified:
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestDelegationTokensWithHA.java
Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt?rev=1325415&r1=1325414&r2=1325415&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt (original)
+++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt Thu Apr 12 18:08:16 2012
@@ -381,6 +381,8 @@ Release 2.0.0 - UNRELEASED
HDFS-3260. TestDatanodeRegistration should set minimum DN version in
addition to minimum NN version. (atm)
+ HDFS-3255. HA DFS returns wrong token service (Daryn Sharp via todd)
+
BREAKDOWN OF HDFS-1623 SUBTASKS
HDFS-2179. Add fencing framework and mechanisms for NameNode HA. (todd)
Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java?rev=1325415&r1=1325414&r2=1325415&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java (original)
+++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java Thu Apr 12 18:08:16 2012
@@ -848,8 +848,9 @@ public class DistributedFileSystem exten
*/
@Override
public String getCanonicalServiceName() {
- if (HAUtil.isLogicalUri(getConf(), getUri())) {
- return getUri().getHost();
+ URI uri = getUri();
+ if (HAUtil.isLogicalUri(getConf(), uri)) {
+ return HAUtil.buildTokenServiceForLogicalUri(uri).toString();
} else {
return super.getCanonicalServiceName();
}
Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestDelegationTokensWithHA.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestDelegationTokensWithHA.java?rev=1325415&r1=1325414&r2=1325415&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestDelegationTokensWithHA.java (original)
+++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestDelegationTokensWithHA.java Thu Apr 12 18:08:16 2012
@@ -42,6 +42,7 @@ import org.apache.hadoop.hdfs.security.t
import org.apache.hadoop.hdfs.server.namenode.NameNode;
import org.apache.hadoop.hdfs.server.namenode.NameNodeAdapter;
import org.apache.hadoop.io.Text;
+import org.apache.hadoop.security.SecurityUtil;
import org.apache.hadoop.security.UserGroupInformation;
import org.apache.hadoop.security.token.Token;
import org.apache.hadoop.security.token.TokenIdentifier;
@@ -196,8 +197,7 @@ public class TestDelegationTokensWithHA
// check that the token selected for one of the physical IPC addresses
// matches the one we received
InetSocketAddress addr = nn0.getNameNodeAddress();
- Text ipcDtService = new Text(
- addr.getAddress().getHostAddress() + ":" + addr.getPort());
+ Text ipcDtService = SecurityUtil.buildTokenService(addr);
Token<DelegationTokenIdentifier> token2 =
DelegationTokenSelector.selectHdfsDelegationToken(ipcDtService, ugi);
assertNotNull(token2);
@@ -212,8 +212,15 @@ public class TestDelegationTokensWithHA
*/
@Test
public void testDFSGetCanonicalServiceName() throws Exception {
- assertEquals(fs.getCanonicalServiceName(),
- HATestUtil.getLogicalUri(cluster).getHost());
+ URI hAUri = HATestUtil.getLogicalUri(cluster);
+ String haService = HAUtil.buildTokenServiceForLogicalUri(hAUri).toString();
+ assertEquals(haService, dfs.getCanonicalServiceName());
+ Token<?> token = dfs.getDelegationToken(
+ UserGroupInformation.getCurrentUser().getShortUserName());
+ assertEquals(haService, token.getService().toString());
+ // make sure the logical uri is handled correctly
+ token.renew(dfs.getConf());
+ token.cancel(dfs.getConf());
}
enum TokenTestAction {