Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
        }