extras-buildsys/server PackageJob.py, 1.28, 1.29 ArchJob.py, 1.14, 1.15

Daniel Williams (dcbw) fedora-extras-commits at redhat.com
Thu Sep 8 21:10:27 UTC 2005


Author: dcbw

Update of /cvs/fedora/extras-buildsys/server
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv8365/server

Modified Files:
	PackageJob.py ArchJob.py 
Log Message:
2005-09-08  Dan Williams  <dcbw at redhat.com>

    * server/PackageJob.py
      server/ArchJob.py
        - Fail job if downloads from builder fail




Index: PackageJob.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/PackageJob.py,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- PackageJob.py	31 Aug 2005 01:56:43 -0000	1.28
+++ PackageJob.py	8 Sep 2005 21:10:25 -0000	1.29
@@ -544,7 +544,7 @@
             if job.get_status() is 'done':
                 completed_jobs = completed_jobs + 1
 
-                if job.builder_failed():
+                if job.builder_failed() or job.download_failed():
                     failed_jobs = failed_jobs + 1
 
                     # Normal jobs will just stop when a single archjob fails, but
@@ -554,7 +554,12 @@
                     if not job.failure_noticed():
                         job.set_failure_noticed()
                         jobarch = job.arch()
-                        msg = "Job failed on arch %s\n" % (jobarch)
+                        msg = "Job failed."
+                        if job.builder_failed():
+                            msg = "Job failed on arch %s\n" % jobarch
+                        elif job.download_failed():
+                            msg = "Job failed on arch %s: couldn't download result files from builder '%s'.\n " \
+                            "Please contact the build system administrator." % (jobarch, builder.address())
                         self._archjobs_lock.release()
                         raise BuildError(msg, jobarch)
 


Index: ArchJob.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/ArchJob.py,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- ArchJob.py	29 Aug 2005 17:48:19 -0000	1.14
+++ ArchJob.py	8 Sep 2005 21:10:25 -0000	1.15
@@ -38,6 +38,7 @@
         self.status = 'running'
         self.builder_status = ''
         self._failure_noticed = False
+        self._download_failed = False
         self._target_dict = target_dict
         self._builder_gone = False
         self.downloads = {}
@@ -68,6 +69,9 @@
             return True
         return False
 
+    def download_failed(self):
+        return self._download_failed
+
     def builder_prepping(self):
         if self.builder_status == 'prepping':
             return True
@@ -132,7 +136,7 @@
             files = self._server.files(self.jobid)
         except socket.error, e:
             if not CommonErrors.canIgnoreSocketError(e):
-                print "%s (%s/%s): [ %s ] Unknown error when signalling repo unlocked: '%s'" % (self.par_job.uid,
+                print "%s (%s/%s): [ %s ] Unknown error when getting file list: '%s'" % (self.par_job.uid,
                             self.par_job.package, self._target_dict['arch'], self.bci.address(), e)
         except xmlrpclib.ProtocolError, e:
             pass
@@ -175,6 +179,7 @@
             #   2: error
             #   3: done
             undownloaded = False
+            failed = False
             for url in self.downloads.keys():
                 dl_status = self.downloads[url]
                 if dl_status == 0:
@@ -198,6 +203,7 @@
                     break
                 elif dl_status == 2:
                     # error
+                    failed = True
                     continue
                 elif dl_status == 3:
                     # this one is done
@@ -207,6 +213,8 @@
             if not undownloaded:
                 self._print_downloaded_files()
                 self.endtime = time.time()
+                if failed:
+                    self._download_failed = True
                 self._set_status('done')
                 self.par_job.wake()
 




More information about the fedora-extras-commits mailing list