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 | |
parent | 70ce53ee1feb50acf1359f46767e2a3b950993d9 (diff) |
DBScript.add_connect_string_profile: single place for profile logic
-rw-r--r-- | python/pgq/cascade/admin.py | 8 | ||||
-rw-r--r-- | python/skytools/scripting.py | 21 |
2 files changed, 14 insertions, 15 deletions
diff --git a/python/pgq/cascade/admin.py b/python/pgq/cascade/admin.py index 9eefcdfc..c5685667 100644 --- a/python/pgq/cascade/admin.py +++ b/python/pgq/cascade/admin.py @@ -433,14 +433,10 @@ class CascadeAdmin(skytools.AdminScript): """Show set status.""" self.load_local_info() - cstr_extra = self.cf.get('remote_extra_connstr', '') - - # prepare structs for workers + # prepare data for workers members = Queue.Queue() for m in self.queue_info.member_map.itervalues(): - cstr = m.location - if cstr_extra: - cstr += ' ' + cstr_extra + cstr = self.add_connect_string_profile(m.location, 'remote') members.put( (m.name, cstr) ) nodes = Queue.Queue() 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 |