From 9c4b284db9b5b418a942409c54dd0d187f7a61b5 Mon Sep 17 00:00:00 2001 From: Lavina Date: Wed, 29 Mar 2017 17:10:55 +0530 Subject: [PATCH] Add a new exception for MongoDB Authentication errors --- bigchaindb/backend/exceptions.py | 4 ++++ bigchaindb/backend/mongodb/connection.py | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/bigchaindb/backend/exceptions.py b/bigchaindb/backend/exceptions.py index 017e19e4..e59b317b 100644 --- a/bigchaindb/backend/exceptions.py +++ b/bigchaindb/backend/exceptions.py @@ -9,6 +9,10 @@ class ConnectionError(BackendError): """Exception raised when the connection to the backend fails.""" +class AuthenticationError(ConnectionError): + """Exception raised when MongoDB Authentication fails""" + + class OperationError(BackendError): """Exception raised when a backend operation fails.""" diff --git a/bigchaindb/backend/mongodb/connection.py b/bigchaindb/backend/mongodb/connection.py index 8688e243..863059f8 100644 --- a/bigchaindb/backend/mongodb/connection.py +++ b/bigchaindb/backend/mongodb/connection.py @@ -8,7 +8,8 @@ from bigchaindb.utils import Lazy from bigchaindb.common.exceptions import ConfigurationError from bigchaindb.backend.exceptions import (DuplicateKeyError, OperationError, - ConnectionError) + ConnectionError, + AuthenticationError) from bigchaindb.backend.connection import Connection logger = logging.getLogger(__name__) @@ -83,6 +84,8 @@ class MongoDBConnection(Connection): # `initialize_replica_set` might raise `ConnectionFailure` or `OperationFailure`. except (pymongo.errors.ConnectionFailure, pymongo.errors.OperationFailure) as exc: + if "Authentication fail" in str(exc): + raise AuthenticationError() from exc raise ConnectionError() from exc