def run_start(args): """Start the processes to run the node""" logger.info('BigchainDB Version %s', bigchaindb.__version__) if args.allow_temp_keypair: if not (bigchaindb.config['keypair']['private'] or bigchaindb.config['keypair']['public']): private_key, public_key = crypto.generate_key_pair() bigchaindb.config['keypair']['private'] = private_key bigchaindb.config['keypair']['public'] = public_key else: logger.warning('Keypair found, no need to create one on the fly.') if args.start_rethinkdb: try: proc = utils.start_rethinkdb() except StartupError as e: sys.exit(RETHINKDB_STARTUP_ERROR.format(e)) logger.info('RethinkDB started with PID %s' % proc.pid) try: if not args.skip_initialize_database: logger.info('Initializing database') _run_init() except DatabaseAlreadyExists: pass except KeypairNotFoundException: sys.exit(CANNOT_START_KEYPAIR_NOT_FOUND) logger.info('Starting BigchainDB main process with public key %s', bigchaindb.config['keypair']['public']) processes.start()
def run_start(args): """Start the processes to run the node""" logger.info('BigchainDB Version {}'.format(bigchaindb.__version__)) bigchaindb.config_utils.autoconfigure(filename=args.config, force=True) if args.allow_temp_keypair: if not (bigchaindb.config['keypair']['private'] or bigchaindb.config['keypair']['public']): private_key, public_key = crypto.generate_key_pair() bigchaindb.config['keypair']['private'] = private_key bigchaindb.config['keypair']['public'] = public_key else: logger.warning('Keypair found, no need to create one on the fly.') if args.start_rethinkdb: try: proc = utils.start_rethinkdb() except StartupError as e: sys.exit('Error starting RethinkDB, reason is: {}'.format(e)) logger.info('RethinkDB started with PID %s' % proc.pid) try: _run_init() except DatabaseAlreadyExists: pass except KeypairNotFoundException: sys.exit("Can't start BigchainDB, no keypair found. " 'Did you run `bigchaindb configure`?') logger.info('Starting BigchainDB main process with public key %s', bigchaindb.config['keypair']['public']) processes.start()
def run_start(args): """Start the processes to run the node""" logger.info('BigchainDB Version {}'.format(bigchaindb.__version__)) bigchaindb.config_utils.autoconfigure(filename=args.config, force=True) if args.allow_temp_keypair: if not (bigchaindb.config['keypair']['private'] or bigchaindb.config['keypair']['public']): private_key, public_key = crypto.generate_key_pair() bigchaindb.config['keypair']['private'] = private_key bigchaindb.config['keypair']['public'] = public_key else: logger.warning('Keypair found, no need to create one on the fly.') if args.start_rethinkdb: try: proc = utils.start_rethinkdb() except StartupError as e: sys.exit('Error starting RethinkDB, reason is: {}'.format(e)) logger.info('RethinkDB started with PID %s' % proc.pid) try: db.init() except DatabaseAlreadyExists: pass except KeypairNotFoundException: sys.exit("Can't start BigchainDB, no keypair found. " 'Did you run `bigchaindb configure`?') logger.info('Starting BigchainDB main process with public key %s', bigchaindb.config['keypair']['public']) processes.start()
def run_start(args): """Start the processes to run the node""" logger.info('BigchainDB Version %s', bigchaindb.__version__) if args.allow_temp_keypair: if not (bigchaindb.config['keypair']['private'] or bigchaindb.config['keypair']['public']): private_key, public_key = crypto.generate_key_pair() bigchaindb.config['keypair']['private'] = private_key bigchaindb.config['keypair']['public'] = public_key else: logger.warning('Keypair found, no need to create one on the fly.') if args.start_rethinkdb: try: proc = utils.start_rethinkdb() except StartupError as e: sys.exit(RETHINKDB_STARTUP_ERROR.format(e)) logger.info('RethinkDB started with PID %s' % proc.pid) try: _run_init() except DatabaseAlreadyExists: pass except KeypairNotFoundException: sys.exit(CANNOT_START_KEYPAIR_NOT_FOUND) logger.info('Starting BigchainDB main process with public key %s', bigchaindb.config['keypair']['public']) processes.start()
def test_processes_start(mock_setup_events_queue, mock_process, mock_vote, mock_block, mock_election, mock_stale): from bigchaindb import processes processes.start() mock_vote.assert_called_with() mock_block.assert_called_with() mock_stale.assert_called_with() mock_process.assert_called_with() mock_election.assert_called_once_with( events_queue=mock_setup_events_queue.return_value)
def test_integration_from_webapi_to_websocket(monkeypatch, client, loop): # XXX: I think that the `pytest-aiohttp` plugin is sparkling too much # magic in the `asyncio` module: running this test without monkey-patching # `asycio.get_event_loop` (and without the `loop` fixture) raises a: # RuntimeError: There is no current event loop in thread 'MainThread'. # # That's pretty weird because this test doesn't use the pytest-aiohttp # plugin explicitely. monkeypatch.setattr('asyncio.get_event_loop', lambda: loop) import json import random import aiohttp from bigchaindb.common import crypto # TODO processes does not exist anymore, when reactivating this test it # will fail because of this from bigchaindb import processes from bigchaindb.models import Transaction # Start BigchainDB processes.start() loop = asyncio.get_event_loop() import time time.sleep(1) ws_url = client.get( 'http://localhost:9984/api/v1/').json['_links']['streams_v1'] # Connect to the WebSocket endpoint session = aiohttp.ClientSession() ws = loop.run_until_complete(session.ws_connect(ws_url)) # Create a keypair and generate a new asset user_priv, user_pub = crypto.generate_key_pair() asset = {'random': random.random()} tx = Transaction.create([user_pub], [([user_pub], 1)], asset=asset) tx = tx.sign([user_priv]) # Post the transaction to the BigchainDB Web API client.post('/api/v1/transactions/', data=json.dumps(tx.to_dict())) result = loop.run_until_complete(ws.receive()) json_result = json.loads(result.data) assert json_result['transaction_id'] == tx.id
def test_integration_from_webapi_to_websocket(monkeypatch, client, loop): # XXX: I think that the `pytest-aiohttp` plugin is sparkling too much # magic in the `asyncio` module: running this test without monkey-patching # `asycio.get_event_loop` (and without the `loop` fixture) raises a: # RuntimeError: There is no current event loop in thread 'MainThread'. # # That's pretty weird because this test doesn't use the pytest-aiohttp # plugin explicitely. monkeypatch.setattr('asyncio.get_event_loop', lambda: loop) import json import random import aiohttp from bigchaindb.common import crypto # TODO processes does not exist anymore, when reactivating this test it # will fail because of this from bigchaindb import processes from bigchaindb.models import Transaction # Start BigchainDB processes.start() loop = asyncio.get_event_loop() import time time.sleep(1) ws_url = client.get('http://localhost:9984/api/v1/').json['_links']['streams_v1'] # Connect to the WebSocket endpoint session = aiohttp.ClientSession() ws = loop.run_until_complete(session.ws_connect(ws_url)) # Create a keypair and generate a new asset user_priv, user_pub = crypto.generate_key_pair() asset = {'random': random.random()} tx = Transaction.create([user_pub], [([user_pub], 1)], asset=asset) tx = tx.sign([user_priv]) # Post the transaction to the BigchainDB Web API client.post('/api/v1/transactions/', data=json.dumps(tx.to_dict())) result = loop.run_until_complete(ws.receive()) json_result = json.loads(result.data) assert json_result['transaction_id'] == tx.id
def run_start(args): """Start the processes to run the node""" logger.info('BigchainDB Version {}'.format(bigchaindb.__version__)) bigchaindb.config_utils.autoconfigure(filename=args.config, force=True) if args.start_rethinkdb: try: proc = utils.start_rethinkdb() except StartupError as e: sys.exit('Error starting RethinkDB, reason is: {}'.format(e)) logger.info('RethinkDB started with PID %s' % proc.pid) try: db.init() except DatabaseAlreadyExists: pass except KeypairNotFoundException: sys.exit("Can't start BigchainDB, no keypair found. " 'Did you run `bigchaindb configure`?') logger.info('Starting BigchainDB main process') processes.start()