[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[dak/master 4/4] Add more logging to contents generate.



Signed-off-by: Torsten Werner <twerner@debian.org>
---
 dak/contents.py    |    2 +-
 daklib/contents.py |   22 ++++++++++++++++++----
 2 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/dak/contents.py b/dak/contents.py
index a8578ae..d763f86 100755
--- a/dak/contents.py
+++ b/dak/contents.py
@@ -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()
 
 ################################################################################
diff --git a/daklib/contents.py b/daklib/contents.py
index 848976d..bb81589 100755
--- a/daklib/contents.py
+++ b/daklib/contents.py
@@ -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):
-- 
1.7.2.5


Reply to: