From 31a90a6ceb6b47a7be3148939b3581d3ca5055bb Mon Sep 17 00:00:00 2001 From: Jonathan Zernik Date: Mon, 16 Aug 2021 02:43:49 -0700 Subject: [PATCH] Build entire connection string path in util function (#951) * Build entire connection string path in util function * Simplify loading db connection string * Simplify initialize db in squeak node --- squeaknode/db/db_engine.py | 13 ++++++++++++- squeaknode/node/squeak_node.py | 33 +++++++++------------------------ 2 files changed, 21 insertions(+), 25 deletions(-) diff --git a/squeaknode/db/db_engine.py b/squeaknode/db/db_engine.py index e74d49ad..19be5223 100644 --- a/squeaknode/db/db_engine.py +++ b/squeaknode/db/db_engine.py @@ -1,3 +1,5 @@ +from pathlib import Path + from sqlalchemy import create_engine @@ -6,8 +8,17 @@ def get_engine(connection_string): def get_sqlite_connection_string(sqk_dir, network): - data_dir = sqk_dir.joinpath("data").joinpath(network) + data_dir = Path(sqk_dir).joinpath("data").joinpath(network) data_dir.mkdir(parents=True, exist_ok=True) return "sqlite:////{}/data.db".format( data_dir, ) + + +def get_connection_string(config, network): + if config.db.connection_string: + return config.db.connection_string + return get_sqlite_connection_string( + config.core.sqk_dir_path, + network, + ) diff --git a/squeaknode/node/squeak_node.py b/squeaknode/node/squeak_node.py index 2e342e49..f20d18cc 100644 --- a/squeaknode/node/squeak_node.py +++ b/squeaknode/node/squeak_node.py @@ -1,6 +1,5 @@ import logging import threading -from pathlib import Path from squeak.params import SelectParams @@ -10,8 +9,8 @@ from squeaknode.admin.webapp.app import SqueakAdminWebServer from squeaknode.bitcoin.bitcoin_core_bitcoin_client import BitcoinCoreBitcoinClient from squeaknode.config.config import SqueaknodeConfig from squeaknode.core.squeak_core import SqueakCore +from squeaknode.db.db_engine import get_connection_string from squeaknode.db.db_engine import get_engine -from squeaknode.db.db_engine import get_sqlite_connection_string from squeaknode.db.squeak_db import SqueakDb from squeaknode.lightning.lnd_lightning_client import LNDLightningClient from squeaknode.network.network_manager import NetworkManager @@ -115,8 +114,14 @@ class SqueakNode: SelectParams(self.network) def initialize_db(self): - # load the db - self.squeak_db = load_db(self.config, self.network) + connection_string = get_connection_string( + self.config, + self.network, + ) + logger.info("Using connection string: {}".format( + connection_string)) + engine = get_engine(connection_string) + self.squeak_db = SqueakDb(engine) self.squeak_db.init() def initialize_lightning_client(self): @@ -205,26 +210,6 @@ class SqueakNode: ) -def load_sqk_dir_path(config): - sqk_dir = config.core.sqk_dir_path - return Path(sqk_dir) - - -def load_db(config, network): - connection_string = config.db.connection_string - logger.info("connection string: {}".format(connection_string)) - logger.info("connection string type: {}".format(type(connection_string))) - if not connection_string: - sqk_dir = load_sqk_dir_path(config) - logger.info( - "Getting connection string from sqk dir: {}".format(sqk_dir)) - connection_string = get_sqlite_connection_string(sqk_dir, network) - logger.info("Getting engine from connection string: {}".format( - connection_string)) - engine = get_engine(connection_string) - return SqueakDb(engine) - - def start_admin_rpc_server(rpc_server): logger.info("Starting admin RPC server...") thread = threading.Thread(