Diff for "Soyuz/Specs/BuilddManagerUploadDecoupling"

Not logged in - Log In / Register

Differences between revisions 1 and 2
Revision 1 as of 2009-10-22 16:50:42
Size: 1743
Comment:
Revision 2 as of 2009-10-22 17:02:20
Size: 2386
Comment:
Deletions are marked like this. Additions are marked like this.
Line 37: Line 37:
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.

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:

  • data migration, if any
  • redirects from old URLs to new ones, if any
  • how users will be pointed to the new way of doing things, if necessary. (If your change is big enough, consider using the rollout template.)

Unresolved issues


CategoryProposal CategoryTemplate

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