aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/db/open.py
diff options
context:
space:
mode:
authorChristopher Allan Webber <cwebber@dustycloud.org>2011-07-10 22:44:20 -0500
committerChristopher Allan Webber <cwebber@dustycloud.org>2011-07-10 22:44:20 -0500
commitf92bea33c7edcabce277b756aaceb40935c2e1e0 (patch)
tree27f6bdde7a4afb73258a70ae78bd930e7c4156d9 /mediagoblin/db/open.py
parentdab0d24d98ef6bdbb43548f7108437b8b91e4af0 (diff)
downloadmediagoblin-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.py33
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)