extras-buildsys/server BuildMaster.py, 1.3, 1.4 client_manager.py, 1.19, 1.20
Daniel Williams (dcbw)
fedora-extras-commits at redhat.com
Fri Jun 24 10:55:17 UTC 2005
Author: dcbw
Update of /cvs/fedora/extras-buildsys/server
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv365/server
Modified Files:
BuildMaster.py client_manager.py
Log Message:
2005-06-24 Dan Williams <dcbw at redhat.com>
* server/BuildMaster.py
server/client_manager.py
- Trap more errors
Index: BuildMaster.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/BuildMaster.py,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- BuildMaster.py 19 Jun 2005 03:05:50 -0000 1.3
+++ BuildMaster.py 24 Jun 2005 10:55:15 -0000 1.4
@@ -22,7 +22,7 @@
import sqlite
import threading
import os
-import commands
+import Repo
def ensure_build_db_tables(dbcx):
@@ -34,12 +34,22 @@
dbcx.commit()
except Exception, e:
# If DB wasn't created, try to create it
- curs.execute('CREATE TABLE jobs (uid INTEGER PRIMARY KEY, ' \
+ try:
+ curs.execute('CREATE TABLE jobs (uid INTEGER PRIMARY KEY, ' \
'username VARCHAR(20), package VARCHAR(50), ' \
'cvs_tag VARCHAR(255), target VARCHAR(20), ' \
'buildreq VARCHAR(75), time_submitted BIGINT, ' \
'status VARCHAR(15))')
- dbcx.commit()
+ except sqlite.OperationalError, e:
+ print "Could not access the job database. Reason: '%s'. Exiting..." % e
+ os._exit(1)
+ except sqlite.DatabaseError, e:
+ s = "%s" % e
+ if s != "table jobs already exists":
+ print "Could not access the job database. Reason: '%s'. Exiting..." % e
+ os._exit(1)
+ else:
+ dbcx.commit()
class BuildMaster(threading.Thread):
@@ -48,7 +58,7 @@
self.hostname = hostname
self.building_jobs = []
self.should_stop = False
- self.dbcx = sqlite.connect("jobdb", encoding="utf-8", timeout=2)
+ self.dbcx = sqlite.connect("jobdb", encoding="utf-8", timeout=4)
self.curs = self.dbcx.cursor()
self.createrepo_lock = threading.Lock()
self._repo_invalid = True
@@ -102,17 +112,22 @@
self.building_jobs.remove(job)
# Grab one waiting job from database and start it
- self.curs.execute('SELECT uid, username, package, cvs_tag, target' \
- ' FROM jobs WHERE status="waiting"')
- self.dbcx.commit()
- item = self.curs.fetchone()
- if item:
- print "%s (%s): Starting tag '%s' on target '%s'" % (item['uid'], \
- item['package'], item['cvs_tag'], item['target'])
- job = BuildJob.BuildJob(item['uid'], item['username'], item['package'],
- item['cvs_tag'], item['target'], self, self.hostname)
- self.building_jobs.append(job)
- job.start()
+ try:
+ self.curs.execute('SELECT uid, username, package, cvs_tag, target' \
+ ' FROM jobs WHERE status="waiting"')
+ except sqlite.OperationalError, e:
+ pass
+ else:
+ self.dbcx.commit()
+ item = self.curs.fetchone()
+ if item:
+ print "%s (%s): Starting tag '%s' on target '%s'" % (item['uid'], \
+ item['package'], item['cvs_tag'], item['target'])
+ repo = self.repos[item['target']]
+ job = BuildJob.BuildJob(item['uid'], item['username'], item['package'],
+ item['cvs_tag'], repo, self, self.hostname)
+ self.building_jobs.append(job)
+ job.start()
time.sleep(5)
Index: client_manager.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/client_manager.py,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- client_manager.py 20 Jun 2005 16:20:49 -0000 1.19
+++ client_manager.py 24 Jun 2005 10:55:15 -0000 1.20
@@ -250,7 +250,7 @@
except SSL.SSLError, e:
if CommonErrors.canIgnoreSSLError(e):
self._unavail_count = self._unavail_count + 1
- except ProtocolError, e:
+ except xmlrpclib.ProtocolError, e:
self._unavail_count = self._unavail_count + 1
else:
self._unavail_count = 0
More information about the scm-commits
mailing list