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