change db_install logger to be a callback
authorMarko Kreen <markokr@gmail.com>
Fri, 7 Dec 2007 15:01:29 +0000 (15:01 +0000)
committerMarko Kreen <markokr@gmail.com>
Fri, 7 Dec 2007 15:01:29 +0000 (15:01 +0000)
python/londiste/installer.py
python/pgqadm.py
python/skytools/sqltools.py

index e76cdb20efb898bec16aefd93c5d7e67f4901034..fc3c61cd6b2ff153acca7dc9154815e475f3c4cf 100644 (file)
@@ -19,9 +19,9 @@ subscriber_object_list = [
 
 def install_provider(curs, log):
     """Installs needed code into provider db."""
-    skytools.db_install(curs, provider_object_list, log)
+    skytools.db_install(curs, provider_object_list, log.info)
 
 def install_subscriber(curs, log):
     """Installs needed code into subscriber db."""
-    skytools.db_install(curs, subscriber_object_list, log)
+    skytools.db_install(curs, subscriber_object_list, log.info)
 
index 07c7aa01c361ec5b9f9dcc0afadbf6c0191bfd2a..b436efd641f2d49fb30ae54ab369a5e57cb62ce0 100755 (executable)
@@ -91,7 +91,7 @@ class PGQAdmin(skytools.DBScript):
 
         db = self.get_database('db')
         curs = db.cursor()
-        skytools.db_install(curs, objs, self.log)
+        skytools.db_install(curs, objs, self.log.info)
         db.commit()
 
     def create_queue(self):
index 2867a114665b4df7fca48eeb377f6273fafccf94..b41b09e07bc08247b9a163347e0871f00f8aedb9 100644 (file)
@@ -294,6 +294,8 @@ def full_copy(tablename, src_curs, dst_curs, column_list = []):
 # SQL installer
 #
 
+def _nologger(msg): pass
+
 class DBObject(object):
     """Base class for installable DB objects."""
     name = None
@@ -304,15 +306,13 @@ class DBObject(object):
         self.sql = sql
         self.sql_file = sql_file
 
-    def create(self, curs, log = None):
-        if log:
-            log.info('Installing %s' % self.name)
+    def create(self, curs, logger = _nologger):
+        logger('Installing %s' % self.name)
         if self.sql:
             sql = self.sql
         elif self.sql_file:
             fn = self.find_file()
-            if log:
-                log.info("  Reading from %s" % fn)
+            logger("  Reading from %s" % fn)
             sql = open(fn, "r").read()
         else:
             raise Exception('object not defined')
@@ -359,12 +359,11 @@ class DBLanguage(DBObject):
     def exists(self, curs):
         return exists_language(curs, self.name)
 
-def db_install(curs, list, log = None):
+def db_install(curs, list, logger = _nologger):
     """Installs list of objects into db."""
     for obj in list:
         if not obj.exists(curs):
-            obj.create(curs, log)
+            obj.create(curs, logger)
         else:
-            if log:
-                log.info('%s is installed' % obj.name)
+            logger('%s is installed' % obj.name)