|
a/Allura/allura/model/session.py |
|
b/Allura/allura/model/session.py |
1 |
import logging
|
1 |
import logging
|
|
|
2 |
import urllib
|
2 |
from itertools import chain
|
3 |
from itertools import chain
|
3 |
|
4 |
|
4 |
from pylons import c
|
5 |
from pylons import c
|
5 |
|
6 |
|
6 |
from ming import Session
|
7 |
from ming import Session
|
|
... |
|
... |
31 |
except TypeError:
|
32 |
except TypeError:
|
32 |
# running without MagicalC, inside a request (likely EasyWidgets)
|
33 |
# running without MagicalC, inside a request (likely EasyWidgets)
|
33 |
return None
|
34 |
return None
|
34 |
if p is None: return None
|
35 |
if p is None: return None
|
35 |
if p.database_uri:
|
36 |
if p.database_uri:
|
|
|
37 |
scheme, rest = p.database_uri.split('://')
|
|
|
38 |
host, database = rest.split('/', 1)
|
36 |
return ShardedDataStore.get(p.database_uri).db
|
39 |
return ShardedDataStore.get(scheme + '://' + host, database).db
|
37 |
return getattr(self.main_session.bind.conn, p.database)
|
40 |
return getattr(self.main_session.bind.conn, p.database)
|
38 |
except (KeyError, AttributeError), ex:
|
41 |
except (KeyError, AttributeError), ex:
|
39 |
return None
|
42 |
return None
|
40 |
|
43 |
|
41 |
def _impl(self, cls):
|
44 |
def _impl(self, cls):
|