extras-buildsys/server ArchJob.py, 1.9, 1.10 BuildMaster.py, 1.29, 1.30 Builder.py, 1.10, 1.11 BuilderManager.py, 1.10, 1.11 UserInterface.py, 1.43, 1.44

Daniel Williams (dcbw) fedora-extras-commits at redhat.com
Mon Aug 8 02:54:18 UTC 2005


Author: dcbw

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

Modified Files:
	ArchJob.py BuildMaster.py Builder.py BuilderManager.py 
	UserInterface.py 
Log Message:
2005-08-07  Dan Williams <dcbw at redhat.com>

    Play nicely when running more than one builder instance on the same
    machine.

    * builder/builder.py
        - Try to delete actual mock work dir rather than just the buildroot

    * client/client.py
        - Prettier printing of job detail command output
        - Show builder port numbers

    * server/ArchJob.py
        - Save builder port number

    * server/BuildMaster.py
        - Add a builder port # to the archjobs table, and save builder port #
            when writing archjob status to the DB

    * server/Builder.py
        - (to_dict): return builder port # too

    * server/BuilderManager.py
        - Don't exit when adding new builders that have wrong connection
            protocol, just ignore them

    * server/UserInterface.py
        - Retrieve and return builder port numbers too

    * www/builders.psp
        - Differentiate builders and their jobs by port #
        - Only show building archjobs, not 'downloading' or 'downloaded' ones

    * www/job.psp
        - Show builder port numbers




Index: ArchJob.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/ArchJob.py,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- ArchJob.py	6 Aug 2005 02:35:07 -0000	1.9
+++ ArchJob.py	8 Aug 2005 02:54:16 -0000	1.10
@@ -84,6 +84,7 @@
         host_port, path = urllib.splithost(addr)
         host, port = urllib.splitport(host_port)
         attrdict['builder_addr'] = host
+        attrdict['builder_port'] = port
         attrdict['status'] = self.status
         attrdict['builder_status'] = self.builder_status
         attrdict['starttime'] = self.starttime


Index: BuildMaster.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/BuildMaster.py,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- BuildMaster.py	6 Aug 2005 17:58:34 -0000	1.29
+++ BuildMaster.py	8 Aug 2005 02:54:16 -0000	1.30
@@ -82,6 +82,7 @@
                 'endtime BIGINT, '                  \
                 'arch VARCHAR(15), '                \
                 'builder_addr VARCHAR(100), '       \
+                'builder_port VARCHAR(6), '         \
                 'status VARCHAR(15), '              \
                 'builder_status VARCHAR(15)'        \
                 ')')
@@ -321,9 +322,12 @@
         self.dbcx.commit()
         if len(self.curs.fetchall()) == 0:
             try:
-                self.curs.execute('INSERT INTO archjobs (jobid, parent_uid, starttime, endtime, arch, builder_addr, status, builder_status) ' \
-                    'VALUES ("%s", %d, %d, %d, "%s", "%s", "%s", "%s")' % (uid, attrdict['parent_uid'], attrdict['starttime'], attrdict['endtime'], \
-                    attrdict['arch'], attrdict['builder_addr'], attrdict['status'], attrdict['builder_status']))
+                self.curs.execute('INSERT INTO archjobs (jobid, parent_uid, starttime, '    \
+                    'endtime, arch, builder_addr, builder_port, status, builder_status) '   \
+                    'VALUES ("%s", %d, %d, %d, "%s", "%s", "%s", "%s", "%s")' % (uid, attrdict['parent_uid'], \
+                    attrdict['starttime'], attrdict['endtime'], attrdict['arch'],                       \
+                    attrdict['builder_addr'], attrdict['builder_port'], attrdict['status'],             \
+                    attrdict['builder_status']))
             except sqlite.OperationalError, e:
                 print "DB Error: could not access jobs database. Reason: '%s'" % e
         else:            


