/// <exception cref="System.IO.IOException"/> private IList <DataNode.BlockRecord> InitBlockRecords(DataNode spyDN) { IList <DataNode.BlockRecord> blocks = new AList <DataNode.BlockRecord>(1); DatanodeRegistration dnR = dn.GetDNRegistrationForBP(block.GetBlockPoolId()); DataNode.BlockRecord blockRecord = new DataNode.BlockRecord(new DatanodeID(dnR), spyDN, new ReplicaRecoveryInfo(block.GetBlockId(), block.GetNumBytes(), block.GetGenerationStamp (), HdfsServerConstants.ReplicaState.Finalized)); blocks.AddItem(blockRecord); return(blocks); }
/// <summary>Sync two replicas</summary> /// <exception cref="System.IO.IOException"/> private void TestSyncReplicas(ReplicaRecoveryInfo replica1, ReplicaRecoveryInfo replica2 , InterDatanodeProtocol dn1, InterDatanodeProtocol dn2, long expectLen) { DatanodeInfo[] locs = new DatanodeInfo[] { Org.Mockito.Mockito.Mock <DatanodeInfo> (), Org.Mockito.Mockito.Mock <DatanodeInfo>() }; BlockRecoveryCommand.RecoveringBlock rBlock = new BlockRecoveryCommand.RecoveringBlock (block, locs, RecoveryId); AList <DataNode.BlockRecord> syncList = new AList <DataNode.BlockRecord>(2); DataNode.BlockRecord record1 = new DataNode.BlockRecord(DFSTestUtil.GetDatanodeInfo ("1.2.3.4", "bogus", 1234), dn1, replica1); DataNode.BlockRecord record2 = new DataNode.BlockRecord(DFSTestUtil.GetDatanodeInfo ("1.2.3.4", "bogus", 1234), dn2, replica2); syncList.AddItem(record1); syncList.AddItem(record2); Org.Mockito.Mockito.When(dn1.UpdateReplicaUnderRecovery((ExtendedBlock)Matchers.AnyObject (), Matchers.AnyLong(), Matchers.AnyLong(), Matchers.AnyLong())).ThenReturn("storage1" ); Org.Mockito.Mockito.When(dn2.UpdateReplicaUnderRecovery((ExtendedBlock)Matchers.AnyObject (), Matchers.AnyLong(), Matchers.AnyLong(), Matchers.AnyLong())).ThenReturn("storage2" ); dn.SyncBlock(rBlock, syncList); }