funga

Signer and keystore daemon and library for cryptocurrency software development
Log | Files | Refs | README | LICENSE

commit f92e2878cd96e528d032100c5501a43e862b8e5c
parent 06962b33652f4434b22f483c14c183a56bd6c585
Author: nolash <dev@holbrook.no>
Date:   Sat, 17 Oct 2020 11:06:52 +0200

Add configurable dsn for postgres connection

Diffstat:
MCHANGELOG | 2++
Aconfig/database.ini | 6++++++
Mcrypto_dev_signer/keystore/postgres.py | 6++++--
Mscripts/crypto-dev-daemon | 11++++++++++-
Msetup.py | 2+-
5 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG @@ -1,3 +1,5 @@ +* 0.2.3 + - Use dsn and config for keystore database settings * 0.2.2 - Use confini for configurations * 0.2.1 diff --git a/config/database.ini b/config/database.ini @@ -0,0 +1,6 @@ +[database] +NAME=cic-signer +USER=postgres +PASSWORD= +HOST=localhost +PORT=5432 diff --git a/crypto_dev_signer/keystore/postgres.py b/crypto_dev_signer/keystore/postgres.py @@ -6,6 +6,7 @@ import base64 from cryptography.fernet import Fernet import psycopg2 from psycopg2 import sql +from psycopg2.extensions import make_dsn import sha3 # local imports @@ -34,8 +35,9 @@ class ReferenceKeystore(Keystore): """, ] - def __init__(self, dbname, **kwargs): - self.conn = psycopg2.connect('dbname=' + dbname) + def __init__(self, dsn, **kwargs): + logg.debug('dsn {}'.format(dsn)) + self.conn = psycopg2.connect(make_dsn(dsn)) self.cur = self.conn.cursor() self.symmetric_key = kwargs.get('symmetric_key') diff --git a/scripts/crypto-dev-daemon b/scripts/crypto-dev-daemon @@ -51,6 +51,14 @@ if args.s: elif config.get('SIGNER_SOCKET_PATH'): socket_path = config.get('SIGNER_SOCKET_PATH') +# connect to database +dsn = 'postgresql://{}:{}@{}:{}/{}'.format( + config.get('DATABASE_USER'), + config.get('DATABASE_PASSWORD'), + config.get('DATABASE_HOST'), + config.get('DATABASE_PORT'), + config.get('DATABASE_NAME'), + ) class MissingSecretError(BaseException): @@ -194,7 +202,8 @@ def init(): 'symmetric_key': secret, } #db = ReferenceKeystore(os.environ.get('SIGNER_DATABASE', 'cic_signer'), **kw) - db = ReferenceKeystore(config.get('SIGNER_DATABASE'), **kw) + #db = ReferenceKeystore(config.get('SIGNER_DATABASE'), **kw) + db = ReferenceKeystore(dsn, **kw) signer = ReferenceSigner(db) diff --git a/setup.py b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup setup( name="crypto-dev-signer", - version="0.2.2", + version="0.2.3", description="A signer and keystore daemon and library for cryptocurrency software development", author="Louis Holbrook", author_email="dev@holbrook.no",