extras-buildsys/server BuildMaster.py, 1.11, 1.12 UserInterface.py, 1.15, 1.16

Daniel Williams (dcbw) fedora-extras-commits at redhat.com
Fri Jul 8 18:12:33 UTC 2005


Author: dcbw

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

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

    * Pass archjob information along to the client,
        and move query into UserInterface's thread




Index: BuildMaster.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/BuildMaster.py,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- BuildMaster.py	8 Jul 2005 17:23:45 -0000	1.11
+++ BuildMaster.py	8 Jul 2005 18:12:31 -0000	1.12
@@ -211,8 +211,8 @@
         self.dbcx.commit()
         if len(self.curs.fetchall()) == 0:
             try:
-                self.curs.execute('INSERT INTO archjobs (jobid, parent_uid, starttime, arch, builder_addr, status, builder_status) ' \
-                    'VALUES ("%s", %d, %d, "%s", "%s", "%s", "%s")' % (jobid, attrdict['parent_uid'], time.time(), attrdict['arch'], \
+                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")' % (jobid, attrdict['parent_uid'], time.time(), 0, attrdict['arch'], \
                     attrdict['builder_addr'], attrdict['status'], attrdict['builder_status']))
             except sqlite.OperationalError, e:
                 print "DB Error: could not access jobs database. Reason: '%s'" % e


Index: UserInterface.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/UserInterface.py,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- UserInterface.py	5 Jul 2005 21:08:03 -0000	1.15
+++ UserInterface.py	8 Jul 2005 18:12:31 -0000	1.16
@@ -26,7 +26,8 @@
 import PackageJob
 
 # Load in the config
-execfile("/etc/plague/server/CONFIG.py")
+CONFIG_LOCATION = "/etc/plague/server/"
+execfile(CONFIG_LOCATION + "CONFIG.py")
 
 
 def email_result(email, cvs_tag, resultstring, subject=None):
@@ -44,6 +45,12 @@
     s.close()
 
 
+def get_dbcx():
+    dbcx = None
+    dbcx = sqlite.connect(CONFIG_LOCATION + "jobdb", encoding="utf-8", timeout=3)
+    curs = dbcx.cursor()
+    return (dbcx, curs)
+
 
 class UserInterface:
     """
@@ -145,29 +152,47 @@
                     search = search + " AND "
                 search = search + 'status = "%s"' % status
             else:
-                return (-1, "Error: Invalid query.", [])
+                return (-1, "Error: Invalid query.", [], [])
 
         if len(search):
             sql = sql + search
         if not len(sql):
-            return (-1, "Error: Invalid query.", [])
+            return (-1, "Error: Invalid query.", [], [])
+
+        try:
+            dbcx, curs = get_dbcx()
+        except sqlite.DatabaseError, e:
+            return (-1, "Unable to access job database.", [], [])
+        curs.execute(sql)
+        data = curs.fetchall()
+        results = []
+        for row in data:
+            tempX = [ item for item in row ]
+            results.append(tempX)
+        jobs = copy.deepcopy(results)
+
+        uids = ''
+        for result in jobs:
+            if len(uids) == 0:
+                uids = uids + "parent_uid=%d" % result[0]
+            else:
+                uids = uids + " OR parent_uid=%d" % result[0]
+
+        archjobs = []
+        if len(uids) > 0:
+            sql = "SELECT jobid, parent_uid, starttime, endtime, arch, builder_addr, status, builder_status FROM archjobs WHERE " + uids
+            curs.execute(sql)
+            data = curs.fetchall()
+            aj_results = []
+            for row in data:
+                tempX = [ item for item in row ]
+                aj_results.append(tempX)
+            archjobs = copy.deepcopy(aj_results)
+
+        del curs
+        del dbcx
 
-        job_list = []
-        query = BuildMaster.JobsQuery(sql)
-        self._bm.queue_query(query)
-        start_time = time.time()
-
-        # Wait for query to return from BuildMaster
-        ret = -1
-        msg = "Error: The query timed out, please try again."
-        while time.time() <= start_time + 5:
-            if query.done:
-                job_list = copy.deepcopy(query.result)
-                del query
-                ret = 0
-                msg = "Success."
-                break
-        return (ret, msg, job_list)
+        return (0, "Success.", jobs, archjobs)
 
 
     def update_builders(self):




More information about the fedora-extras-commits mailing list