diff options
author | Marko Kreen | 2013-03-22 16:00:55 +0000 |
---|---|---|
committer | Marko Kreen | 2013-03-22 16:00:55 +0000 |
commit | eea77155a0878a5d044651f9b19977cd7e2e4d97 (patch) | |
tree | 15c62ef2301d3eb882bfe59828e4f58a0e93405d /python/skytools/scripting.py | |
parent | 70ce53ee1feb50acf1359f46767e2a3b950993d9 (diff) |
DBScript.add_connect_string_profile: single place for profile logic
Diffstat (limited to 'python/skytools/scripting.py')
-rw-r--r-- | python/skytools/scripting.py | 21 |
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 |