diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index 52adb0d..133b1c0 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -47,10 +47,10 @@ jobs: strategy: matrix: include: - - db: "MongoDB with ABCI" - host: "mongodb" - port: 27017 - abci: "enabled" + #- db: "MongoDB with ABCI" + # host: "mongodb" + # port: 27017 + # abci: "enabled" - db: "Tarantool with ABCI" host: "tarantool" port: 3303 @@ -80,9 +80,9 @@ jobs: strategy: matrix: include: - - db: "MongoDB without ABCI" - host: "mongodb" - port: 27017 + #- db: "MongoDB without ABCI" + # host: "mongodb" + # port: 27017 - db: "Tarantool without ABCI" host: "tarantool" port: 3303 diff --git a/Dockerfile-dev b/Dockerfile-dev index 4148179..e4bd022 100644 --- a/Dockerfile-dev +++ b/Dockerfile-dev @@ -34,5 +34,4 @@ COPY . /usr/src/app/ WORKDIR /usr/src/app RUN pip install -e .[dev] RUN pip install flask-cors -RUN pip install pynacl==1.4.0 base58==2.1.1 pyasn1==0.4.8 zenroom==2.1.0.dev1655293214 cryptography==3.4.7 -RUN planetmint -y configure +RUN pip install pynacl==1.4.0 base58==2.1.1 pyasn1==0.4.8 zenroom==2.1.0.dev1655293214 cryptography==3.4.7 \ No newline at end of file diff --git a/planetmint/backend/localmongodb/connection.py b/planetmint/backend/localmongodb/connection.py index 7fc4c70..359e553 100644 --- a/planetmint/backend/localmongodb/connection.py +++ b/planetmint/backend/localmongodb/connection.py @@ -42,7 +42,7 @@ class LocalMongoDBConnection(DBConnection): ) self.crlfile = _kwargs_parser(key="crlfile", kwargs=kwargs) or dbconf["crlfile"] self.max_tries = _kwargs_parser(key="max_tries", kwargs=kwargs) - self.connection_timeout = _kwargs_parser(key="connection_timeout", kwargs=kwargs) + self.connection_timeout = _kwargs_parser(key="connection_timeout", kwargs=kwargs) or dbconf["connection_timeout"] self.__conn = None self.connect() @@ -93,7 +93,7 @@ class LocalMongoDBConnection(DBConnection): connecting to the database. """ if self.__conn: - return self._conn + return self.__conn try: # FYI: the connection process might raise a # `ServerSelectionTimeoutError`, that is a subclass of diff --git a/planetmint/backend/localmongodb/schema.py b/planetmint/backend/localmongodb/schema.py index b8fd6a0..9592aa1 100644 --- a/planetmint/backend/localmongodb/schema.py +++ b/planetmint/backend/localmongodb/schema.py @@ -63,7 +63,7 @@ INDEXES = { def create_database(conn, dbname): logger.info("Create database `%s`.", dbname) # TODO: read and write concerns can be declared here - conn.conn.get_database(dbname) + conn.connect().get_database(dbname) @register_schema(LocalMongoDBConnection) @@ -73,7 +73,7 @@ def create_tables(conn, dbname): # TODO: read and write concerns can be declared here try: logger.info(f"Create `{table_name}` table.") - conn.conn[dbname].create_collection(table_name) + conn.connect()[dbname].create_collection(table_name) except CollectionInvalid: logger.info(f"Collection {table_name} already exists.") create_indexes(conn, dbname, table_name, INDEXES[table_name]) @@ -82,9 +82,9 @@ def create_tables(conn, dbname): def create_indexes(conn, dbname, collection, indexes): logger.info(f"Ensure secondary indexes for `{collection}`.") for fields, kwargs in indexes: - conn.conn[dbname][collection].create_index(fields, **kwargs) + conn.connect()[dbname][collection].create_index(fields, **kwargs) @register_schema(LocalMongoDBConnection) def drop_database(conn, dbname): - conn.conn.drop_database(dbname) + conn.connect().drop_database(dbname) diff --git a/planetmint/config.py b/planetmint/config.py index b070e1a..7b93187 100644 --- a/planetmint/config.py +++ b/planetmint/config.py @@ -4,7 +4,8 @@ import os # from planetmint.log import DEFAULT_LOGGING_CONFIG as log_config from planetmint.version import __version__ # noqa - +from decouple import config + class Singleton(type): _instances = {} @@ -26,7 +27,7 @@ class Config(metaclass=Singleton): # _base_database_localmongodb.keys() because dicts are unordered. # I tried to configure self.log_config = DEFAULT_LOGGING_CONFIG - db = "tarantool_db" + db = config('PLANETMINT_DATABASE_BACKEND', default="tarantool_db") self.__private_database_keys_map = { # TODO Check if it is working after removing 'name' field "tarantool_db": ("host", "port"), "localmongodb": ("host", "port", "name"), diff --git a/setup.py b/setup.py index dd431f6..5fd9f4c 100644 --- a/setup.py +++ b/setup.py @@ -137,6 +137,7 @@ install_requires = [ "pyasn1>=0.4.8", "cryptography==3.4.7", "planetmint-transactions==0.1.0", + "python-decouple", ] setup(