Index: Builder.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/Builder.py,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- Builder.py	6 Aug 2005 02:35:07 -0000	1.10
+++ Builder.py	8 Aug 2005 02:54:16 -0000	1.11
@@ -20,6 +20,7 @@
 import sys
 import socket
 import os
+import urllib
 import threading
 from plague import XMLRPCServerProxy
 from plague import CommonErrors
@@ -261,7 +262,18 @@
 
     def to_dict(self):
         builder_dict = {}
-        builder_dict['address'] = self._address
+
+        addr = self._address
+        # for some reason, splithost doesn't like the protocol
+        # method, you have to give it a string starting with "//"
+        if addr.startswith("http"):
+            idx = addr.find('//')
+            addr = addr[idx:]
+        host_port, path = urllib.splithost(addr)
+        host, port = urllib.splitport(host_port)
+        builder_dict['address'] = host
+        builder_dict['port'] = port
+
         arches = []
         for target in self._target_arches.keys():
             for arch in self._target_arches[target]:


Index: BuilderManager.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/BuilderManager.py,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- BuilderManager.py	6 Aug 2005 02:35:07 -0000	1.10
+++ BuilderManager.py	8 Aug 2005 02:54:16 -0000	1.11
@@ -83,10 +83,10 @@
             # If the address is "https" but we aren't set up for SSL, exit
             if address.startswith('https') and not config_opts['ssl_builders']:
                 print "Builder address (%s) starts with 'https', but the 'ssl_builders' option is set to False." % address
-                os._exit(1)
+                continue
             elif address.startswith('http:') and config_opts['ssl_builders']:
                 print "Builder address (%s) starts with 'http', but the 'ssl_builders' option is set to True." % address
-                os._exit(1)
+                continue
 
             # If the address is already in our _builders list, skip it
             skip = False


Index: UserInterface.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/UserInterface.py,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- UserInterface.py	6 Aug 2005 02:35:07 -0000	1.43
+++ UserInterface.py	8 Aug 2005 02:54:16 -0000	1.44
@@ -365,7 +365,8 @@
 
         # Get all archjobs for this job
         if len(uids) > 0:
-            sql = "SELECT jobid, parent_uid, starttime, endtime, arch, builder_addr, status, builder_status FROM archjobs WHERE " + uids
+            sql = "SELECT jobid, parent_uid, starttime, endtime, arch, builder_addr, "  \
+                    "builder_port, status, builder_status FROM archjobs WHERE " + uids
             curs.execute(sql)
             data = curs.fetchall()
             for row in data:
@@ -376,6 +377,7 @@
                 ajrec['endtime'] = row['endtime']
                 ajrec['arch'] = row['arch']
                 ajrec['builder_addr'] = row['builder_addr']
+                ajrec['builder_port'] = row['builder_port']
                 ajrec['status'] = row['status']
                 ajrec['builder_status'] = row['builder_status']
                 for job in jobs:
@@ -428,8 +430,8 @@
         jobrec['archjobs'] = []
 
         # Get all archjobs for this job
-        sql = "SELECT jobid, parent_uid, starttime, endtime, arch, builder_addr, status, " \
-                "builder_status FROM archjobs WHERE parent_uid=%d " % uid
+        sql = "SELECT jobid, parent_uid, starttime, endtime, arch, builder_addr, builder_port, "    \
+                "status, builder_status FROM archjobs WHERE parent_uid=%d " % uid
         curs.execute(sql)
         data = curs.fetchall()
         for row in data:
@@ -440,6 +442,7 @@
             ajrec['endtime'] = row['endtime']
             ajrec['arch'] = row['arch']
             ajrec['builder_addr'] = row['builder_addr']
+            ajrec['builder_port'] = row['builder_port']
             ajrec['status'] = row['status']
             ajrec['builder_status'] = row['builder_status']
             jobrec['archjobs'].append(ajrec)




More information about the scm-commits mailing list