New version of mock working (I think)

Michael_E_Brown at Dell.com Michael_E_Brown at Dell.com
Mon Jun 26 21:46:37 UTC 2006


 

> -----Original Message-----
> From: fedora-buildsys-list-bounces at redhat.com 
> [mailto:fedora-buildsys-list-bounces at redhat.com] On Behalf Of 
> Clark Williams
> Sent: Monday, June 26, 2006 4:22 PM
> To: Discussion of Fedora build system
> Subject: Re: New version of mock working (I think)

> 
> If we presuppose that mock will make XML-RPC's to a URL 
> supplied by the build system to indicate status changes, 
> would it make sense to send the complete list of status's to 
> the build system before we start? In other words, when we 
> crank up, make an initial call to the status URL with "Here 
> is the list of status values you can receive", maybe as a 
> list of strings or a hash with descriptive text.

All good ideas. That was sort of an implicit placeholder in the
server.begin_mock_status(...) API. We can munge that call to do whatever
pre-processing that Dan would like to see implemented. I'm sort of a
"implement what we are going to actually use _now_" kind of guy, so I
like to build the API to be minimal but expandable. Something like
python named args we can add later if plague/brew request them.

> This would give the build system a mechanism to quickly 
> detect when it and mock are out-of-sync with respect to state 
> changes (i.e.
> brew/plague could receive the state list and abort if it sees 
> a state change it doesn't understand). Of course it can do 
> that anyway, but that might be a long while into a glibc 
> build before the build system sees an unknown state, as 
> opposed to 3 seconds into startup.

We probably also want to include our API version expectations in the
initial call. Revised proposed API:

	server.begin_mock_status(api_ver=1, srpm="my.src.rpm",
pid=MY_PID)
	server.set_mock_status(srpm="my.src.rpm", status_str="status",
pid=MY_PID)
	server.end_mock_status(srpm="my.src.rpm", return_code=retcode,
pid=MY_PID)

With Clark's suggestion, begin would look like this:
	server.begin_mock_status(api_ver=1, srpm="my.src.rpm",
pid=MY_PID, expected_status_codes=[codes,...])

--
Michael




More information about the Fedora-buildsys-list mailing list