summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Kreen2013-03-22 16:00:55 +0000
committerMarko Kreen2013-03-22 16:00:55 +0000
commiteea77155a0878a5d044651f9b19977cd7e2e4d97 (patch)
tree15c62ef2301d3eb882bfe59828e4f58a0e93405d
parent70ce53ee1feb50acf1359f46767e2a3b950993d9 (diff)
DBScript.add_connect_string_profile: single place for profile logic
-rw-r--r--python/pgq/cascade/admin.py8
-rw-r--r--python/skytools/scripting.py21
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