diff options
author | Christopher Allan Webber <cwebber@dustycloud.org> | 2011-07-10 22:44:20 -0500 |
---|---|---|
committer | Christopher Allan Webber <cwebber@dustycloud.org> | 2011-07-10 22:44:20 -0500 |
commit | f92bea33c7edcabce277b756aaceb40935c2e1e0 (patch) | |
tree | 27f6bdde7a4afb73258a70ae78bd930e7c4156d9 /mediagoblin/db/open.py | |
parent | dab0d24d98ef6bdbb43548f7108437b8b91e4af0 (diff) | |
download | mediagoblin-f92bea33c7edcabce277b756aaceb40935c2e1e0.tar.lz mediagoblin-f92bea33c7edcabce277b756aaceb40935c2e1e0.tar.xz mediagoblin-f92bea33c7edcabce277b756aaceb40935c2e1e0.zip |
give option in connect_database_from_config to connect to a pymongo.Connection
Diffstat (limited to 'mediagoblin/db/open.py')
-rw-r--r-- | mediagoblin/db/open.py | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/mediagoblin/db/open.py b/mediagoblin/db/open.py index cae33394..cb040c29 100644 --- a/mediagoblin/db/open.py +++ b/mediagoblin/db/open.py @@ -14,24 +14,41 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. +import pymongo import mongokit from paste.deploy.converters import asint from mediagoblin.db import models -def connect_database_from_config(app_config): - """Connect to the main database, take config from app_config""" +def connect_database_from_config(app_config, use_pymongo=False): + """ + Connect to the main database, take config from app_config + + Optionally use pymongo instead of mongokit for the connection. + """ port = app_config.get('db_port') if port: port = asint(port) - connection = mongokit.Connection( - app_config.get('db_host'), port) + + if use_pymongo: + connection = pymongo.Connection( + app_config.get('db_host'), port) + else: + connection = mongokit.Connection( + app_config.get('db_host'), port) return connection -def setup_connection_and_db_from_config(app_config): - connection = connect_database_from_config(app_config) +def setup_connection_and_db_from_config(app_config, use_pymongo=False): + """ + Setup connection and database from config. + + Optionally use pymongo instead of mongokit. + """ + connection = connect_database_from_config(app_config, use_pymongo) database_path = app_config.get('db_name', 'mediagoblin') db = connection[database_path] - models.register_models(connection) - # Could configure indexes here on db + + if not use_pymongo: + models.register_models(connection) + return (connection, db) |