Merge remote-tracking branch 'origin/remove-revert-delete'

This commit is contained in:
vrde 2016-08-15 11:49:20 +02:00
commit 0f86a8afdf
No known key found for this signature in database
GPG Key ID: 6581C7C39B3D397D
3 changed files with 0 additions and 92 deletions

View File

@ -1,52 +0,0 @@
import logging
import multiprocessing as mp
import queue
import rethinkdb as r
import bigchaindb
from bigchaindb import Bigchain
from bigchaindb.monitor import Monitor
from bigchaindb.util import ProcessGroup
logger = logging.getLogger(__name__)
class BlockDeleteRevert(object):
def __init__(self, q_delete_to_revert):
self.q_delete_to_revert = q_delete_to_revert
def write_blocks(self):
"""
Write blocks to the bigchain
"""
# create bigchain instance
b = Bigchain()
# Write blocks
while True:
block = self.q_delete_to_revert.get()
# poison pill
if block == 'stop':
return
b.write_block(block)
def kill(self):
for i in range(mp.cpu_count()):
self.q_delete_to_revert.put('stop')
def start(self):
"""
Initialize, spawn, and start the processes
"""
# initialize the processes
p_write = ProcessGroup(name='write_blocks', target=self.write_blocks)
# start the processes
p_write.start()

View File

@ -7,7 +7,6 @@ import bigchaindb
from bigchaindb.pipelines import block, election from bigchaindb.pipelines import block, election
from bigchaindb import Bigchain from bigchaindb import Bigchain
from bigchaindb.voter import Voter from bigchaindb.voter import Voter
from bigchaindb.block import BlockDeleteRevert
from bigchaindb.web import server from bigchaindb.web import server
@ -54,8 +53,6 @@ class Processes(object):
def start(self): def start(self):
logger.info('Initializing BigchainDB...') logger.info('Initializing BigchainDB...')
delete_reverter = BlockDeleteRevert(self.q_revert_delete)
# start the web api # start the web api
app_server = server.create_server(bigchaindb.config['server']) app_server = server.create_server(bigchaindb.config['server'])
p_webapi = mp.Process(name='webapi', target=app_server.run) p_webapi = mp.Process(name='webapi', target=app_server.run)
@ -63,14 +60,12 @@ class Processes(object):
# initialize the processes # initialize the processes
p_map_bigchain = mp.Process(name='bigchain_mapper', target=self.map_bigchain) p_map_bigchain = mp.Process(name='bigchain_mapper', target=self.map_bigchain)
p_block_delete_revert = mp.Process(name='block_delete_revert', target=delete_reverter.start)
p_voter = Voter(self.q_new_block) p_voter = Voter(self.q_new_block)
# start the processes # start the processes
logger.info('starting bigchain mapper') logger.info('starting bigchain mapper')
p_map_bigchain.start() p_map_bigchain.start()
logger.info('starting block') logger.info('starting block')
block.start() block.start()
p_block_delete_revert.start()
logger.info('starting voter') logger.info('starting voter')
p_voter.start() p_voter.start()

View File

@ -10,7 +10,6 @@ import cryptoconditions as cc
import bigchaindb import bigchaindb
from bigchaindb import crypto, exceptions, util from bigchaindb import crypto, exceptions, util
from bigchaindb.voter import Voter from bigchaindb.voter import Voter
from bigchaindb.block import BlockDeleteRevert
@pytest.mark.skipif(reason='Some tests throw a ResourceWarning that might result in some weird ' @pytest.mark.skipif(reason='Some tests throw a ResourceWarning that might result in some weird '
@ -610,40 +609,6 @@ class TestBlockValidation(object):
class TestBigchainBlock(object): class TestBigchainBlock(object):
def test_revert_delete_block(self, b):
b.create_genesis_block()
block_1 = dummy_block()
block_2 = dummy_block()
block_3 = dummy_block()
b.write_block(block_1, durability='hard')
b.write_block(block_2, durability='hard')
b.write_block(block_3, durability='hard')
b.write_vote(block_1, b.vote(block_1['id'], b.get_last_voted_block()['id'], True))
b.write_vote(block_2, b.vote(block_2['id'], b.get_last_voted_block()['id'], True))
b.write_vote(block_3, b.vote(block_3['id'], b.get_last_voted_block()['id'], True))
q_revert_delete = mp.Queue()
reverter = BlockDeleteRevert(q_revert_delete)
# simulate changefeed
r.table('bigchain').get(block_2['id']).delete().run(b.conn)
q_revert_delete.put(block_2)
assert r.table('bigchain').get(block_2['id']).run(b.conn) is None
reverter.start()
time.sleep(1)
reverter.kill()
reverted_block_2 = r.table('bigchain').get(block_2['id']).run(b.conn)
assert reverted_block_2 == block_2
def test_duplicated_transactions(self): def test_duplicated_transactions(self):
pytest.skip('We may have duplicates in the initial_results and changefeed') pytest.skip('We may have duplicates in the initial_results and changefeed')