public virtual void TestMultiNodeOperations()
 {
     for (int i = 0; i < TestRetries; i++)
     {
         DelegationTokenManager tm1;
         DelegationTokenManager tm2  = null;
         string        connectString = zkServer.GetConnectString();
         Configuration conf          = GetSecretConf(connectString);
         tm1 = new DelegationTokenManager(conf, new Text("bla"));
         tm1.Init();
         tm2 = new DelegationTokenManager(conf, new Text("bla"));
         tm2.Init();
         Org.Apache.Hadoop.Security.Token.Token <DelegationTokenIdentifier> token = (Org.Apache.Hadoop.Security.Token.Token
                                                                                     <DelegationTokenIdentifier>)tm1.CreateToken(UserGroupInformation.GetCurrentUser(
                                                                                                                                     ), "foo");
         NUnit.Framework.Assert.IsNotNull(token);
         tm2.VerifyToken(token);
         tm2.RenewToken(token, "foo");
         tm1.VerifyToken(token);
         tm1.CancelToken(token, "foo");
         try
         {
             VerifyTokenFail(tm2, token);
             NUnit.Framework.Assert.Fail("Expected InvalidToken");
         }
         catch (SecretManager.InvalidToken)
         {
         }
         // Ignore
         token = (Org.Apache.Hadoop.Security.Token.Token <DelegationTokenIdentifier>)tm2.CreateToken
                     (UserGroupInformation.GetCurrentUser(), "bar");
         NUnit.Framework.Assert.IsNotNull(token);
         tm1.VerifyToken(token);
         tm1.RenewToken(token, "bar");
         tm2.VerifyToken(token);
         tm2.CancelToken(token, "bar");
         try
         {
             VerifyTokenFail(tm1, token);
             NUnit.Framework.Assert.Fail("Expected InvalidToken");
         }
         catch (SecretManager.InvalidToken)
         {
         }
         // Ignore
         VerifyDestroy(tm1, conf);
         VerifyDestroy(tm2, conf);
     }
 }
 /// <exception cref="System.IO.IOException"/>
 /// <exception cref="System.Exception"/>
 private void VerifyTokenFailWithRetry(DelegationTokenManager tm, Org.Apache.Hadoop.Security.Token.Token
                                       <DelegationTokenIdentifier> token, int retryCount)
 {
     try
     {
         tm.VerifyToken(token);
     }
     catch (SecretManager.InvalidToken er)
     {
         throw;
     }
     if (retryCount > 0)
     {
         Thread.Sleep(RetryWait);
         VerifyTokenFailWithRetry(tm, token, retryCount - 1);
     }
 }
 public virtual void TestRenewTokenSingleManager()
 {
     for (int i = 0; i < TestRetries; i++)
     {
         DelegationTokenManager tm1  = null;
         string        connectString = zkServer.GetConnectString();
         Configuration conf          = GetSecretConf(connectString);
         tm1 = new DelegationTokenManager(conf, new Text("foo"));
         tm1.Init();
         Org.Apache.Hadoop.Security.Token.Token <DelegationTokenIdentifier> token = (Org.Apache.Hadoop.Security.Token.Token
                                                                                     <DelegationTokenIdentifier>)tm1.CreateToken(UserGroupInformation.GetCurrentUser(
                                                                                                                                     ), "foo");
         NUnit.Framework.Assert.IsNotNull(token);
         tm1.RenewToken(token, "foo");
         tm1.VerifyToken(token);
         VerifyDestroy(tm1, conf);
     }
 }
 public virtual void TestNodeUpAferAWhile()
 {
     for (int i = 0; i < TestRetries; i++)
     {
         string                 connectString = zkServer.GetConnectString();
         Configuration          conf          = GetSecretConf(connectString);
         DelegationTokenManager tm1           = new DelegationTokenManager(conf, new Text("bla"));
         tm1.Init();
         Org.Apache.Hadoop.Security.Token.Token <DelegationTokenIdentifier> token1 = (Org.Apache.Hadoop.Security.Token.Token
                                                                                      <DelegationTokenIdentifier>)tm1.CreateToken(UserGroupInformation.GetCurrentUser(
                                                                                                                                      ), "foo");
         NUnit.Framework.Assert.IsNotNull(token1);
         Org.Apache.Hadoop.Security.Token.Token <DelegationTokenIdentifier> token2 = (Org.Apache.Hadoop.Security.Token.Token
                                                                                      <DelegationTokenIdentifier>)tm1.CreateToken(UserGroupInformation.GetCurrentUser(
                                                                                                                                      ), "bar");
         NUnit.Framework.Assert.IsNotNull(token2);
         Org.Apache.Hadoop.Security.Token.Token <DelegationTokenIdentifier> token3 = (Org.Apache.Hadoop.Security.Token.Token
                                                                                      <DelegationTokenIdentifier>)tm1.CreateToken(UserGroupInformation.GetCurrentUser(
                                                                                                                                      ), "boo");
         NUnit.Framework.Assert.IsNotNull(token3);
         tm1.VerifyToken(token1);
         tm1.VerifyToken(token2);
         tm1.VerifyToken(token3);
         // Cancel one token
         tm1.CancelToken(token1, "foo");
         // Start second node after some time..
         Thread.Sleep(1000);
         DelegationTokenManager tm2 = new DelegationTokenManager(conf, new Text("bla"));
         tm2.Init();
         tm2.VerifyToken(token2);
         tm2.VerifyToken(token3);
         try
         {
             VerifyTokenFail(tm2, token1);
             NUnit.Framework.Assert.Fail("Expected InvalidToken");
         }
         catch (SecretManager.InvalidToken)
         {
         }
         // Ignore
         // Create a new token thru the new ZKDTSM
         Org.Apache.Hadoop.Security.Token.Token <DelegationTokenIdentifier> token4 = (Org.Apache.Hadoop.Security.Token.Token
                                                                                      <DelegationTokenIdentifier>)tm2.CreateToken(UserGroupInformation.GetCurrentUser(
                                                                                                                                      ), "xyz");
         NUnit.Framework.Assert.IsNotNull(token4);
         tm2.VerifyToken(token4);
         tm1.VerifyToken(token4);
         // Bring down tm2
         VerifyDestroy(tm2, conf);
         // Start third node after some time..
         Thread.Sleep(1000);
         DelegationTokenManager tm3 = new DelegationTokenManager(conf, new Text("bla"));
         tm3.Init();
         tm3.VerifyToken(token2);
         tm3.VerifyToken(token3);
         tm3.VerifyToken(token4);
         try
         {
             VerifyTokenFail(tm3, token1);
             NUnit.Framework.Assert.Fail("Expected InvalidToken");
         }
         catch (SecretManager.InvalidToken)
         {
         }
         // Ignore
         VerifyDestroy(tm3, conf);
         VerifyDestroy(tm1, conf);
     }
 }