[python-bugzilla] Quickly getting the status of multiple tickets

Cole Robinson crobinso at redhat.com
Fri May 24 15:30:49 UTC 2013


On 05/24/2013 11:10 AM, Jason L Tibbitts III wrote:
> I maintain the code that spits out the review status reports at
> http://fedoraproject.org/PackageReviewStatus/
> 
> In order to generate these reports, I run a few queries to get the list
> of tickets in the Package Review component and process them a bit.  One
> thing I need to know is whether any tickets in the Blocked By field are
> still open, so I make a list of them and pass them to getbugssimple().
> Unfortunately with the new bugzilla instance currently running, doing
> this for just 500 tickets takes so long that everything aborts with
> proxy errors, so I have to split the list and make multiple queries.
> 
> Is there any better way to do this?  I know bugzilla needs to know this
> often, in order to strike through ticket dependencies which have been
> closed.  Is there any way to simply get the status of dependencies out
> of the result of a query without doing a separate lookup?
> 

You will still have the query them separately, but you can do it in such a way
that it should return minimal info and be much quicker. something like (untested):

bugs = bz.query(bz.build_query(bug_id=[list, of, 500, bug_ids, ...],
                               include_fields=["status"])

Will return a list of bug objects that are only filled with bug_id and status
values.

You could also do build_query(..., status=["NEW", "ASSIGNED", ...]) and it
will return only the bugs in those states, which will speed it up.

- Cole





More information about the python-bugzilla mailing list