/// <exception cref="System.IO.IOException"/> public KeyManager(string blockpoolID, NamenodeProtocol namenode, bool encryptDataTransfer , Configuration conf) { this.namenode = namenode; this.encryptDataTransfer = encryptDataTransfer; ExportedBlockKeys keys = namenode.GetBlockKeys(); this.isBlockTokenEnabled = keys.IsBlockTokenEnabled(); if (isBlockTokenEnabled) { long updateInterval = keys.GetKeyUpdateInterval(); long tokenLifetime = keys.GetTokenLifetime(); Log.Info("Block token params received from NN: update interval=" + StringUtils.FormatTime (updateInterval) + ", token lifetime=" + StringUtils.FormatTime(tokenLifetime)); string encryptionAlgorithm = conf.Get(DFSConfigKeys.DfsDataEncryptionAlgorithmKey ); this.blockTokenSecretManager = new BlockTokenSecretManager(updateInterval, tokenLifetime , blockpoolID, encryptionAlgorithm); this.blockTokenSecretManager.AddKeys(keys); // sync block keys with NN more frequently than NN updates its block keys this.blockKeyUpdater = new KeyManager.BlockKeyUpdater(this, updateInterval / 4); this.shouldRun = true; } else { this.blockTokenSecretManager = null; this.blockKeyUpdater = null; } }
public DatanodeRegistration(DatanodeID dn, StorageInfo info, ExportedBlockKeys keys , string softwareVersion) : base(dn) { this.storageInfo = info; this.exportedKeys = keys; this.softwareVersion = softwareVersion; }
public virtual void TestConvertExportedBlockKeys() { BlockKey[] keys = new BlockKey[] { GetBlockKey(2), GetBlockKey(3) }; ExportedBlockKeys expKeys = new ExportedBlockKeys(true, 9, 10, GetBlockKey(1), keys ); HdfsProtos.ExportedBlockKeysProto expKeysProto = PBHelper.Convert(expKeys); ExportedBlockKeys expKeys1 = PBHelper.Convert(expKeysProto); Compare(expKeys, expKeys1); }
internal virtual void Compare(ExportedBlockKeys expKeys, ExportedBlockKeys expKeys1 ) { BlockKey[] allKeys = expKeys.GetAllKeys(); BlockKey[] allKeys1 = expKeys1.GetAllKeys(); NUnit.Framework.Assert.AreEqual(allKeys.Length, allKeys1.Length); for (int i = 0; i < allKeys.Length; i++) { Compare(allKeys[i], allKeys1[i]); } Compare(expKeys.GetCurrentKey(), expKeys1.GetCurrentKey()); NUnit.Framework.Assert.AreEqual(expKeys.GetKeyUpdateInterval(), expKeys1.GetKeyUpdateInterval ()); NUnit.Framework.Assert.AreEqual(expKeys.GetTokenLifetime(), expKeys1.GetTokenLifetime ()); }
public virtual void TestConvertDatanodeRegistration() { DatanodeID dnId = DFSTestUtil.GetLocalDatanodeID(); BlockKey[] keys = new BlockKey[] { GetBlockKey(2), GetBlockKey(3) }; ExportedBlockKeys expKeys = new ExportedBlockKeys(true, 9, 10, GetBlockKey(1), keys ); DatanodeRegistration reg = new DatanodeRegistration(dnId, new StorageInfo(HdfsServerConstants.NodeType .DataNode), expKeys, "3.0.0"); DatanodeProtocolProtos.DatanodeRegistrationProto proto = PBHelper.Convert(reg); DatanodeRegistration reg2 = PBHelper.Convert(proto); Compare(reg.GetStorageInfo(), reg2.GetStorageInfo()); Compare(reg.GetExportedKeys(), reg2.GetExportedKeys()); Compare(reg, reg2); NUnit.Framework.Assert.AreEqual(reg.GetSoftwareVersion(), reg2.GetSoftwareVersion ()); }
public KeyUpdateCommand(ExportedBlockKeys keys) : base(DatanodeProtocol.DnaAccesskeyupdate) { this.keys = keys; }
public virtual void SetExportedKeys(ExportedBlockKeys keys) { this.exportedKeys = keys; }