summaryrefslogtreecommitdiff
path: root/python/skytools/scripting.py
diff options
context:
space:
mode:
authorMarko Kreen2013-03-22 16:00:55 +0000
committerMarko Kreen2013-03-22 16:00:55 +0000
commiteea77155a0878a5d044651f9b19977cd7e2e4d97 (patch)
tree15c62ef2301d3eb882bfe59828e4f58a0e93405d /python/skytools/scripting.py
parent70ce53ee1feb50acf1359f46767e2a3b950993d9 (diff)
DBScript.add_connect_string_profile: single place for profile logic
Diffstat (limited to 'python/skytools/scripting.py')
-rw-r--r--python/skytools/scripting.py21
1 files changed, 12 insertions, 9 deletions
diff --git a/python/skytools/scripting.py b/python/skytools/scripting.py
index df0a2ea2..a5e82663 100644
--- a/python/skytools/scripting.py
+++ b/python/skytools/scripting.py
@@ -696,6 +696,15 @@ class DBScript(BaseScript):
def set_database_defaults(self, dbname, **kwargs):
self._db_defaults[dbname] = kwargs
+ def add_connect_string_profile(self, connstr, profile):
+ """Add extra profile info to connect string.
+ """
+ if profile:
+ extra = self.cf.get("%s_extra_connstr" % profile, '')
+ if extra:
+ connstr += ' ' + extra
+ return connstr
+
def get_database(self, dbname, autocommit = 0, isolation_level = -1,
cache = None, connstr = None, profile = None):
"""Load cached database connection.
@@ -725,22 +734,16 @@ class DBScript(BaseScript):
params['max_age'] = max_age
if cache in self.db_cache:
+ dbc = self.db_cache[cache]
if connstr is None:
connstr = self.cf.get(dbname, '')
- if profile:
- extra = self.cf.get("%s_extra_connstr" % profile, '')
- if extra:
- connstr += ' ' + extra
- dbc = self.db_cache[cache]
if connstr:
+ connstr = self.add_connect_string_profile(connstr, profile)
dbc.check_connstr(connstr)
else:
if not connstr:
connstr = self.cf.get(dbname)
- if profile:
- extra = self.cf.get("%s_extra_connstr" % profile, '')
- if extra:
- connstr += ' ' + extra
+ connstr = self.add_connect_string_profile(connstr, profile)
# connstr might contain password, it is not a good idea to log it
filtered_connstr = connstr