]> git.decadent.org.uk Git - dak.git/commitdiff
Add more logging to contents generate.
authorTorsten Werner <twerner@debian.org>
Tue, 22 Mar 2011 15:42:58 +0000 (15:42 +0000)
committerTorsten Werner <twerner@debian.org>
Tue, 22 Mar 2011 15:42:58 +0000 (15:42 +0000)
Signed-off-by: Torsten Werner <twerner@debian.org>
dak/contents.py
daklib/contents.py

index a8578ae32c51a4bfad7e2a4ced29df2bfe1134c6..d763f869ab094bc2feb1aee15c02872756e11478 100755 (executable)
@@ -77,7 +77,7 @@ OPTIONS for scan
 
 def write_all(cnf, suite_names = [], force = None):
     Logger = daklog.Logger(cnf.Cnf, 'contents generate')
-    ContentsWriter.write_all(suite_names, force)
+    ContentsWriter.write_all(Logger, suite_names, force)
     Logger.close()
 
 ################################################################################
index 848976d54717100992daf4099ac1f4a947dd2a98..bb81589394f20fb77068eb8a04fd071ed25b6aa4 100755 (executable)
@@ -199,12 +199,20 @@ select bc.file, string_agg(o.section || '/' || b.package, ',' order by b.package
         os.chmod(final_filename, 0664)
 
     @classmethod
-    def write_all(class_, suite_names = [], force = False):
+    def log_result(class_, result):
+        '''
+        Writes a result message to the logfile.
+        '''
+        class_.logger.log(result)
+
+    @classmethod
+    def write_all(class_, logger, suite_names = [], force = False):
         '''
         Writes all Contents files for suites in list suite_names which defaults
         to all 'touchable' suites if not specified explicitely. Untouchable
         suites will be included if the force argument is set to True.
         '''
+        class_.logger = logger
         session = DBConn().session()
         suite_query = session.query(Suite)
         if len(suite_names) > 0:
@@ -221,10 +229,13 @@ select bc.file, string_agg(o.section || '/' || b.package, ',' order by b.package
             for architecture in suite.get_architectures(skipsrc = True, skipall = True):
                 arch_id = architecture.arch_id
                 # handle 'deb' packages
-                pool.apply_async(generate_helper, (suite_id, arch_id, deb_id))
+                pool.apply_async(generate_helper, (suite_id, arch_id, deb_id), \
+                    callback = class_.log_result)
                 # handle 'udeb' packages for 'main' and 'non-free'
-                pool.apply_async(generate_helper, (suite_id, arch_id, udeb_id, main_id))
-                pool.apply_async(generate_helper, (suite_id, arch_id, udeb_id, non_free_id))
+                pool.apply_async(generate_helper, (suite_id, arch_id, udeb_id, main_id), \
+                    callback = class_.log_result)
+                pool.apply_async(generate_helper, (suite_id, arch_id, udeb_id, non_free_id), \
+                    callback = class_.log_result)
         pool.close()
         pool.join()
         session.close()
@@ -238,12 +249,15 @@ def generate_helper(suite_id, arch_id, overridetype_id, component_id = None):
     suite = Suite.get(suite_id, session)
     architecture = Architecture.get(arch_id, session)
     overridetype = OverrideType.get(overridetype_id, session)
+    log_message = [suite.suite_name, architecture.arch_string, overridetype.overridetype]
     if component_id is None:
         component = None
     else:
         component = Component.get(component_id, session)
+        log_message.append(component.component_name)
     contents_writer = ContentsWriter(suite, architecture, overridetype, component)
     contents_writer.write_file()
+    return log_message
 
 
 class ContentsScanner(object):