plague on fc7 with sqlite, xmlrpc problems

Dan Williams dcbw at redhat.com
Mon Feb 26 12:39:01 UTC 2007


On Mon, 2007-02-26 at 12:06 +0100, Oliver Falk wrote:
> Hi Ken!
> 
> Am 2007-02-25 21:26, Ken MacLeod schrieb:
> [ ... ]
> > Here's what I've done so far:
> > 
> > 	* server/DBManager.py
> > 		- import sqlite3 as sqlite
> > 		- remove encoding="utf-8" from sqlite.connect

Why these?
 
> > 	* server/main.py
> > 	* server/BuildMaster.py
> > 		- sqlite hack: move dbm connection into BuildMaster so
> > 		it can create one for each thread.

sqlite sucks for threading, it's best to just setup a postgresql or
mysql server.

> > 	* common/XMLRPCServerProxy.py
> > 		- set self._use_datetime = 0
> 
> Why that?

Probably due to Python 2.5.

> > 	* common/AuthedXMLRPCServer.py
> > 		- pass allow_none=False and encoding=None to
> > 		SimpleXMLRPCServer.SimpleXMLRPCDispatcher's
> 
> Why that?
> 
> > 	* builder/Config.py
> > 	  server/Config.py
> > 		- change BaseConfig.BaseConfig.ConfigError to
> > 		BaseConfig.ConfigError
> 
> Yes. I already submitted a patch to Dan for this.

Hmm, I thought I'd committed that.  Will need to look again.

> > I have the builder and server on the same host, w/o SSL yet.  With the
> > 0.4.4.1 RPMs and some of the changes above the server was able to talk
> > to the builder but I ran into the sqlite problem and switched to CVS
> > at that point.
> 
> So you' running 0.5.0 now. The same as I do. Right?
> 
> > CVS has the new Active/Passive builders but the default port configs
> > don't appear to be correct for having the builder and server on the
> > same machine, but I can't match up the config sections and field names
> > in the server and builder configs to point them at each other
> > correctly.  At this point, the server's not seeing any builders.  I
> > tried running 'plague-client list' anyway and get an exception "local
> > variable 'curs' referenced before assignment" which I'm pretty sure is
> > caused by my sqlite thread hack.
> > 
> > What OS+versions should I use to get plague up and running most
> > quickly?
> 
> I have plg 0.5.0. mysql 4.1.20 running on ES4. But I also have an 
> instance running on FC6.
> 
> > Once I'm up and running in a known-working environment I'd have a
> > better idea of what changes are right for FC7 or RHEL4/5.
> 
> Example config:
> builder.cfg:
> ====================================
> [General]
> comm_type = active
> builder_user = plague-builder
> hostname = somehost.somecompany.com
> server = somehost.somecompany.com
> debug = True
> max_jobs = 3
> builder_cmd = /usr/bin/mock
> 
> [Directories]
> target_configs_dir = /etc/plague/builder/targets
> builder_work_dir = /tmp/builder_work
> 
> [SSL]
> use_ssl = False
> 
> [Active]
> xmlrpc_port = 8889
> fileserver_port= 8890
> 
> 
> 
> 
> server.cfg:
> ====================================
> [Database]
> engine = mysql
> 
> [Directories]
> repo_dir = /repodir
> mock_configs_dir = /etc/mock
> server_work_dir = /rpmbuild
> target_configs_dir = /etc/plague/server/targets
> tmpdir = /tmp
> 
> [Active Builders]
> xmlrpc_server_port = 8889
> file_server_port = 8890
> builder1 = 0 somehost2.somecompany.com
> builder2 = 50 somehost.somecompany.com
> 
> [General]
> traceback_server = no
> hostname = somehost.somecompany.com
> depsolve_jobs = no
> Debug = True
> allow_reenqueue = no
> 
> [SSL]
> server_key_and_cert = 
> /etc/plague/server/certs/server/server_key_and_cert.pem
> ca_cert = /etc/plague/server/certs/ca/my_ca_ca_cert.pem
> 
> [UI]
> log_url = http://somehost.somecompany.com/buildlogs/
> guest_allowed = no
> port = 8887
> use_ssl = yes
> client_ca_cert = /etc/plague/server/certs/ca/client_ca_ca_cert.pem
> 
> [mysql Engine]
> timeout = 3
> host = localhost
> user = root
> password =
> database = plague
> 
> [CVS]
> use_cvs = yes
> 
> [Builders]
> use_ssl = no
> 
> [Email]
> success_emails =
> email_from = buildsys at somecompany.com
> admin_emails = of at redhat.at
> 
> 
> 
> If you need help creating the ssl certificates or anything else, just 
> mail me. :-) And don't use sqlite as database backend; It often runs 
> into locking problems; That's why I switched to mysql. However, you do 
> need to create the tables in the mysql database first. I have the 
> statements ready if you need...

Yeah, using a real database is the way to go.

Dan





More information about the Fedora-buildsys-list mailing list