Soyuz/Specs/BuilddManagerUploadDecoupling

Not logged in - Log In / Register

Overview

Overall Summary

Summary: When processing completed uploads, the buildd manager puts the binary package in the upload queue. calls process-upload.py (using Popen) and then does post-upload processing that sets on the build: the buildlog, the builder used, its dependencies, date built and build duration. It also post-processes upload failures and sets the upload log.

The processing should take place entirely in the upload processor so that the buildd-manager can throw the binary package in the queue and forget about it, this reducing the latency when scanning the build farm.

Goal/Deliverables: The initial deliverable will allow the buildd-manager to not have to run process-upload itself.

Release Note

Rationale

Use cases

Assumptions

User Interface

High-level implementation points

lib/lp/buildmaster/buildergroup.py has a method buildStatus_OK() that's called when the build finishes OK. It is responsible for calling Popen() on process-upload.py and then calls storeBuildInfo() to update the build record. It also deals with upload failures by inspecting what process-upload did. (!)

We can refactor storeBuildInfo() into the build class itself. Other types of failures in the buildd-manager still need to use it so it can't be completely ripped out and put in process-upload.

Finally, process-upload should deal with the binary upload failures itself so the buildd-manager doesn't have to inspect what p-u did.

Implementation Plan

Code Changes

Schema Changes

None

Estimations

Migration

Include:

Unresolved issues


CategoryProposal CategoryTemplate

Soyuz/Specs/BuilddManagerUploadDecoupling (last edited 2009-10-22 17:02:20 by julian-edwards)