public virtual void TestJobTokenRpc() { TaskUmbilicalProtocol mockTT = Org.Mockito.Mockito.Mock <TaskUmbilicalProtocol>(); Org.Mockito.Mockito.DoReturn(TaskUmbilicalProtocol.versionID).When(mockTT).GetProtocolVersion (Matchers.AnyString(), Matchers.AnyLong()); Org.Mockito.Mockito.DoReturn(ProtocolSignature.GetProtocolSignature(mockTT, typeof( TaskUmbilicalProtocol).FullName, TaskUmbilicalProtocol.versionID, 0)).When(mockTT ).GetProtocolSignature(Matchers.AnyString(), Matchers.AnyLong(), Matchers.AnyInt ()); JobTokenSecretManager sm = new JobTokenSecretManager(); Server server = new RPC.Builder(conf).SetProtocol(typeof(TaskUmbilicalProtocol)). SetInstance(mockTT).SetBindAddress(Address).SetPort(0).SetNumHandlers(5).SetVerbose (true).SetSecretManager(sm).Build(); server.Start(); UserGroupInformation current = UserGroupInformation.GetCurrentUser(); IPEndPoint addr = NetUtils.GetConnectAddress(server); string jobId = current.GetUserName(); JobTokenIdentifier tokenId = new JobTokenIdentifier(new Text(jobId)); Org.Apache.Hadoop.Security.Token.Token <JobTokenIdentifier> token = new Org.Apache.Hadoop.Security.Token.Token <JobTokenIdentifier>(tokenId, sm); sm.AddTokenForJob(jobId, token); SecurityUtil.SetTokenService(token, addr); Log.Info("Service address for token is " + token.GetService()); current.AddToken(token); current.DoAs(new _PrivilegedExceptionAction_110(addr, server)); }
/// <exception cref="System.IO.IOException"/> public virtual ProtocolSignature GetProtocolSignature(string protocol, long clientVersion , int clientMethodsHash) { if (!protocol.Equals(RPC.GetProtocolName(typeof(ZKFCProtocolPB)))) { throw new IOException("Serverside implements " + RPC.GetProtocolName(typeof(ZKFCProtocolPB )) + ". The following requested protocol is unknown: " + protocol); } return(ProtocolSignature.GetProtocolSignature(clientMethodsHash, RPC.GetProtocolVersion (typeof(ZKFCProtocolPB)), typeof(HAServiceProtocolPB))); }
/// <exception cref="System.IO.IOException"/> public virtual ProtocolSignature GetProtocolSignature(string protocol, long clientVersion , int clientMethodsHash) { return(ProtocolSignature.GetProtocolSignature(this, protocol, clientVersion, clientMethodsHash )); }