/// <summary>Private helper methods to load Delegation tokens from fsimage</summary> /// <exception cref="System.IO.IOException"/> private void LoadCurrentTokens(DataInput @in) { lock (this) { StartupProgress prog = NameNode.GetStartupProgress(); Step step = new Step(StepType.DelegationTokens); prog.BeginStep(Phase.LoadingFsimage, step); int numberOfTokens = @in.ReadInt(); prog.SetTotal(Phase.LoadingFsimage, step, numberOfTokens); StartupProgress.Counter counter = prog.GetCounter(Phase.LoadingFsimage, step); for (int i = 0; i < numberOfTokens; i++) { DelegationTokenIdentifier id = new DelegationTokenIdentifier(); id.ReadFields(@in); long expiryTime = @in.ReadLong(); this._enclosing.AddPersistedDelegationToken(id, expiryTime); counter.Increment(); } prog.EndStep(Phase.LoadingFsimage, step); } }
/// <summary>Private helper methods to save delegation keys and tokens in fsimage</summary> /// <exception cref="System.IO.IOException"/> private void SaveCurrentTokens(DataOutputStream @out, string sdPath) { lock (this) { StartupProgress prog = NameNode.GetStartupProgress(); Step step = new Step(StepType.DelegationTokens, sdPath); prog.BeginStep(Phase.SavingCheckpoint, step); prog.SetTotal(Phase.SavingCheckpoint, step, this._enclosing.currentTokens.Count); StartupProgress.Counter counter = prog.GetCounter(Phase.SavingCheckpoint, step); @out.WriteInt(this._enclosing.currentTokens.Count); IEnumerator <DelegationTokenIdentifier> iter = this._enclosing.currentTokens.Keys. GetEnumerator(); while (iter.HasNext()) { DelegationTokenIdentifier id = iter.Next(); id.Write(@out); AbstractDelegationTokenSecretManager.DelegationTokenInformation info = this._enclosing .currentTokens[id]; @out.WriteLong(info.GetRenewDate()); counter.Increment(); } prog.EndStep(Phase.SavingCheckpoint, step); } }