[Extras-cauldron-commits] r40 - trunk/buildme/tools

ed_ at garage.maemo.org ed_ at garage.maemo.org
Sun May 18 22:10:35 EEST 2008


Author: ed_
Date: 2008-05-18 22:10:35 +0300 (Sun, 18 May 2008)
New Revision: 40

Modified:
   trunk/buildme/tools/buildme
Log:
debugging results

Modified: trunk/buildme/tools/buildme
===================================================================
--- trunk/buildme/tools/buildme	2008-05-18 19:07:49 UTC (rev 39)
+++ trunk/buildme/tools/buildme	2008-05-18 19:10:35 UTC (rev 40)
@@ -82,6 +82,7 @@
     parser = OptionParser(usage = "%prog [options]")
                                                                                                                   
     parser.add_option("--product", type="string", dest="product", help="specify one product for the build")
+    parser.add_option("--config", type="string", dest="config", help="specify config file")
     parser.add_option("--preserve", action='store_true', dest='preserve', help='preserve working files')
     parser.add_option('--debug', action='store_true', dest='debug', help='enable debug output')
     parser.add_option('--verbose', action='store_true', dest='verbose', help='verbose output')
@@ -124,18 +125,22 @@
         """
 
         env = self.env
-        
-        if env.params['rcode']:
-            if env.params['rcode'] == REJECTED:
-                build_status = REJECTED
-            else:
-                build_status = "FAILED"
+
+        if 'rcode' not in env.params:
+            build_status = 'UNKNOWN'
         else:
-            build_status = "OK"
 
-        package, version = os.path.splitext(os.path.basename(env['fname']))[0].split('_')
+            if env.params['rcode']:
+                if env.params['rcode'] == REJECTED:
+                    build_status = REJECTED
+                else:
+                    build_status = "FAILED"
+            else:
+                build_status = "OK"
 
-        return env.params['conf'].get(env['product'], 'subject_template', False,
+        package, version = os.path.splitext(os.path.basename(env.params['fname']))[0].split('_')
+
+        return env.params['conf'].get(env.params['product'], 'subject_template', False,
                         {'package' : package, 'version' : version, 'build_status' : build_status})
 
 def reject_fname(env, message):
@@ -144,7 +149,7 @@
     env.params['rcode'] = REJECTED
     env.params['logger'].fatal("REJECTED: %s" % message)
 
-    fname = env['fname']
+    fname = env.params['fname']
     incoming = os.path.dirname(fname)
     rejected_dir = os.path.join(incoming, 'rejected')
 
@@ -166,7 +171,8 @@
     # Move them into 'rejected' dir
     for name in fnames:
         try:
-            shutil.move(name, rejected_dir)
+            if os.path.exists(name):
+                shutil.move(name, rejected_dir)
         except (OSError, IOError), exobj:
             raise Error("Can't move '%s' to rejected subdir: %s" % (os.path.basename(name), exobj))
 
@@ -212,6 +218,11 @@
     else:
         env.params['fnames'] = fnames
 
+    # create handler for mailing list notifications
+    if conf.has_option(product, 'mail_list'):
+        create_ml_handler(logger, conf.get(product, 'mail_list'),
+                                  conf.get(product, 'builder_email'), Subject(env))
+
     # get destination names from config
     env.params['dest_names'] = eval(conf.get(product, 'destinations'))
 
@@ -240,11 +251,6 @@
         logger.debug(exobj)
         return FSM.NEXT
 
-    # create handler for mailing list notifications
-    if conf.has_option(product, 'mail_list'):
-        create_ml_handler(conf.get(product, 'mail_list'),
-                        conf.get(product, 'builder_email'), Subject(env))
-
     # get target names tuple from config
     tnames = eval(conf.get(product, 'targets'))
  
@@ -270,15 +276,15 @@
     fname = env.params['fname']
     destination = env.params['destination']
     result_dir = conf.get(product, 'result_dir')
-    upload_timeout = conf.get(product, 'upload_timeout')
+    upload_timeout = int(conf.get(product, 'upload_timeout'))
     builder_email = conf.get(product, 'builder_email')
 
     uploader = pwd.getpwuid(os.stat(fname).st_uid).pw_name
     info = "Processing package %s. Uploader: %s, builder: %s" % \
             (os.path.splitext(os.path.basename(fname))[0].replace('_', ' '), uploader, destination.user)
-    logger.info(info)
 
     handler = create_uploader_handler(logger, uploader, builder_email, Subject(env))
+    logger.info(info)
 
     try:
         dsc = Dsc(fname, exclude = ('.deb',))
@@ -287,20 +293,28 @@
         logger.removeHandler(handler)
         return FSM.NEXT
     except LockException, exobj:
+        logger.debug(exobj)
+        logger.clean()
         logger.removeHandler(handler)
         return FSM.NEXT
 
     try:
         dsc.verify()
     except DscException, exobj:
+        logger.debug(exobj)
         reject_fname(logger, exobj)
         logger.removeHandler(handler)
         return FSM.NEXT
     except ChangeFileException, exobj:
         # check dsc timeout
+        logger.debug(exobj)
         if (datetime.now() - datetime.fromtimestamp(os.stat(fname).st_mtime)).seconds > upload_timeout:
             reject_fname(env, exobj)
             logger.removeHandler(handler)
+        else:
+            logger.clean()
+            logger.removeHandler(handler)
+            logger.debug("skipped, timeout isn't expired yet")
 
         return FSM.NEXT
 



More information about the Extras-cauldron-commits mailing list