extras-buildsys/server ArchJob.py,1.24,1.25

Daniel Williams (dcbw) fedora-extras-commits at redhat.com
Thu Feb 16 18:33:41 UTC 2006


Author: dcbw

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

Modified Files:
	ArchJob.py 
Log Message:
2006-02-16  Dan Williams  <dcbw at redhat.com>

    * server/ArchJob.py
        - Fix a few print statements that were using an unknown variable
            to get the builder's address from
        - Handle socket timeout errors




Index: ArchJob.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/ArchJob.py,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- ArchJob.py	16 Feb 2006 06:21:23 -0000	1.24
+++ ArchJob.py	16 Feb 2006 18:33:34 -0000	1.25
@@ -137,26 +137,37 @@
             del attrdict
 
     def _send_repo_unlocked(self):
+        success = False
         try:
             self._server.repo_unlocked(self.jobid)
+            success = True
         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,
-                            self.par_job.package, self._target_dict['arch'], self.bci.address(), e)
+                print "%s (%s/%s): [ %s ] Unknown error sending repo unlocked: '%s'" % (self.par_job.uid,
+                            self.par_job.package, self._target_dict['arch'], self.builder.address(), e)
+        except socket.timeout, e:
+            print "%s (%s/%s): [ %s ] Timeout sending repo unlocked: '%s'.  Trying again." % (self.par_job.uid,
+                        self.par_job.package, self._target_dict['arch'], self.builder.address(), e)
         except xmlrpclib.ProtocolError, e:
             pass
+        return success
 
     def _dl_files(self):
         files = []
+        success = False
         try:
             files = self._server.files(self.jobid)
+            success = True
         except socket.error, e:
             if not CommonErrors.canIgnoreSocketError(e):
-                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)
+                print "%s (%s/%s): [ %s ] Unknown error getting file list: '%s'" % (self.par_job.uid,
+                            self.par_job.package, self._target_dict['arch'], self.builder.address(), e)
+        except socket.timeout, e:
+            print "%s (%s/%s): [ %s ] Timeout getting file list: '%s'" % (self.par_job.uid,
+                        self.par_job.package, self._target_dict['arch'], self.builder.address(), e)
         except xmlrpclib.ProtocolError, e:
             pass
-        return files
+        return (success, files)
 
     def _is_done_status(self):
         if self._status == 'done':
@@ -181,10 +192,10 @@
     def _status_repo_unlock(self):
         # Builder will be in 'downloaded' state until
         # it notices that the repo has been unlocked 
-        self._send_repo_unlocked()
-        self._prepping = True
-        if self._builder_status != 'downloaded':
-            self._set_status('running')
+        if self._send_repo_unlocked():
+            self._prepping = True
+            if self._builder_status != 'downloaded':
+                self._set_status('running')
 
     def _status_running(self):
         if self._builder_status != 'prepping':
@@ -192,14 +203,16 @@
 
         # if the builder is done, grab list of files to download
         if self._builder_finished():
-            self._set_status('downloading')
-            for f in self._dl_files():
-                uf = urllib.unquote(f)
-                dl_dict = {}
-                dl_dict[DL_STATUS] = STATUS_WAITING
-                dl_dict[DL_RETRIES] = 0
-                dl_dict[DL_WAIT_TIME] = 0
-                self._downloads[uf] = dl_dict
+            (success, files) = self._dl_files()
+            if success:
+                self._set_status('downloading')
+                for f in files:
+                    uf = urllib.unquote(f)
+                    dl_dict = {}
+                    dl_dict[DL_STATUS] = STATUS_WAITING
+                    dl_dict[DL_RETRIES] = 0
+                    dl_dict[DL_WAIT_TIME] = 0
+                    self._downloads[uf] = dl_dict
 
     def dl_callback(self, status, cb_data):
         url = cb_data
@@ -264,8 +277,8 @@
                     undownloaded = True
                     dl_dict[DL_STATUS] = STATUS_INPROGRESS
                 except FileDownloader.FileNameException, e:
-                    print "%s (%s/%s): [ %s ] Bad file name error when getting %s: '%s'" % (self.par_job.uid,
-                                self.par_job.package, self._target_dict['arch'], self.bci.address(), url, e)
+                    print "%s (%s/%s): [ %s ] Bad file name error getting %s: '%s'" % (self.par_job.uid,
+                                self.par_job.package, self._target_dict['arch'], self.builder.address(), url, e)
                     # Hard error, we don't retry this one
                     dl_dict[DL_STATUS] = STATUS_ERROR
                 break




More information about the scm-commits mailing list