Commit | Line | Data |
---|---|---|
a67fec81 | 1 | # GNU MediaGoblin -- federated, autonomous media hosting |
12a100e4 | 2 | # Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. |
a67fec81 E |
3 | # |
4 | # This program is free software: you can redistribute it and/or modify | |
5 | # it under the terms of the GNU Affero General Public License as published by | |
6 | # the Free Software Foundation, either version 3 of the License, or | |
7 | # (at your option) any later version. | |
8 | # | |
9 | # This program is distributed in the hope that it will be useful, | |
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 | # GNU Affero General Public License for more details. | |
13 | # | |
14 | # You should have received a copy of the GNU Affero General Public License | |
15 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
16 | ||
f92bea33 | 17 | import pymongo |
a67fec81 E |
18 | import mongokit |
19 | from paste.deploy.converters import asint | |
20 | from mediagoblin.db import models | |
21 | ||
22 | ||
f92bea33 CAW |
23 | def connect_database_from_config(app_config, use_pymongo=False): |
24 | """ | |
25 | Connect to the main database, take config from app_config | |
26 | ||
27 | Optionally use pymongo instead of mongokit for the connection. | |
28 | """ | |
a67fec81 E |
29 | port = app_config.get('db_port') |
30 | if port: | |
31 | port = asint(port) | |
243c3843 | 32 | |
f92bea33 CAW |
33 | if use_pymongo: |
34 | connection = pymongo.Connection( | |
35 | app_config.get('db_host'), port) | |
36 | else: | |
37 | connection = mongokit.Connection( | |
38 | app_config.get('db_host'), port) | |
a67fec81 E |
39 | return connection |
40 | ||
c47c37ed | 41 | |
f92bea33 CAW |
42 | def setup_connection_and_db_from_config(app_config, use_pymongo=False): |
43 | """ | |
44 | Setup connection and database from config. | |
45 | ||
46 | Optionally use pymongo instead of mongokit. | |
47 | """ | |
48 | connection = connect_database_from_config(app_config, use_pymongo) | |
39c6b2bd | 49 | database_path = app_config['db_name'] |
a67fec81 | 50 | db = connection[database_path] |
f92bea33 CAW |
51 | |
52 | if not use_pymongo: | |
53 | models.register_models(connection) | |
54 | ||
a67fec81 | 55 | return (connection, db) |