Jelajahi Sumber

YARN-2700 TestSecureRMRegistryOperations failing on windows: auth problems

Steve Loughran 10 tahun lalu
induk
melakukan
ada23f3dd3

+ 3 - 0
hadoop-yarn-project/CHANGES.txt

@@ -616,6 +616,9 @@ Release 2.6.0 - UNRELEASED
 
     YARN-2692 ktutil test hanging on some machines/ktutil versions (stevel)
 
+    YARN-2700 TestSecureRMRegistryOperations failing on windows: auth problems
+    (stevel)
+
     ---
 
     YARN-2598 GHS should show N/A instead of null for the inaccessible information

+ 10 - 4
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/test/java/org/apache/hadoop/registry/secure/AbstractSecureRegistryTest.java

@@ -31,6 +31,7 @@ import org.apache.hadoop.registry.client.impl.zk.ZookeeperConfigOptions;
 import org.apache.hadoop.registry.server.services.AddingCompositeService;
 import org.apache.hadoop.registry.server.services.MicroZookeeperService;
 import org.apache.hadoop.registry.server.services.MicroZookeeperServiceKeys;
+import org.apache.hadoop.util.Shell;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -61,6 +62,7 @@ public class AbstractSecureRegistryTest extends RegistryTestHelper {
   public static final String REALM = "EXAMPLE.COM";
   public static final String ZOOKEEPER = "zookeeper";
   public static final String ZOOKEEPER_LOCALHOST = "zookeeper/localhost";
+  public static final String ZOOKEEPER_1270001 = "zookeeper/127.0.0.1";
   public static final String ZOOKEEPER_REALM = "zookeeper@" + REALM;
   public static final String ZOOKEEPER_CLIENT_CONTEXT = ZOOKEEPER;
   public static final String ZOOKEEPER_SERVER_CONTEXT = "ZOOKEEPER_SERVER";
@@ -118,6 +120,7 @@ public class AbstractSecureRegistryTest extends RegistryTestHelper {
   protected MicroZookeeperService secureZK;
   protected static File jaasFile;
   private LoginContext zookeeperLogin;
+  private static String zkServerPrincipal;
 
   /**
    * All class initialization for this test class
@@ -203,12 +206,13 @@ public class AbstractSecureRegistryTest extends RegistryTestHelper {
     keytab_zk = createKeytab(ZOOKEEPER, "zookeeper.keytab");
     keytab_alice = createKeytab(ALICE, "alice.keytab");
     keytab_bob = createKeytab(BOB, "bob.keytab");
+    zkServerPrincipal = Shell.WINDOWS ? ZOOKEEPER_1270001 : ZOOKEEPER_LOCALHOST;
 
     StringBuilder jaas = new StringBuilder(1024);
     jaas.append(registrySecurity.createJAASEntry(ZOOKEEPER_CLIENT_CONTEXT,
         ZOOKEEPER, keytab_zk));
     jaas.append(registrySecurity.createJAASEntry(ZOOKEEPER_SERVER_CONTEXT,
-        ZOOKEEPER_LOCALHOST, keytab_zk));
+        zkServerPrincipal, keytab_zk));
     jaas.append(registrySecurity.createJAASEntry(ALICE_CLIENT_CONTEXT,
         ALICE_LOCALHOST , keytab_alice));
     jaas.append(registrySecurity.createJAASEntry(BOB_CLIENT_CONTEXT,
@@ -300,7 +304,10 @@ public class AbstractSecureRegistryTest extends RegistryTestHelper {
     assertNotEmpty("empty host", filename);
     assertNotNull("Null KDC", kdc);
     File keytab = new File(kdcWorkDir, filename);
-    kdc.createPrincipal(keytab, principal, principal +"/localhost");
+    kdc.createPrincipal(keytab,
+        principal,
+        principal + "/localhost",
+        principal + "/127.0.0.1");
     return keytab;
   }
 
@@ -351,12 +358,11 @@ public class AbstractSecureRegistryTest extends RegistryTestHelper {
   protected synchronized void startSecureZK() throws Exception {
     assertNull("Zookeeper is already running", secureZK);
 
-    zookeeperLogin = login(ZOOKEEPER_LOCALHOST,
+    zookeeperLogin = login(zkServerPrincipal,
         ZOOKEEPER_SERVER_CONTEXT,
         keytab_zk);
     secureZK = createSecureZKInstance("test-" + methodName.getMethodName());
     secureZK.start();
   }
 
-
 }