extras-buildsys/server BuilderManager.py,1.16,1.17

Daniel Williams (dcbw) fedora-extras-commits at redhat.com
Sun Sep 11 03:29:36 UTC 2005


Author: dcbw

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

Modified Files:
	BuilderManager.py 
Log Message:
2005-09-10  Dan Williams  <dcbw at redhat.com>

    * server/BuilderManager.py
        - Fix python < 2.4 issues with sequence sort() call




Index: BuilderManager.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/BuilderManager.py,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- BuilderManager.py	9 Sep 2005 15:10:17 -0000	1.16
+++ BuilderManager.py	11 Sep 2005 03:29:34 -0000	1.17
@@ -127,6 +127,15 @@
     def _builder_sort_func(self, builder):
         return builder.free_slots()
 
+    def _builder_cmp_func(self, builder1, builder2):
+        if builder1.free_slots() > builder2.free_slots():
+            return 1
+        elif builder1.free_slots() == builder2.free_slots():
+            return 0
+        elif builder1.free_slots() < builder2.free_slots():
+            return -1
+        return 1
+
     def process(self, paused):
         self._have_work = False
 
@@ -152,7 +161,12 @@
                     print "Appending builder %s" % builder.address()
 
             # Use the builder with the most free build slots
-            builder_list.sort(key=self._builder_sort_func, reverse=True)
+            if sys.version_info[:3] >= (2, 4, 0):
+                builder_list.sort(key=self._builder_sort_func, reverse=True)
+            else:
+                builder_list.sort(self._builder_cmp_func)
+                builder_list.reverse()
+
             for builder in builder_list:
                 try:
                     job = builder.start_job(parent, req['target_dict'], req['srpm_url'])




More information about the fedora-extras-commits mailing list