Add ssl, login, and passwd to configure command

This commit is contained in:
vrde 2017-03-28 14:51:02 +02:00
parent 441ad914cf
commit 699e615d47
No known key found for this signature in database
GPG Key ID: 6581C7C39B3D397D
3 changed files with 44 additions and 7 deletions

View File

@ -5,24 +5,48 @@ import os
# PORT_NUMBER = reduce(lambda x, y: x * y, map(ord, 'BigchainDB')) % 2**16
# basically, the port number is 9984
_database_rethinkdb = {
'backend': os.environ.get('BIGCHAINDB_DATABASE_BACKEND', 'rethinkdb'),
_base_database_rethinkdb = {
'host': os.environ.get('BIGCHAINDB_DATABASE_HOST', 'localhost'),
'port': int(os.environ.get('BIGCHAINDB_DATABASE_PORT', 28015)),
'name': os.environ.get('BIGCHAINDB_DATABASE_NAME', 'bigchain'),
'connection_timeout': 5000,
'max_tries': 3,
}
_database_mongodb = {
'backend': os.environ.get('BIGCHAINDB_DATABASE_BACKEND', 'mongodb'),
# This might sound excessive, but having an order on the keys will
# stress users (and us) less.
_base_database_rethinkdb_keys = ('host', 'port', 'name')
_base_database_mongodb = {
'host': os.environ.get('BIGCHAINDB_DATABASE_HOST', 'localhost'),
'port': int(os.environ.get('BIGCHAINDB_DATABASE_PORT', 27017)),
'name': os.environ.get('BIGCHAINDB_DATABASE_NAME', 'bigchain'),
'replicaset': os.environ.get('BIGCHAINDB_DATABASE_REPLICASET', 'bigchain-rs'),
'ssl': bool(os.environ.get('BIGCHAINDB_DATABASE_SSL', False)),
'login': os.environ.get('BIGCHAINDB_DATABASE_LOGIN'),
'password': os.environ.get('BIGCHAINDB_DATABASE_PASSWORD')
}
_base_database_mongodb_keys = ('host', 'port', 'name', 'replicaset',
'ssl', 'login', 'password')
_database_rethinkdb = {
'backend': os.environ.get('BIGCHAINDB_DATABASE_BACKEND', 'rethinkdb'),
'connection_timeout': 5000,
'max_tries': 3,
}
_database_rethinkdb.update(_base_database_rethinkdb)
_database_mongodb = {
'backend': os.environ.get('BIGCHAINDB_DATABASE_BACKEND', 'mongodb'),
'connection_timeout': 5000,
'max_tries': 3,
}
_database_mongodb.update(_base_database_mongodb)
_database_keys_map = {
'mongodb': _base_database_mongodb_keys,
'rethinkdb': _base_database_rethinkdb_keys
}
_database_map = {
'mongodb': _database_mongodb,

View File

@ -90,6 +90,7 @@ def run_configure(args, skip_if_exists=False):
# select the correct config defaults based on the backend
print('Generating default configuration for backend {}'
.format(args.backend), file=sys.stderr)
database_keys = bigchaindb._database_keys_map[args.backend]
conf['database'] = bigchaindb._database_map[args.backend]
if not args.yes:
@ -99,7 +100,7 @@ def run_configure(args, skip_if_exists=False):
input_on_stderr('API Server {}? (default `{}`): '.format(key, val)) \
or val
for key in ('host', 'port', 'name'):
for key in database_keys:
val = conf['database'][key]
conf['database'][key] = \
input_on_stderr('Database {}? (default `{}`): '.format(key, val)) \

View File

@ -19,6 +19,15 @@ def clean_config(monkeypatch, request):
monkeypatch.setattr('bigchaindb.config', original_config)
def test_ordered_keys_match_database_config():
import bigchaindb
assert set(bigchaindb._base_database_rethinkdb.keys()) ==\
set(bigchaindb._base_database_rethinkdb_keys)
assert set(bigchaindb._base_database_mongodb.keys()) ==\
set(bigchaindb._base_database_mongodb_keys)
def test_bigchain_instance_is_initialized_when_conf_provided(request):
import bigchaindb
from bigchaindb import config_utils
@ -181,6 +190,9 @@ def test_autoconfigure_read_both_from_file_and_env(monkeypatch, request):
'connection_timeout': 5000,
'max_tries': 3,
'replicaset': 'bigchain-rs',
'ssl': False,
'login': None,
'password': None
}
database = {}