Merge lp:~wgrant/launchpad/flatten-bfj-3-query into lp:launchpad

Proposed by William Grant
Status: Merged
Approved by: William Grant
Approved revision: no longer in the source branch.
Merged at revision: 16472
Proposed branch: lp:~wgrant/launchpad/flatten-bfj-3-query
Merge into: lp:launchpad
Prerequisite: lp:~wgrant/launchpad/flatten-bfj-2.5-destroy-garbo
Diff against target: 1290 lines (+261/-339)
20 files modified
database/sampledata/current-dev.sql (+48/-48)
database/sampledata/current.sql (+48/-48)
lib/lp/buildmaster/interfaces/buildfarmjob.py (+2/-0)
lib/lp/buildmaster/interfaces/packagebuild.py (+0/-4)
lib/lp/buildmaster/model/buildfarmjob.py (+11/-17)
lib/lp/buildmaster/model/packagebuild.py (+4/-8)
lib/lp/code/model/sourcepackagerecipe.py (+44/-47)
lib/lp/code/model/sourcepackagerecipebuild.py (+5/-7)
lib/lp/registry/model/sourcepackage.py (+7/-7)
lib/lp/soyuz/doc/sourcepackagerelease.txt (+1/-3)
lib/lp/soyuz/interfaces/binarypackagebuild.py (+0/-4)
lib/lp/soyuz/model/archive.py (+27/-47)
lib/lp/soyuz/model/binarypackagebuild.py (+39/-46)
lib/lp/soyuz/model/buildpackagejob.py (+7/-13)
lib/lp/soyuz/model/distributionsourcepackagerelease.py (+1/-5)
lib/lp/soyuz/model/publishing.py (+5/-10)
lib/lp/soyuz/model/sourcepackagerelease.py (+6/-14)
lib/lp/soyuz/tests/test_archive.py (+3/-6)
lib/lp/translations/interfaces/translationtemplatesbuild.py (+1/-5)
lib/lp/translations/model/translationtemplatesbuild.py (+2/-0)
To merge this branch: bzr merge lp:~wgrant/launchpad/flatten-bfj-3-query
Reviewer Review Type Date Requested Status
Steve Kowalik (community) code Approve
Review via email: mp+146035@code.launchpad.net

This proposal supersedes a proposal from 2013-01-30.

Commit message

Switch most IBuildFarmJob properties and queries to read the new denormalised columns.

Description of the change

The build farm job schema is being reworked to improve performance. Columns from PackageBuild and BuildFarmJob are being merged into tables that previously delegated to them. The PackageBuild table will end up dying entirely, but BuildFarmJob will remain, a shadow of its former self, to answer questions about Archive:+builds and Builder:+history. Additionally, BinaryPackageBuild is growing new distribution, distroseries, sourcepackagename and is_distro_archive columns to make searches even faster.

This branch (which can only land once the garbo jobs have completed) changes the app to read values from the new denormed columns, while still writing to the old ones on PB/BFJ during the transition. Most queries involving BuildFarmJob or PackageBuild are now just over BPB/SPRB/TTB.

To post a comment you must log in.
Revision history for this message
Steve Kowalik (stevenk) wrote : Posted in a previous version of this proposal

799 + ).group_by(
800 + BinaryPackageBuild._new_status
801 + ).order_by(BinaryPackageBuild._new_status)

Perhaps this could be re-flowed?

1011 + find_spec = (BinaryPackageBuild,)

Why? Surely this can just be inlined into the .find() call.

review: Approve (code)
Revision history for this message
Steve Kowalik (stevenk) :
review: Approve (code)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'database/sampledata/current-dev.sql'
2--- database/sampledata/current-dev.sql 2013-01-17 11:57:53 +0000
3+++ database/sampledata/current-dev.sql 2013-02-04 04:13:23 +0000
4@@ -2464,30 +2464,30 @@
5
6 ALTER TABLE buildfarmjob DISABLE TRIGGER ALL;
7
8-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (2, 1, false, '2004-09-27 11:57:13', '2004-09-27 11:55:13', '2004-09-27 11:57:14', NULL, 1, 1, 1, 1, 0);
9-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (6, 1, false, '2006-12-01 00:00:00', '2006-12-01 00:00:00', '2006-12-01 00:00:01', NULL, 1, 2, 1, 1, 0);
10-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (7, 1, false, '2005-03-24 00:00:00', '2005-03-24 23:58:43', '2005-03-25 00:00:03', NULL, 1, 1, 1, 1, 0);
11-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (8, 1, false, '2005-09-30 00:00:00', NULL, NULL, NULL, NULL, 6, NULL, 1, 0);
12-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (9, 1, false, '2005-10-01 00:00:00', '2005-10-01 23:56:41', '2005-10-02 00:00:01', NULL, 1, 2, 1, 1, 0);
13-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (10, 1, false, '2006-01-27 00:00:00', NULL, NULL, NULL, NULL, 1, NULL, 1, 0);
14-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (11, 1, false, '2006-02-14 00:00:00', NULL, NULL, NULL, NULL, 0, NULL, 1, 0);
15-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (12, 1, false, '2006-02-28 00:00:00', '2006-02-27 23:53:59', '2006-02-28 00:00:01', NULL, 1, 3, 1, 1, 0);
16-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (13, 1, false, '2006-03-21 00:00:00', '2006-03-21 00:58:33', '2006-03-21 01:00:03', NULL, 1, 5, 1, 1, 0);
17-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (14, 1, false, '2006-03-22 00:00:00', '2006-03-21 00:58:32', '2006-03-21 01:00:02', NULL, 1, 5, 1, 1, 0);
18-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (15, 1, false, '2006-03-22 00:00:01', '2006-03-21 00:58:30', '2006-03-21 01:00:00', NULL, 1, 5, 1, 1, 0);
19-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (16, 1, false, '2005-03-24 00:00:01', '2005-03-24 23:58:42', '2005-03-25 00:00:02', NULL, 1, 1, 1, 1, 0);
20-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (18, 1, false, '2004-09-27 11:57:14', '2004-09-27 11:55:12', '2004-09-27 11:57:13', NULL, 1, 1, 1, 1, 0);
21-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (19, 1, false, '2005-03-24 00:00:02', '2005-03-24 23:58:41', '2005-03-25 00:00:01', NULL, 1, 1, 1, 1, 0);
22-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (21, 1, false, '2006-12-01 00:00:01', NULL, NULL, NULL, NULL, 2, NULL, 1, 0);
23-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (22, 1, false, '2007-04-20 00:00:00', '2007-04-19 23:58:41', '2007-04-20 00:00:01', NULL, 1, 7, 1, 1, 0);
24-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (23, 1, false, '2006-04-11 12:00:00', NULL, NULL, NULL, NULL, 1, NULL, 1, 0);
25-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (24, 1, true, '2007-05-30 00:00:00', '2007-05-29 23:58:41', '2007-05-30 00:00:01', NULL, 1, 2, 1, 1, 0);
26-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (25, 1, true, '2007-07-08 12:00:00', NULL, NULL, NULL, NULL, 1, NULL, 1, 0);
27-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (26, 1, true, '2007-07-08 00:00:00', '2007-07-07 23:58:41', '2007-07-08 00:00:01', NULL, 1, 2, 1, 1, 0);
28-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (27, 1, true, '2007-07-24 00:00:00', '2007-07-23 23:58:41', '2007-07-24 00:00:01', NULL, 1, 1, 1, 1, 0);
29-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (28, 3, true, '2007-08-10 00:00:00', '2007-08-10 00:00:00', '2007-08-10 00:00:13', NULL, 1, 1, 1, 1, 0);
30-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (29, 1, false, '2007-08-09 21:54:18.553132', '2007-08-09 23:49:59', '2007-08-09 23:59:59', NULL, NULL, 1, NULL, 1, 0);
31-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (30, 3, false, '2007-08-10 00:00:01', '2007-08-10 00:00:01', '2007-08-10 00:00:14', NULL, 1, 1, 1, 1, 0);
32+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (2, 1, false, '2004-09-27 11:57:13', '2004-09-27 11:55:13', '2004-09-27 11:57:14', NULL, 1, 1, 1, 1, 0, 1);
33+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (6, 1, false, '2006-12-01 00:00:00', '2006-12-01 00:00:00', '2006-12-01 00:00:01', NULL, 1, 2, 1, 1, 0, 1);
34+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (7, 1, false, '2005-03-24 00:00:00', '2005-03-24 23:58:43', '2005-03-25 00:00:03', NULL, 1, 1, 1, 1, 0, 1);
35+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (8, 1, false, '2005-09-30 00:00:00', NULL, NULL, NULL, NULL, 6, NULL, 1, 0, 1);
36+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (9, 1, false, '2005-10-01 00:00:00', '2005-10-01 23:56:41', '2005-10-02 00:00:01', NULL, 1, 2, 1, 1, 0, 1);
37+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (10, 1, false, '2006-01-27 00:00:00', NULL, NULL, NULL, NULL, 1, NULL, 1, 0, 1);
38+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (11, 1, false, '2006-02-14 00:00:00', NULL, NULL, NULL, NULL, 0, NULL, 1, 0, 1);
39+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (12, 1, false, '2006-02-28 00:00:00', '2006-02-27 23:53:59', '2006-02-28 00:00:01', NULL, 1, 3, 1, 1, 0, 1);
40+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (13, 1, false, '2006-03-21 00:00:00', '2006-03-21 00:58:33', '2006-03-21 01:00:03', NULL, 1, 5, 1, 1, 0, 1);
41+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (14, 1, false, '2006-03-22 00:00:00', '2006-03-21 00:58:32', '2006-03-21 01:00:02', NULL, 1, 5, 1, 1, 0, 1);
42+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (15, 1, false, '2006-03-22 00:00:01', '2006-03-21 00:58:30', '2006-03-21 01:00:00', NULL, 1, 5, 1, 1, 0, 1);
43+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (16, 1, false, '2005-03-24 00:00:01', '2005-03-24 23:58:42', '2005-03-25 00:00:02', NULL, 1, 1, 1, 1, 0, 1);
44+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (18, 1, false, '2004-09-27 11:57:14', '2004-09-27 11:55:12', '2004-09-27 11:57:13', NULL, 1, 1, 1, 1, 0, 1);
45+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (19, 1, false, '2005-03-24 00:00:02', '2005-03-24 23:58:41', '2005-03-25 00:00:01', NULL, 1, 1, 1, 1, 0, 1);
46+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (21, 1, false, '2006-12-01 00:00:01', NULL, NULL, NULL, NULL, 2, NULL, 1, 0, 1);
47+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (22, 1, false, '2007-04-20 00:00:00', '2007-04-19 23:58:41', '2007-04-20 00:00:01', NULL, 1, 7, 1, 1, 0, 1);
48+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (23, 1, false, '2006-04-11 12:00:00', NULL, NULL, NULL, NULL, 1, NULL, 1, 0, 1);
49+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (24, 1, true, '2007-05-30 00:00:00', '2007-05-29 23:58:41', '2007-05-30 00:00:01', NULL, 1, 2, 1, 1, 0, 11);
50+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (25, 1, true, '2007-07-08 12:00:00', NULL, NULL, NULL, NULL, 1, NULL, 1, 0, 9);
51+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (26, 1, true, '2007-07-08 00:00:00', '2007-07-07 23:58:41', '2007-07-08 00:00:01', NULL, 1, 2, 1, 1, 0, 9);
52+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (27, 1, true, '2007-07-24 00:00:00', '2007-07-23 23:58:41', '2007-07-24 00:00:01', NULL, 1, 1, 1, 1, 0, 9);
53+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (28, 3, true, '2007-08-10 00:00:00', '2007-08-10 00:00:00', '2007-08-10 00:00:13', NULL, 1, 1, 1, 1, 0, 9);
54+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (29, 1, false, '2007-08-09 21:54:18.553132', '2007-08-09 23:49:59', '2007-08-09 23:59:59', NULL, NULL, 1, NULL, 1, 0, 12);
55+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (30, 3, false, '2007-08-10 00:00:01', '2007-08-10 00:00:01', '2007-08-10 00:00:14', NULL, 1, 1, 1, 1, 0, 1);
56
57
58 ALTER TABLE buildfarmjob ENABLE TRIGGER ALL;
59@@ -2719,30 +2719,30 @@
60
61 ALTER TABLE binarypackagebuild DISABLE TRIGGER ALL;
62
63-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (2, 1, 1, 14);
64-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (6, 2, 1, 32);
65-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (7, 3, 6, 20);
66-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (8, 4, 6, 14);
67-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (9, 5, 1, 20);
68-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (10, 6, 1, 26);
69-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (11, 7, 6, 25);
70-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (12, 8, 6, 27);
71-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (13, 9, 1, 17);
72-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (14, 10, 1, 28);
73-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (15, 11, 1, 29);
74-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (16, 12, 11, 20);
75-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (18, 13, 8, 14);
76-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (19, 14, 8, 20);
77-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (21, 15, 1, 33);
78-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (22, 16, 8, 33);
79-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (23, 17, 1, 35);
80-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (24, 18, 1, 33);
81-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (25, 19, 1, 35);
82-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (26, 20, 8, 33);
83-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (27, 21, 1, 20);
84-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (28, 22, 12, 14);
85-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (29, 23, 8, 36);
86-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (30, 24, 12, 14);
87+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (2, 1, 1, 14, 1, 0, 1, false, '2004-09-27 11:57:13', '2004-09-27 11:55:13', '2004-09-27 11:57:14', NULL, 1, 1, 1, NULL, NULL, 0, 2, 1, 1, true, 1);
88+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (6, 2, 1, 32, 1, 0, 1, false, '2006-12-01 00:00:00', '2006-12-01 00:00:00', '2006-12-01 00:00:01', NULL, 1, 2, 1, NULL, NULL, 0, 6, 1, 1, true, 23);
89+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (7, 3, 6, 20, 1, 0, 1, false, '2005-03-24 00:00:00', '2005-03-24 23:58:43', '2005-03-25 00:00:03', NULL, 1, 1, 1, NULL, NULL, 0, 7, 1, 3, true, 14);
90+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (8, 4, 6, 14, 1, 0, 1, false, '2005-09-30 00:00:00', NULL, NULL, NULL, NULL, 6, NULL, NULL, NULL, 0, 8, 1, 3, true, 1);
91+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (9, 5, 1, 20, 1, 0, 1, false, '2005-10-01 00:00:00', '2005-10-01 23:56:41', '2005-10-02 00:00:01', NULL, 1, 2, 1, NULL, NULL, 0, 9, 1, 1, true, 14);
92+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (10, 6, 1, 26, 1, 0, 1, false, '2006-01-27 00:00:00', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 0, 10, 1, 1, true, 20);
93+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (11, 7, 6, 25, 1, 0, 1, false, '2006-02-14 00:00:00', NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 0, 11, 1, 3, true, 19);
94+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (12, 8, 6, 27, 1, 0, 1, false, '2006-02-28 00:00:00', '2006-02-27 23:53:59', '2006-02-28 00:00:01', NULL, 1, 3, 1, NULL, 'cpp (>= 4:4.0.1-3), gcc-4.0 (>= 4.0.1-2)', 0, 12, 1, 3, true, 21);
95+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (13, 9, 1, 17, 1, 0, 1, false, '2006-03-21 00:00:00', '2006-03-21 00:58:33', '2006-03-21 01:00:03', NULL, 1, 5, 1, NULL, NULL, 0, 13, 1, 1, true, 10);
96+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (14, 10, 1, 28, 1, 0, 1, false, '2006-03-22 00:00:00', '2006-03-21 00:58:32', '2006-03-21 01:00:02', NULL, 1, 5, 1, NULL, NULL, 0, 14, 1, 1, true, 22);
97+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (15, 11, 1, 29, 1, 0, 1, false, '2006-03-22 00:00:01', '2006-03-21 00:58:30', '2006-03-21 01:00:00', NULL, 1, 5, 1, NULL, NULL, 0, 15, 1, 1, true, 17);
98+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (16, 12, 11, 20, 1, 0, 1, false, '2005-03-24 00:00:01', '2005-03-24 23:58:42', '2005-03-25 00:00:02', NULL, 1, 1, 1, NULL, NULL, 0, 16, 1, 3, true, 14);
99+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (18, 13, 8, 14, 1, 0, 1, false, '2004-09-27 11:57:14', '2004-09-27 11:55:12', '2004-09-27 11:57:13', NULL, 1, 1, 1, NULL, NULL, 0, 18, 1, 10, true, 1);
100+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (19, 14, 8, 20, 1, 0, 1, false, '2005-03-24 00:00:02', '2005-03-24 23:58:41', '2005-03-25 00:00:01', NULL, 1, 1, 1, NULL, NULL, 0, 19, 1, 10, true, 14);
101+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (21, 15, 1, 33, 1, 0, 1, false, '2006-12-01 00:00:01', NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, 0, 21, 1, 1, true, 24);
102+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (22, 16, 8, 33, 1, 0, 1, false, '2007-04-20 00:00:00', '2007-04-19 23:58:41', '2007-04-20 00:00:01', NULL, 1, 7, 1, 91, NULL, 0, 22, 1, 10, true, 24);
103+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (23, 17, 1, 35, 1, 0, 1, false, '2006-04-11 12:00:00', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 0, 23, 1, 1, true, 26);
104+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (24, 18, 1, 33, 11, 0, 1, true, '2007-05-30 00:00:00', '2007-05-29 23:58:41', '2007-05-30 00:00:01', NULL, 1, 2, 1, NULL, NULL, 0, 24, 1, 1, false, 24);
105+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (25, 19, 1, 35, 9, 0, 1, true, '2007-07-08 12:00:00', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 0, 25, 1, 1, false, 26);
106+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (26, 20, 8, 33, 9, 0, 1, true, '2007-07-08 00:00:00', '2007-07-07 23:58:41', '2007-07-08 00:00:01', NULL, 1, 2, 1, NULL, NULL, 0, 26, 1, 10, false, 24);
107+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (27, 21, 1, 20, 9, 0, 1, true, '2007-07-24 00:00:00', '2007-07-23 23:58:41', '2007-07-24 00:00:01', NULL, 1, 1, 1, NULL, NULL, 0, 27, 1, 1, false, 14);
108+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (28, 22, 12, 14, 9, 0, 3, true, '2007-08-10 00:00:00', '2007-08-10 00:00:00', '2007-08-10 00:00:13', NULL, 1, 1, 1, NULL, NULL, 0, 28, 1, 1, false, 1);
109+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (29, 23, 8, 36, 12, 0, 1, false, '2007-08-09 21:54:18.553132', '2007-08-09 23:49:59', '2007-08-09 23:59:59', NULL, NULL, 1, NULL, NULL, NULL, 0, 29, 1, 10, true, 27);
110+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (30, 24, 12, 14, 1, 0, 3, false, '2007-08-10 00:00:01', '2007-08-10 00:00:01', '2007-08-10 00:00:14', NULL, 1, 1, 1, NULL, NULL, 0, 30, 1, 1, true, 1);
111
112
113 ALTER TABLE binarypackagebuild ENABLE TRIGGER ALL;
114
115=== modified file 'database/sampledata/current.sql'
116--- database/sampledata/current.sql 2013-01-17 11:57:53 +0000
117+++ database/sampledata/current.sql 2013-02-04 04:13:23 +0000
118@@ -2459,30 +2459,30 @@
119
120 ALTER TABLE buildfarmjob DISABLE TRIGGER ALL;
121
122-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (2, 1, false, '2004-09-27 11:57:13', '2004-09-27 11:55:13', '2004-09-27 11:57:14', NULL, 1, 1, 1, 1, 0);
123-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (6, 1, false, '2006-12-01 00:00:00', '2006-12-01 00:00:00', '2006-12-01 00:00:01', NULL, 1, 2, 1, 1, 0);
124-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (7, 1, false, '2005-03-24 00:00:00', '2005-03-24 23:58:43', '2005-03-25 00:00:03', NULL, 1, 1, 1, 1, 0);
125-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (8, 1, false, '2005-09-30 00:00:00', NULL, NULL, NULL, NULL, 6, NULL, 1, 0);
126-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (9, 1, false, '2005-10-01 00:00:00', '2005-10-01 23:56:41', '2005-10-02 00:00:01', NULL, 1, 2, 1, 1, 0);
127-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (10, 1, false, '2006-01-27 00:00:00', NULL, NULL, NULL, NULL, 1, NULL, 1, 0);
128-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (11, 1, false, '2006-02-14 00:00:00', NULL, NULL, NULL, NULL, 0, NULL, 1, 0);
129-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (12, 1, false, '2006-02-28 00:00:00', '2006-02-27 23:53:59', '2006-02-28 00:00:01', NULL, 1, 3, 1, 1, 0);
130-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (13, 1, false, '2006-03-21 00:00:00', '2006-03-21 00:58:33', '2006-03-21 01:00:03', NULL, 1, 5, 1, 1, 0);
131-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (14, 1, false, '2006-03-22 00:00:00', '2006-03-21 00:58:32', '2006-03-21 01:00:02', NULL, 1, 5, 1, 1, 0);
132-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (15, 1, false, '2006-03-22 00:00:01', '2006-03-21 00:58:30', '2006-03-21 01:00:00', NULL, 1, 5, 1, 1, 0);
133-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (16, 1, false, '2005-03-24 00:00:01', '2005-03-24 23:58:42', '2005-03-25 00:00:02', NULL, 1, 1, 1, 1, 0);
134-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (18, 1, false, '2004-09-27 11:57:14', '2004-09-27 11:55:12', '2004-09-27 11:57:13', NULL, 1, 1, 1, 1, 0);
135-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (19, 1, false, '2005-03-24 00:00:02', '2005-03-24 23:58:41', '2005-03-25 00:00:01', NULL, 1, 1, 1, 1, 0);
136-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (21, 1, false, '2006-12-01 00:00:01', NULL, NULL, NULL, NULL, 2, NULL, 1, 0);
137-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (22, 1, false, '2007-04-20 00:00:00', '2007-04-19 23:58:41', '2007-04-20 00:00:01', NULL, 1, 7, 1, 1, 0);
138-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (23, 1, false, '2006-04-11 12:00:00', NULL, NULL, NULL, NULL, 1, NULL, 1, 0);
139-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (24, 1, true, '2007-05-30 00:00:00', '2007-05-29 23:58:41', '2007-05-30 00:00:01', NULL, 1, 2, 1, 1, 0);
140-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (25, 1, true, '2007-07-08 12:00:00', NULL, NULL, NULL, NULL, 1, NULL, 1, 0);
141-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (26, 1, true, '2007-07-08 00:00:00', '2007-07-07 23:58:41', '2007-07-08 00:00:01', NULL, 1, 2, 1, 1, 0);
142-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (27, 1, true, '2007-07-24 00:00:00', '2007-07-23 23:58:41', '2007-07-24 00:00:01', NULL, 1, 1, 1, 1, 0);
143-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (28, 3, true, '2007-08-10 00:00:00', '2007-08-10 00:00:00', '2007-08-10 00:00:13', NULL, 1, 1, 1, 1, 0);
144-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (29, 1, false, '2007-08-09 21:54:18.553132', '2007-08-09 23:49:59', '2007-08-09 23:59:59', NULL, NULL, 1, NULL, 1, 0);
145-INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count) VALUES (30, 3, false, '2007-08-10 00:00:01', '2007-08-10 00:00:01', '2007-08-10 00:00:14', NULL, 1, 1, 1, 1, 0);
146+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (2, 1, false, '2004-09-27 11:57:13', '2004-09-27 11:55:13', '2004-09-27 11:57:14', NULL, 1, 1, 1, 1, 0, 1);
147+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (6, 1, false, '2006-12-01 00:00:00', '2006-12-01 00:00:00', '2006-12-01 00:00:01', NULL, 1, 2, 1, 1, 0, 1);
148+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (7, 1, false, '2005-03-24 00:00:00', '2005-03-24 23:58:43', '2005-03-25 00:00:03', NULL, 1, 1, 1, 1, 0, 1);
149+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (8, 1, false, '2005-09-30 00:00:00', NULL, NULL, NULL, NULL, 6, NULL, 1, 0, 1);
150+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (9, 1, false, '2005-10-01 00:00:00', '2005-10-01 23:56:41', '2005-10-02 00:00:01', NULL, 1, 2, 1, 1, 0, 1);
151+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (10, 1, false, '2006-01-27 00:00:00', NULL, NULL, NULL, NULL, 1, NULL, 1, 0, 1);
152+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (11, 1, false, '2006-02-14 00:00:00', NULL, NULL, NULL, NULL, 0, NULL, 1, 0, 1);
153+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (12, 1, false, '2006-02-28 00:00:00', '2006-02-27 23:53:59', '2006-02-28 00:00:01', NULL, 1, 3, 1, 1, 0, 1);
154+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (13, 1, false, '2006-03-21 00:00:00', '2006-03-21 00:58:33', '2006-03-21 01:00:03', NULL, 1, 5, 1, 1, 0, 1);
155+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (14, 1, false, '2006-03-22 00:00:00', '2006-03-21 00:58:32', '2006-03-21 01:00:02', NULL, 1, 5, 1, 1, 0, 1);
156+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (15, 1, false, '2006-03-22 00:00:01', '2006-03-21 00:58:30', '2006-03-21 01:00:00', NULL, 1, 5, 1, 1, 0, 1);
157+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (16, 1, false, '2005-03-24 00:00:01', '2005-03-24 23:58:42', '2005-03-25 00:00:02', NULL, 1, 1, 1, 1, 0, 1);
158+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (18, 1, false, '2004-09-27 11:57:14', '2004-09-27 11:55:12', '2004-09-27 11:57:13', NULL, 1, 1, 1, 1, 0, 1);
159+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (19, 1, false, '2005-03-24 00:00:02', '2005-03-24 23:58:41', '2005-03-25 00:00:01', NULL, 1, 1, 1, 1, 0, 1);
160+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (21, 1, false, '2006-12-01 00:00:01', NULL, NULL, NULL, NULL, 2, NULL, 1, 0, 1);
161+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (22, 1, false, '2007-04-20 00:00:00', '2007-04-19 23:58:41', '2007-04-20 00:00:01', NULL, 1, 7, 1, 1, 0, 1);
162+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (23, 1, false, '2006-04-11 12:00:00', NULL, NULL, NULL, NULL, 1, NULL, 1, 0, 1);
163+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (24, 1, true, '2007-05-30 00:00:00', '2007-05-29 23:58:41', '2007-05-30 00:00:01', NULL, 1, 2, 1, 1, 0, 11);
164+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (25, 1, true, '2007-07-08 12:00:00', NULL, NULL, NULL, NULL, 1, NULL, 1, 0, 9);
165+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (26, 1, true, '2007-07-08 00:00:00', '2007-07-07 23:58:41', '2007-07-08 00:00:01', NULL, 1, 2, 1, 1, 0, 9);
166+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (27, 1, true, '2007-07-24 00:00:00', '2007-07-23 23:58:41', '2007-07-24 00:00:01', NULL, 1, 1, 1, 1, 0, 9);
167+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (28, 3, true, '2007-08-10 00:00:00', '2007-08-10 00:00:00', '2007-08-10 00:00:13', NULL, 1, 1, 1, 1, 0, 9);
168+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (29, 1, false, '2007-08-09 21:54:18.553132', '2007-08-09 23:49:59', '2007-08-09 23:59:59', NULL, NULL, 1, NULL, 1, 0, 12);
169+INSERT INTO buildfarmjob (id, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, job_type, failure_count, archive) VALUES (30, 3, false, '2007-08-10 00:00:01', '2007-08-10 00:00:01', '2007-08-10 00:00:14', NULL, 1, 1, 1, 1, 0, 1);
170
171
172 ALTER TABLE buildfarmjob ENABLE TRIGGER ALL;
173@@ -2656,30 +2656,30 @@
174
175 ALTER TABLE binarypackagebuild DISABLE TRIGGER ALL;
176
177-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (2, 1, 1, 14);
178-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (6, 2, 1, 32);
179-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (7, 3, 6, 20);
180-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (8, 4, 6, 14);
181-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (9, 5, 1, 20);
182-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (10, 6, 1, 26);
183-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (11, 7, 6, 25);
184-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (12, 8, 6, 27);
185-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (13, 9, 1, 17);
186-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (14, 10, 1, 28);
187-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (15, 11, 1, 29);
188-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (16, 12, 11, 20);
189-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (18, 13, 8, 14);
190-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (19, 14, 8, 20);
191-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (21, 15, 1, 33);
192-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (22, 16, 8, 33);
193-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (23, 17, 1, 35);
194-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (24, 18, 1, 33);
195-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (25, 19, 1, 35);
196-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (26, 20, 8, 33);
197-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (27, 21, 1, 20);
198-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (28, 22, 12, 14);
199-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (29, 23, 8, 36);
200-INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release) VALUES (30, 24, 12, 14);
201+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (2, 1, 1, 14, 1, 0, 1, false, '2004-09-27 11:57:13', '2004-09-27 11:55:13', '2004-09-27 11:57:14', NULL, 1, 1, 1, NULL, NULL, 0, 2, 1, 1, true, 1);
202+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (6, 2, 1, 32, 1, 0, 1, false, '2006-12-01 00:00:00', '2006-12-01 00:00:00', '2006-12-01 00:00:01', NULL, 1, 2, 1, NULL, NULL, 0, 6, 1, 1, true, 23);
203+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (7, 3, 6, 20, 1, 0, 1, false, '2005-03-24 00:00:00', '2005-03-24 23:58:43', '2005-03-25 00:00:03', NULL, 1, 1, 1, NULL, NULL, 0, 7, 1, 3, true, 14);
204+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (8, 4, 6, 14, 1, 0, 1, false, '2005-09-30 00:00:00', NULL, NULL, NULL, NULL, 6, NULL, NULL, NULL, 0, 8, 1, 3, true, 1);
205+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (9, 5, 1, 20, 1, 0, 1, false, '2005-10-01 00:00:00', '2005-10-01 23:56:41', '2005-10-02 00:00:01', NULL, 1, 2, 1, NULL, NULL, 0, 9, 1, 1, true, 14);
206+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (10, 6, 1, 26, 1, 0, 1, false, '2006-01-27 00:00:00', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 0, 10, 1, 1, true, 20);
207+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (11, 7, 6, 25, 1, 0, 1, false, '2006-02-14 00:00:00', NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 0, 11, 1, 3, true, 19);
208+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (12, 8, 6, 27, 1, 0, 1, false, '2006-02-28 00:00:00', '2006-02-27 23:53:59', '2006-02-28 00:00:01', NULL, 1, 3, 1, NULL, 'cpp (>= 4:4.0.1-3), gcc-4.0 (>= 4.0.1-2)', 0, 12, 1, 3, true, 21);
209+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (13, 9, 1, 17, 1, 0, 1, false, '2006-03-21 00:00:00', '2006-03-21 00:58:33', '2006-03-21 01:00:03', NULL, 1, 5, 1, NULL, NULL, 0, 13, 1, 1, true, 10);
210+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (14, 10, 1, 28, 1, 0, 1, false, '2006-03-22 00:00:00', '2006-03-21 00:58:32', '2006-03-21 01:00:02', NULL, 1, 5, 1, NULL, NULL, 0, 14, 1, 1, true, 22);
211+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (15, 11, 1, 29, 1, 0, 1, false, '2006-03-22 00:00:01', '2006-03-21 00:58:30', '2006-03-21 01:00:00', NULL, 1, 5, 1, NULL, NULL, 0, 15, 1, 1, true, 17);
212+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (16, 12, 11, 20, 1, 0, 1, false, '2005-03-24 00:00:01', '2005-03-24 23:58:42', '2005-03-25 00:00:02', NULL, 1, 1, 1, NULL, NULL, 0, 16, 1, 3, true, 14);
213+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (18, 13, 8, 14, 1, 0, 1, false, '2004-09-27 11:57:14', '2004-09-27 11:55:12', '2004-09-27 11:57:13', NULL, 1, 1, 1, NULL, NULL, 0, 18, 1, 10, true, 1);
214+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (19, 14, 8, 20, 1, 0, 1, false, '2005-03-24 00:00:02', '2005-03-24 23:58:41', '2005-03-25 00:00:01', NULL, 1, 1, 1, NULL, NULL, 0, 19, 1, 10, true, 14);
215+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (21, 15, 1, 33, 1, 0, 1, false, '2006-12-01 00:00:01', NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, 0, 21, 1, 1, true, 24);
216+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (22, 16, 8, 33, 1, 0, 1, false, '2007-04-20 00:00:00', '2007-04-19 23:58:41', '2007-04-20 00:00:01', NULL, 1, 7, 1, 91, NULL, 0, 22, 1, 10, true, 24);
217+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (23, 17, 1, 35, 1, 0, 1, false, '2006-04-11 12:00:00', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 0, 23, 1, 1, true, 26);
218+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (24, 18, 1, 33, 11, 0, 1, true, '2007-05-30 00:00:00', '2007-05-29 23:58:41', '2007-05-30 00:00:01', NULL, 1, 2, 1, NULL, NULL, 0, 24, 1, 1, false, 24);
219+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (25, 19, 1, 35, 9, 0, 1, true, '2007-07-08 12:00:00', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 0, 25, 1, 1, false, 26);
220+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (26, 20, 8, 33, 9, 0, 1, true, '2007-07-08 00:00:00', '2007-07-07 23:58:41', '2007-07-08 00:00:01', NULL, 1, 2, 1, NULL, NULL, 0, 26, 1, 10, false, 24);
221+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (27, 21, 1, 20, 9, 0, 1, true, '2007-07-24 00:00:00', '2007-07-23 23:58:41', '2007-07-24 00:00:01', NULL, 1, 1, 1, NULL, NULL, 0, 27, 1, 1, false, 14);
222+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (28, 22, 12, 14, 9, 0, 3, true, '2007-08-10 00:00:00', '2007-08-10 00:00:00', '2007-08-10 00:00:13', NULL, 1, 1, 1, NULL, NULL, 0, 28, 1, 1, false, 1);
223+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (29, 23, 8, 36, 12, 0, 1, false, '2007-08-09 21:54:18.553132', '2007-08-09 23:49:59', '2007-08-09 23:59:59', NULL, NULL, 1, NULL, NULL, NULL, 0, 29, 1, 10, true, 27);
224+INSERT INTO binarypackagebuild (id, package_build, distro_arch_series, source_package_release, archive, pocket, processor, virtualized, date_created, date_started, date_finished, date_first_dispatched, builder, status, log, upload_log, dependencies, failure_count, build_farm_job, distribution, distro_series, is_distro_archive, source_package_name) VALUES (30, 24, 12, 14, 1, 0, 3, false, '2007-08-10 00:00:01', '2007-08-10 00:00:01', '2007-08-10 00:00:14', NULL, 1, 1, 1, NULL, NULL, 0, 30, 1, 1, true, 1);
225
226
227 ALTER TABLE binarypackagebuild ENABLE TRIGGER ALL;
228
229=== modified file 'lib/lp/buildmaster/interfaces/buildfarmjob.py'
230--- lib/lp/buildmaster/interfaces/buildfarmjob.py 2013-01-22 08:31:09 +0000
231+++ lib/lp/buildmaster/interfaces/buildfarmjob.py 2013-02-04 04:13:23 +0000
232@@ -179,6 +179,8 @@
233
234 id = Attribute('The build farm job ID.')
235
236+ build_farm_job = Attribute('Generic build farm job record')
237+
238 processor = Reference(
239 IProcessor, title=_("Processor"), required=False, readonly=True,
240 description=_(
241
242=== modified file 'lib/lp/buildmaster/interfaces/packagebuild.py'
243--- lib/lp/buildmaster/interfaces/packagebuild.py 2013-01-31 06:59:39 +0000
244+++ lib/lp/buildmaster/interfaces/packagebuild.py 2013-02-04 04:13:23 +0000
245@@ -72,10 +72,6 @@
246 description=_("A URL for failed upload logs."
247 "Will be None if there was no failure.")))
248
249- build_farm_job = Reference(
250- title=_('Build farm job'), schema=IBuildFarmJob, required=True,
251- readonly=True, description=_('The base build farm job.'))
252-
253 current_component = Attribute(
254 'Component where the source related to this build was last '
255 'published.')
256
257=== modified file 'lib/lp/buildmaster/model/buildfarmjob.py'
258--- lib/lp/buildmaster/model/buildfarmjob.py 2013-02-03 03:30:07 +0000
259+++ lib/lp/buildmaster/model/buildfarmjob.py 2013-02-04 04:13:23 +0000
260@@ -199,8 +199,6 @@
261 archive_id = Int(name='archive')
262 archive = Reference(archive_id, 'Archive.id')
263
264- dependencies = None
265-
266 def __init__(self, job_type, status=BuildStatus.NEEDSBUILD,
267 processor=None, virtualized=None, date_created=None,
268 builder=None, archive=None):
269@@ -227,51 +225,47 @@
270
271 @property
272 def processor(self):
273- return self.build_farm_job.processor
274+ return self._new_processor
275
276 @property
277 def virtualized(self):
278- return self.build_farm_job.virtualized
279+ return self._new_virtualized
280
281 @property
282 def date_created(self):
283- return self.build_farm_job.date_created
284+ return self._new_date_created
285
286 @property
287 def date_started(self):
288- return self.build_farm_job.date_started
289+ return self._new_date_started
290
291 @property
292 def date_finished(self):
293- return self.build_farm_job.date_finished
294+ return self._new_date_finished
295
296 @property
297 def date_first_dispatched(self):
298- return self.build_farm_job.date_first_dispatched
299+ return self._new_date_first_dispatched
300
301 @property
302 def builder(self):
303- return self.build_farm_job.builder
304+ return self._new_builder
305
306 @property
307 def status(self):
308- return self.build_farm_job.status
309+ return self._new_status
310
311 @property
312 def log(self):
313- return self.build_farm_job.log
314-
315- @property
316- def job_type(self):
317- return self.build_farm_job.job_type
318+ return self._new_log
319
320 @property
321 def failure_count(self):
322- return self.build_farm_job.failure_count
323+ return self._new_failure_count
324
325 @property
326 def dependencies(self):
327- return self.build_farm_job.dependencies
328+ return None
329
330 @property
331 def title(self):
332
333=== modified file 'lib/lp/buildmaster/model/packagebuild.py'
334--- lib/lp/buildmaster/model/packagebuild.py 2013-01-31 06:58:23 +0000
335+++ lib/lp/buildmaster/model/packagebuild.py 2013-02-04 04:13:23 +0000
336@@ -110,24 +110,20 @@
337 class PackageBuildMixin(BuildFarmJobMixin):
338
339 @property
340- def build_farm_job(self):
341- return self.package_build.build_farm_job
342-
343- @property
344 def archive(self):
345- return self.package_build.archive
346+ return self._new_archive
347
348 @property
349 def pocket(self):
350- return self.package_build.pocket
351+ return self._new_pocket
352
353 @property
354 def upload_log(self):
355- return self.package_build.upload_log
356+ return self._new_upload_log
357
358 @property
359 def dependencies(self):
360- return self.package_build.dependencies
361+ return self._new_dependencies
362
363 @property
364 def current_component(self):
365
366=== modified file 'lib/lp/code/model/sourcepackagerecipe.py'
367--- lib/lp/code/model/sourcepackagerecipe.py 2012-09-05 05:08:26 +0000
368+++ lib/lp/code/model/sourcepackagerecipe.py 2013-02-04 04:13:23 +0000
369@@ -17,8 +17,7 @@
370 from pytz import utc
371 from storm.expr import (
372 And,
373- Join,
374- RightJoin,
375+ LeftJoin,
376 )
377 from storm.locals import (
378 Bool,
379@@ -37,8 +36,6 @@
380 )
381
382 from lp.buildmaster.enums import BuildStatus
383-from lp.buildmaster.model.buildfarmjob import BuildFarmJob
384-from lp.buildmaster.model.packagebuild import PackageBuild
385 from lp.code.errors import (
386 BuildAlreadyPending,
387 BuildNotAllowedForDistro,
388@@ -215,24 +212,25 @@
389 store.add(sprecipe)
390 return sprecipe
391
392- @classmethod
393- def findStaleDailyBuilds(cls):
394+ @staticmethod
395+ def findStaleDailyBuilds():
396 one_day_ago = datetime.now(utc) - timedelta(hours=23, minutes=50)
397- joins = RightJoin(
398- Join(
399- Join(SourcePackageRecipeBuild, PackageBuild,
400- PackageBuild.id ==
401- SourcePackageRecipeBuild.package_build_id),
402- BuildFarmJob,
403- And(BuildFarmJob.id == PackageBuild.build_farm_job_id,
404- BuildFarmJob.date_created > one_day_ago)),
405- SourcePackageRecipe,
406- And(SourcePackageRecipeBuild.recipe == SourcePackageRecipe.id,
407- SourcePackageRecipe.daily_build_archive_id ==
408- PackageBuild.archive_id))
409- return IStore(cls).using(joins).find(
410- cls, cls.is_stale == True, cls.build_daily == True,
411- BuildFarmJob.date_created == None).config(distinct=True)
412+ joins = (
413+ SourcePackageRecipe,
414+ LeftJoin(
415+ SourcePackageRecipeBuild,
416+ And(SourcePackageRecipeBuild.recipe_id ==
417+ SourcePackageRecipe.id,
418+ SourcePackageRecipeBuild._new_archive_id ==
419+ SourcePackageRecipe.daily_build_archive_id,
420+ SourcePackageRecipeBuild._new_date_created > one_day_ago)),
421+ )
422+ return IStore(SourcePackageRecipe).using(*joins).find(
423+ SourcePackageRecipe,
424+ SourcePackageRecipe.is_stale == True,
425+ SourcePackageRecipe.build_daily == True,
426+ SourcePackageRecipeBuild._new_date_created == None,
427+ ).config(distinct=True)
428
429 @staticmethod
430 def exists(owner, name):
431@@ -288,10 +286,8 @@
432 pending = IStore(self).find(SourcePackageRecipeBuild,
433 SourcePackageRecipeBuild.recipe_id == self.id,
434 SourcePackageRecipeBuild.distroseries_id == distroseries.id,
435- PackageBuild.archive_id == archive.id,
436- PackageBuild.id == SourcePackageRecipeBuild.package_build_id,
437- BuildFarmJob.id == PackageBuild.build_farm_job_id,
438- BuildFarmJob.status == BuildStatus.NEEDSBUILD)
439+ SourcePackageRecipeBuild._new_archive_id == archive.id,
440+ SourcePackageRecipeBuild._new_status == BuildStatus.NEEDSBUILD)
441 if pending.any() is not None:
442 raise BuildAlreadyPending(self, distroseries)
443
444@@ -323,39 +319,42 @@
445 @property
446 def builds(self):
447 """See `ISourcePackageRecipe`."""
448- order_by = (Desc(Greatest(
449- BuildFarmJob.date_started,
450- BuildFarmJob.date_finished)),
451- Desc(BuildFarmJob.date_created), Desc(BuildFarmJob.id))
452+ order_by = (
453+ Desc(Greatest(
454+ SourcePackageRecipeBuild._new_date_started,
455+ SourcePackageRecipeBuild._new_date_finished)),
456+ Desc(SourcePackageRecipeBuild._new_date_created),
457+ Desc(SourcePackageRecipeBuild.id))
458 return self._getBuilds(None, order_by)
459
460 @property
461 def completed_builds(self):
462 """See `ISourcePackageRecipe`."""
463- filter_term = BuildFarmJob.status != BuildStatus.NEEDSBUILD
464- order_by = (Desc(Greatest(
465- BuildFarmJob.date_started,
466- BuildFarmJob.date_finished)),
467- Desc(BuildFarmJob.id))
468+ filter_term = (
469+ SourcePackageRecipeBuild._new_status != BuildStatus.NEEDSBUILD)
470+ order_by = (
471+ Desc(Greatest(
472+ SourcePackageRecipeBuild._new_date_started,
473+ SourcePackageRecipeBuild._new_date_finished)),
474+ Desc(SourcePackageRecipeBuild.id))
475 return self._getBuilds(filter_term, order_by)
476
477 @property
478 def pending_builds(self):
479 """See `ISourcePackageRecipe`."""
480- filter_term = BuildFarmJob.status == BuildStatus.NEEDSBUILD
481+ filter_term = (
482+ SourcePackageRecipeBuild._new_status == BuildStatus.NEEDSBUILD)
483 # We want to order by date_created but this is the same as ordering
484 # by id (since id increases monotonically) and is less expensive.
485- order_by = Desc(BuildFarmJob.id)
486+ order_by = Desc(SourcePackageRecipeBuild.id)
487 return self._getBuilds(filter_term, order_by)
488
489 def _getBuilds(self, filter_term, order_by):
490 """The actual query to get the builds."""
491 query_args = [
492 SourcePackageRecipeBuild.recipe == self,
493- SourcePackageRecipeBuild.package_build_id == PackageBuild.id,
494- PackageBuild.build_farm_job_id == BuildFarmJob.id,
495- And(PackageBuild.archive_id == Archive.id,
496- Archive._enabled == True),
497+ SourcePackageRecipeBuild._new_archive_id == Archive.id,
498+ Archive._enabled == True,
499 ]
500 if filter_term is not None:
501 query_args.append(filter_term)
502@@ -378,19 +377,17 @@
503 def last_build(self):
504 """See `ISourcePackageRecipeBuild`."""
505 return self._getBuilds(
506- True, Desc(BuildFarmJob.date_finished)).first()
507+ True, Desc(SourcePackageRecipeBuild._new_date_finished)).first()
508
509 def getMedianBuildDuration(self):
510 """Return the median duration of builds of this recipe."""
511 store = IStore(self)
512 result = store.find(
513- BuildFarmJob,
514+ SourcePackageRecipeBuild,
515 SourcePackageRecipeBuild.recipe == self.id,
516- BuildFarmJob.date_finished != None,
517- BuildFarmJob.id == PackageBuild.build_farm_job_id,
518- SourcePackageRecipeBuild.package_build_id == PackageBuild.id)
519- durations = [build.date_finished - build.date_started for build in
520- result]
521+ SourcePackageRecipeBuild._new_date_finished != None)
522+ durations = [
523+ build.date_finished - build.date_started for build in result]
524 if len(durations) == 0:
525 return None
526 durations.sort(reverse=True)
527
528=== modified file 'lib/lp/code/model/sourcepackagerecipebuild.py'
529--- lib/lp/code/model/sourcepackagerecipebuild.py 2013-01-31 07:06:19 +0000
530+++ lib/lp/code/model/sourcepackagerecipebuild.py 2013-02-04 04:13:23 +0000
531@@ -93,6 +93,7 @@
532 package_build = Reference(package_build_id, 'PackageBuild.id')
533
534 build_farm_job_type = BuildFarmJobType.RECIPEBRANCHBUILD
535+ job_type = build_farm_job_type
536
537 id = Int(primary=True)
538
539@@ -150,8 +151,8 @@
540 requester = Reference(requester_id, 'Person.id')
541
542 # Migrating from PackageBuild
543- _new_build_farm_job_id = Int(name='build_farm_job')
544- _new_build_farm_job = Reference(_new_build_farm_job_id, BuildFarmJob.id)
545+ build_farm_job_id = Int(name='build_farm_job')
546+ build_farm_job = Reference(build_farm_job_id, BuildFarmJob.id)
547
548 _new_archive_id = Int(name='archive')
549 _new_archive = Reference(_new_archive_id, 'Archive.id')
550@@ -216,7 +217,7 @@
551 requester, archive, pocket, date_created):
552 """Construct a SourcePackageRecipeBuild."""
553 super(SourcePackageRecipeBuild, self).__init__()
554- self._new_build_farm_job = build_farm_job
555+ self.build_farm_job = build_farm_job
556 self.package_build = package_build
557 self.distroseries = distroseries
558 self.recipe = recipe
559@@ -365,16 +366,13 @@
560
561 @classmethod
562 def getRecentBuilds(cls, requester, recipe, distroseries, _now=None):
563- from lp.buildmaster.model.buildfarmjob import BuildFarmJob
564 if _now is None:
565 _now = datetime.now(pytz.UTC)
566 store = IMasterStore(SourcePackageRecipeBuild)
567 old_threshold = _now - timedelta(days=1)
568 return store.find(cls, cls.distroseries_id == distroseries.id,
569 cls.requester_id == requester.id, cls.recipe_id == recipe.id,
570- BuildFarmJob.date_created > old_threshold,
571- BuildFarmJob.id == PackageBuild.build_farm_job_id,
572- PackageBuild.id == cls.package_build_id)
573+ cls._new_date_created > old_threshold)
574
575 def makeJob(self):
576 """See `ISourcePackageRecipeBuildJob`."""
577
578=== modified file 'lib/lp/registry/model/sourcepackage.py'
579--- lib/lp/registry/model/sourcepackage.py 2012-11-26 08:33:03 +0000
580+++ lib/lp/registry/model/sourcepackage.py 2013-02-04 04:13:23 +0000
581@@ -601,8 +601,8 @@
582 # binary_only parameter as a source package can only have
583 # binary builds.
584
585- clauseTables = ['SourcePackageRelease', 'PackageBuild',
586- 'SourcePackagePublishingHistory']
587+ clauseTables = [
588+ 'SourcePackageRelease', 'SourcePackagePublishingHistory']
589
590 condition_clauses = ["""
591 BinaryPackageBuild.source_package_release =
592@@ -612,7 +612,7 @@
593 SourcePackagePublishingHistory.archive IN %s AND
594 SourcePackagePublishingHistory.sourcepackagerelease =
595 SourcePackageRelease.id AND
596- SourcePackagePublishingHistory.archive = PackageBuild.archive
597+ SourcePackagePublishingHistory.archive = BinaryPackageBuild.archive
598 """ % sqlvalues(self.sourcepackagename,
599 self.distroseries,
600 list(self.distribution.all_distro_archive_ids))]
601@@ -627,8 +627,8 @@
602 # exclude gina-generated and security (dak-made) builds
603 # buildstate == FULLYBUILT && datebuilt == null
604 condition_clauses.append(
605- "NOT (BuildFarmJob.status=%s AND "
606- " BuildFarmJob.date_finished is NULL)"
607+ "NOT (BinaryPackageBuild.status=%s AND "
608+ " BinaryPackageBuild.date_finished is NULL)"
609 % sqlvalues(BuildStatus.FULLYBUILT))
610
611 # Ordering according status
612@@ -648,9 +648,9 @@
613 clauseTables.append('BuildQueue')
614 condition_clauses.append('BuildQueue.job = BuildPackageJob.job')
615 elif build_state == BuildStatus.SUPERSEDED or build_state is None:
616- orderBy = [Desc("BuildFarmJob.date_created")]
617+ orderBy = [Desc("BinaryPackageBuild.date_created")]
618 else:
619- orderBy = [Desc("BuildFarmJob.date_finished")]
620+ orderBy = [Desc("BinaryPackageBuild.date_finished")]
621
622 # Fallback to ordering by -id as a tie-breaker.
623 orderBy.append(Desc("id"))
624
625=== modified file 'lib/lp/soyuz/doc/sourcepackagerelease.txt'
626--- lib/lp/soyuz/doc/sourcepackagerelease.txt 2012-07-05 09:04:09 +0000
627+++ lib/lp/soyuz/doc/sourcepackagerelease.txt 2013-02-04 04:13:23 +0000
628@@ -60,7 +60,6 @@
629 Mozilla-firefox 0.9 has got some builds. including a PPA build. The 'builds'
630 property only returns the non-PPA builds.
631
632- >>> from lp.buildmaster.model.packagebuild import PackageBuild
633 >>> from lp.registry.interfaces.person import IPersonSet
634 >>> from lp.soyuz.model.binarypackagebuild import BinaryPackageBuild
635 >>> from storm.store import Store
636@@ -68,8 +67,7 @@
637 >>> ff_ppa_build = Store.of(cprov_ppa).find(
638 ... BinaryPackageBuild,
639 ... BinaryPackageBuild.source_package_release == spr,
640- ... BinaryPackageBuild.package_build == PackageBuild.id,
641- ... PackageBuild.archive == cprov_ppa)
642+ ... BinaryPackageBuild._new_archive == cprov_ppa)
643 >>> ff_ppa_build.count()
644 1
645 >>> ff_ppa_build[0].archive.purpose.name
646
647=== modified file 'lib/lp/soyuz/interfaces/binarypackagebuild.py'
648--- lib/lp/soyuz/interfaces/binarypackagebuild.py 2013-02-04 04:13:22 +0000
649+++ lib/lp/soyuz/interfaces/binarypackagebuild.py 2013-02-04 04:13:23 +0000
650@@ -63,10 +63,6 @@
651 """A Build interface for items requiring launchpad.View."""
652 id = Int(title=_('ID'), required=True, readonly=True)
653
654- package_build = Reference(
655- title=_('Package build'), schema=IPackageBuild, required=True,
656- readonly=True, description=_('The base package build'))
657-
658 # Overridden from IBuildFarmJob to ensure required is True.
659 processor = Reference(
660 title=_("Processor"), schema=IProcessor,
661
662=== modified file 'lib/lp/soyuz/model/archive.py'
663--- lib/lp/soyuz/model/archive.py 2013-01-11 00:18:49 +0000
664+++ lib/lp/soyuz/model/archive.py 2013-02-04 04:13:23 +0000
665@@ -55,8 +55,6 @@
666 )
667 from lp.buildmaster.enums import BuildStatus
668 from lp.buildmaster.interfaces.packagebuild import IPackageBuildSet
669-from lp.buildmaster.model.buildfarmjob import BuildFarmJob
670-from lp.buildmaster.model.packagebuild import PackageBuild
671 from lp.registry.enums import (
672 INCLUSIVE_TEAM_POLICY,
673 PersonVisibility,
674@@ -86,7 +84,10 @@
675 IStoreSelector,
676 MAIN_STORE,
677 )
678-from lp.services.database.lpstorm import ISlaveStore
679+from lp.services.database.lpstorm import (
680+ ISlaveStore,
681+ IStore,
682+ )
683 from lp.services.database.sqlbase import (
684 cursor,
685 quote,
686@@ -1117,20 +1118,17 @@
687 extra_exprs = []
688 if not include_needsbuild:
689 extra_exprs.append(
690- BuildFarmJob.status != BuildStatus.NEEDSBUILD)
691+ BinaryPackageBuild._new_status != BuildStatus.NEEDSBUILD)
692
693 find_spec = (
694- BuildFarmJob.status,
695+ BinaryPackageBuild._new_status,
696 Count(BinaryPackageBuild.id),
697 )
698- result = store.using(
699- BinaryPackageBuild, PackageBuild, BuildFarmJob).find(
700+ result = store.find(
701 find_spec,
702- BinaryPackageBuild.package_build == PackageBuild.id,
703- PackageBuild.archive == self,
704- PackageBuild.build_farm_job == BuildFarmJob.id,
705- *extra_exprs).group_by(BuildFarmJob.status).order_by(
706- BuildFarmJob.status)
707+ BinaryPackageBuild._new_archive == self,
708+ *extra_exprs).group_by(BinaryPackageBuild._new_status).order_by(
709+ BinaryPackageBuild._new_status)
710
711 # Create a map for each count summary to a number of buildstates:
712 count_map = {
713@@ -1898,18 +1896,14 @@
714 """See `IArchive`."""
715 store = Store.of(self)
716
717- base_query = (
718- BinaryPackageBuild.package_build == PackageBuild.id,
719- PackageBuild.archive == self,
720- PackageBuild.build_farm_job == BuildFarmJob.id)
721 sprs_building = store.find(
722 BinaryPackageBuild.source_package_release_id,
723- BuildFarmJob.status == BuildStatus.BUILDING,
724- *base_query)
725+ BinaryPackageBuild._new_archive == self,
726+ BinaryPackageBuild._new_status == BuildStatus.BUILDING)
727 sprs_waiting = store.find(
728 BinaryPackageBuild.source_package_release_id,
729- BuildFarmJob.status == BuildStatus.NEEDSBUILD,
730- *base_query)
731+ BinaryPackageBuild._new_archive == self,
732+ BinaryPackageBuild._new_status == BuildStatus.NEEDSBUILD)
733
734 # A package is not counted as waiting if it already has at least
735 # one build building.
736@@ -1924,17 +1918,13 @@
737
738 extra_exprs = []
739 if build_status is not None:
740- extra_exprs = [
741- PackageBuild.build_farm_job == BuildFarmJob.id,
742- BuildFarmJob.status == build_status,
743- ]
744+ extra_exprs = [BinaryPackageBuild._new_status == build_status]
745
746 result_set = store.find(
747 SourcePackageRelease,
748 (BinaryPackageBuild.source_package_release_id ==
749 SourcePackageRelease.id),
750- BinaryPackageBuild.package_build == PackageBuild.id,
751- PackageBuild.archive == self,
752+ BinaryPackageBuild._new_archive == self,
753 *extra_exprs)
754
755 result_set.config(distinct=True).order_by(SourcePackageRelease.id)
756@@ -1974,18 +1964,15 @@
757
758 query = """
759 UPDATE Job SET status = %s
760- FROM BinaryPackageBuild, PackageBuild, BuildFarmJob,
761- BuildPackageJob, BuildQueue
762+ FROM BinaryPackageBuild, BuildPackageJob, BuildQueue
763 WHERE
764- BinaryPackageBuild.package_build = PackageBuild.id
765 -- insert self.id here
766- AND PackageBuild.archive = %s
767+ BinaryPackageBuild.archive = %s
768 AND BuildPackageJob.build = BinaryPackageBuild.id
769 AND BuildPackageJob.job = BuildQueue.job
770 AND Job.id = BuildQueue.job
771 -- Build is in state BuildStatus.NEEDSBUILD (0)
772- AND PackageBuild.build_farm_job = BuildFarmJob.id
773- AND BuildFarmJob.status = %s;
774+ AND BinaryPackageBuild.status = %s;
775 """ % sqlvalues(status, self, BuildStatus.NEEDSBUILD)
776
777 store = Store.of(self)
778@@ -2411,19 +2398,13 @@
779
780 def getBuildCountersForArchitecture(self, archive, distroarchseries):
781 """See `IArchiveSet`."""
782- cur = cursor()
783- query = """
784- SELECT BuildFarmJob.status, count(BuildFarmJob.id) FROM
785- BinaryPackageBuild, PackageBuild, BuildFarmJob
786- WHERE
787- BinaryPackageBuild.package_build = PackageBuild.id AND
788- PackageBuild.build_farm_job = BuildFarmJob.id AND
789- PackageBuild.archive = %s AND
790- BinaryPackageBuild.distro_arch_series = %s
791- GROUP BY BuildFarmJob.status ORDER BY BuildFarmJob.status;
792- """ % sqlvalues(archive, distroarchseries)
793- cur.execute(query)
794- result = cur.fetchall()
795+ result = IStore(BinaryPackageBuild).find(
796+ (BinaryPackageBuild._new_status, Count(BinaryPackageBuild.id)),
797+ BinaryPackageBuild._new_archive == archive,
798+ BinaryPackageBuild.distro_arch_series == distroarchseries,
799+ ).group_by(
800+ BinaryPackageBuild._new_status
801+ ).order_by(BinaryPackageBuild._new_status)
802
803 status_map = {
804 'failed': (
805@@ -2452,8 +2433,7 @@
806 for key, status in status_map.iteritems():
807 status_and_counters[key] = 0
808 for status_value, status_counter in result:
809- status_values = [item.value for item in status]
810- if status_value in status_values:
811+ if status_value in status:
812 status_and_counters[key] += status_counter
813
814 return status_and_counters
815
816=== modified file 'lib/lp/soyuz/model/binarypackagebuild.py'
817--- lib/lp/soyuz/model/binarypackagebuild.py 2013-02-04 04:13:22 +0000
818+++ lib/lp/soyuz/model/binarypackagebuild.py 2013-02-04 04:13:23 +0000
819@@ -105,6 +105,7 @@
820 _defaultOrder = 'id'
821
822 build_farm_job_type = BuildFarmJobType.PACKAGEBUILD
823+ job_type = build_farm_job_type
824
825 package_build_id = Int(name='package_build', allow_none=False)
826 package_build = Reference(package_build_id, 'PackageBuild.id')
827@@ -118,8 +119,8 @@
828 source_package_release_id, 'SourcePackageRelease.id')
829
830 # Migrating from PackageBuild
831- _new_build_farm_job_id = Int(name='build_farm_job')
832- _new_build_farm_job = Reference(_new_build_farm_job_id, BuildFarmJob.id)
833+ build_farm_job_id = Int(name='build_farm_job')
834+ build_farm_job = Reference(build_farm_job_id, BuildFarmJob.id)
835
836 _new_archive_id = Int(name='archive')
837 _new_archive = Reference(_new_archive_id, 'Archive.id')
838@@ -624,17 +625,14 @@
839 BinaryPackageBuild.distro_arch_series = %s AND
840 SourcePackageRelease.sourcepackagename = SourcePackageName.id AND
841 SourcePackageName.name = %s AND
842- BinaryPackageBuild.package_build = PackageBuild.id AND
843- PackageBuild.archive IN %s AND
844- PackageBuild.build_farm_job = BuildFarmJob.id AND
845- BuildFarmJob.date_finished IS NOT NULL AND
846- BuildFarmJob.status = %s
847+ BinaryPackageBuild.archive IN %s AND
848+ BinaryPackageBuild.date_finished IS NOT NULL AND
849+ BinaryPackageBuild.status = %s
850 """ % sqlvalues(self, self.distro_arch_series,
851 self.source_package_release.name, archives,
852 BuildStatus.FULLYBUILT),
853- orderBy=['-BuildFarmJob.date_finished', '-id'],
854- clauseTables=['PackageBuild', 'BuildFarmJob', 'SourcePackageName',
855- 'SourcePackageRelease'])
856+ orderBy=['-date_finished', '-id'],
857+ clauseTables=['SourcePackageName', 'SourcePackageRelease'])
858
859 estimated_duration = None
860 if bool(completed_builds):
861@@ -880,7 +878,7 @@
862 build_farm_job, archive, pocket)
863
864 binary_package_build = BinaryPackageBuild(
865- _new_build_farm_job=build_farm_job,
866+ build_farm_job=build_farm_job,
867 package_build=package_build,
868 distro_arch_series=distro_arch_series,
869 source_package_release=source_package_release,
870@@ -985,23 +983,18 @@
871 from lp.soyuz.model.distroarchseries import DistroArchSeries
872 from lp.soyuz.model.sourcepackagerelease import SourcePackageRelease
873
874- # Ensure the underlying buildfarmjob and package build tables
875- # are included.
876- clauses.extend([
877- BinaryPackageBuild.package_build == PackageBuild.id,
878- PackageBuild.build_farm_job == BuildFarmJob.id])
879- origin.extend([BinaryPackageBuild, BuildFarmJob])
880+ origin.append(BinaryPackageBuild)
881
882 # Add query clause that filters on build state if the latter is
883 # provided.
884 if status is not None:
885- clauses.append(BuildFarmJob.status == status)
886+ clauses.append(BinaryPackageBuild._new_status == status)
887
888 # Add query clause that filters on pocket if the latter is provided.
889 if pocket:
890 if not isinstance(pocket, (list, tuple)):
891 pocket = (pocket,)
892- clauses.append(PackageBuild.pocket.is_in(pocket))
893+ clauses.append(BinaryPackageBuild._new_pocket.is_in(pocket))
894
895 # Add query clause that filters on architecture tag if provided.
896 if arch_tag is not None:
897@@ -1034,23 +1027,24 @@
898 Archive, get_archive_privacy_filter)
899
900 clauses = [
901- PackageBuild.archive_id == Archive.id,
902- BuildFarmJob.builder_id == builder_id,
903+ BinaryPackageBuild._new_archive_id == Archive.id,
904+ BinaryPackageBuild._new_builder_id == builder_id,
905 get_archive_privacy_filter(user)]
906- origin = [PackageBuild, Archive]
907+ origin = [Archive]
908
909 self.handleOptionalParamsForBuildQueries(
910 clauses, origin, status, name, pocket=None, arch_tag=arch_tag)
911
912 return IStore(BinaryPackageBuild).using(*origin).find(
913 BinaryPackageBuild, *clauses).order_by(
914- Desc(BuildFarmJob.date_finished), BinaryPackageBuild.id)
915+ Desc(BinaryPackageBuild._new_date_finished),
916+ BinaryPackageBuild.id)
917
918 def getBuildsForArchive(self, archive, status=None, name=None,
919 pocket=None, arch_tag=None):
920 """See `IBinaryPackageBuildSet`."""
921- clauses = [PackageBuild.archive_id == archive.id]
922- origin = [PackageBuild]
923+ clauses = [BinaryPackageBuild._new_archive_id == archive.id]
924+ origin = []
925
926 self.handleOptionalParamsForBuildQueries(
927 clauses, origin, status, name, pocket, arch_tag)
928@@ -1060,9 +1054,9 @@
929 # * FULLYBUILT & FAILURES by -datebuilt
930 # It should present the builds in a more natural order.
931 if status == BuildStatus.SUPERSEDED or status is None:
932- orderBy = [Desc(BuildFarmJob.date_created)]
933+ orderBy = [Desc(BinaryPackageBuild._new_date_created)]
934 else:
935- orderBy = [Desc(BuildFarmJob.date_finished)]
936+ orderBy = [Desc(BinaryPackageBuild._new_date_finished)]
937 # All orders fallback to id if the primary order doesn't succeed
938 orderBy.append(BinaryPackageBuild.id)
939
940@@ -1077,8 +1071,6 @@
941 if not arch_ids:
942 return EmptyResultSet()
943
944- clauseTables = [PackageBuild]
945-
946 # format clause according single/multiple architecture(s) form
947 if len(arch_ids) == 1:
948 condition_clauses = [('distro_arch_series=%s'
949@@ -1087,10 +1079,6 @@
950 condition_clauses = [('distro_arch_series IN %s'
951 % sqlvalues(arch_ids))]
952
953- condition_clauses.extend([
954- "BinaryPackageBuild.package_build = PackageBuild.id",
955- "PackageBuild.build_farm_job = BuildFarmJob.id"])
956-
957 # XXX cprov 2006-09-25: It would be nice if we could encapsulate
958 # the chunk of code below (which deals with the optional paramenters)
959 # and share it with ISourcePackage.getBuildRecords()
960@@ -1098,20 +1086,23 @@
961 # exclude gina-generated and security (dak-made) builds
962 # status == FULLYBUILT && datebuilt == null
963 if status == BuildStatus.FULLYBUILT:
964- condition_clauses.append("BuildFarmJob.date_finished IS NOT NULL")
965+ condition_clauses.append(
966+ "BinaryPackageBuild.date_finished IS NOT NULL")
967 else:
968 condition_clauses.append(
969- "(BuildFarmJob.status <> %s OR "
970- " BuildFarmJob.date_finished IS NOT NULL)"
971+ "(BinaryPackageBuild.status <> %s OR "
972+ " BinaryPackageBuild.date_finished IS NOT NULL)"
973 % sqlvalues(BuildStatus.FULLYBUILT))
974
975 # Ordering according status
976 # * NEEDSBUILD, BUILDING & UPLOADING by -lastscore
977- # * SUPERSEDED & All by -PackageBuild.build_farm_job
978+ # * SUPERSEDED & All by -BinaryPackageBuild.id
979 # (nearly equivalent to -datecreated, but much more
980 # efficient.)
981 # * FULLYBUILT & FAILURES by -datebuilt
982 # It should present the builds in a more natural order.
983+ clauseTables = []
984+ order_by_table = None
985 if status in [
986 BuildStatus.NEEDSBUILD,
987 BuildStatus.BUILDING,
988@@ -1124,12 +1115,10 @@
989 'BuildPackageJob.build = BinaryPackageBuild.id')
990 condition_clauses.append('BuildPackageJob.job = BuildQueue.job')
991 elif status == BuildStatus.SUPERSEDED or status is None:
992- order_by = [Desc(PackageBuild.build_farm_job_id)]
993- order_by_table = PackageBuild
994+ order_by = [Desc(BinaryPackageBuild.id)]
995 else:
996- order_by = [Desc(BuildFarmJob.date_finished),
997+ order_by = [Desc(BinaryPackageBuild._new_date_finished),
998 BinaryPackageBuild.id]
999- order_by_table = BuildFarmJob
1000
1001 # End of duplication (see XXX cprov 2006-09-25 above).
1002
1003@@ -1139,11 +1128,14 @@
1004 # Only pick builds from the distribution's main archive to
1005 # exclude PPA builds
1006 condition_clauses.append(
1007- "PackageBuild.archive IN %s" %
1008+ "BinaryPackageBuild.archive IN %s" %
1009 sqlvalues(list(distribution.all_distro_archive_ids)))
1010
1011+ find_spec = (BinaryPackageBuild,)
1012+ if order_by_table:
1013+ find_spec = find_spec + (order_by_table,)
1014 result_set = Store.of(distribution).using(*clauseTables).find(
1015- (BinaryPackageBuild, order_by_table), *condition_clauses)
1016+ find_spec, *condition_clauses)
1017 result_set.order_by(*order_by)
1018
1019 def get_bpp(result_row):
1020@@ -1172,20 +1164,21 @@
1021 query = """
1022 source_package_release IN %s AND
1023 package_build = packagebuild.id AND
1024- archive.id = packagebuild.archive AND
1025+ archive.id = binarypackagebuild.archive AND
1026 archive.purpose != %s AND
1027 packagebuild.build_farm_job = buildfarmjob.id
1028 """ % sqlvalues(sourcepackagerelease_ids, ArchivePurpose.PPA)
1029
1030 if buildstate is not None:
1031- query += "AND buildfarmjob.status = %s" % sqlvalues(buildstate)
1032+ query += (
1033+ "AND binarypackagebuild.status = %s" % sqlvalues(buildstate))
1034
1035 resultset = IStore(BinaryPackageBuild).using(
1036 BinaryPackageBuild, PackageBuild, BuildFarmJob, Archive).find(
1037 (BinaryPackageBuild, PackageBuild, BuildFarmJob),
1038 SQL(query))
1039 resultset.order_by(
1040- Desc(BuildFarmJob.date_created), BinaryPackageBuild.id)
1041+ Desc(BinaryPackageBuild._new_date_created), BinaryPackageBuild.id)
1042 return DecoratedResultSet(resultset, operator.itemgetter(0))
1043
1044 def getStatusSummaryForBuilds(self, builds):
1045
1046=== modified file 'lib/lp/soyuz/model/buildpackagejob.py'
1047--- lib/lp/soyuz/model/buildpackagejob.py 2013-01-22 06:42:23 +0000
1048+++ lib/lp/soyuz/model/buildpackagejob.py 2013-02-04 04:13:23 +0000
1049@@ -157,14 +157,13 @@
1050 )
1051 sub_query = """
1052 SELECT TRUE FROM Archive, BinaryPackageBuild, BuildPackageJob,
1053- PackageBuild, BuildFarmJob, DistroArchSeries
1054+ DistroArchSeries
1055 WHERE
1056 BuildPackageJob.job = Job.id AND
1057 BuildPackageJob.build = BinaryPackageBuild.id AND
1058 BinaryPackageBuild.distro_arch_series =
1059 DistroArchSeries.id AND
1060- BinaryPackageBuild.package_build = PackageBuild.id AND
1061- PackageBuild.archive = Archive.id AND
1062+ BinaryPackageBuild.archive = Archive.id AND
1063 ((Archive.private IS TRUE AND
1064 EXISTS (
1065 SELECT SourcePackagePublishingHistory.id
1066@@ -178,8 +177,7 @@
1067 SourcePackagePublishingHistory.status IN %s))
1068 OR
1069 archive.private IS FALSE) AND
1070- PackageBuild.build_farm_job = BuildFarmJob.id AND
1071- BuildFarmJob.status = %s
1072+ BinaryPackageBuild.status = %s
1073 """ % sqlvalues(private_statuses, BuildStatus.NEEDSBUILD)
1074
1075 # Ensure that if BUILDING builds exist for the same
1076@@ -201,16 +199,12 @@
1077 sub_query += """
1078 AND Archive.id NOT IN (
1079 SELECT Archive.id
1080- FROM PackageBuild, BuildFarmJob, Archive,
1081- BinaryPackageBuild, DistroArchSeries
1082+ FROM Archive, BinaryPackageBuild, DistroArchSeries
1083 WHERE
1084- PackageBuild.build_farm_job = BuildFarmJob.id
1085- AND BinaryPackageBuild.package_build = PackageBuild.id
1086- AND BinaryPackageBuild.distro_arch_series
1087- = DistroArchSeries.id
1088+ BinaryPackageBuild.distro_arch_series = DistroArchSeries.id
1089 AND DistroArchSeries.processorfamily = %s
1090- AND BuildFarmJob.status = %s
1091- AND PackageBuild.archive = Archive.id
1092+ AND BinaryPackageBuild.status = %s
1093+ AND BinaryPackageBuild.archive = Archive.id
1094 AND Archive.purpose = %s
1095 AND Archive.private IS FALSE
1096 GROUP BY Archive.id
1097
1098=== modified file 'lib/lp/soyuz/model/distributionsourcepackagerelease.py'
1099--- lib/lp/soyuz/model/distributionsourcepackagerelease.py 2013-01-07 02:40:55 +0000
1100+++ lib/lp/soyuz/model/distributionsourcepackagerelease.py 2013-02-04 04:13:23 +0000
1101@@ -20,8 +20,6 @@
1102 from storm.store import Store
1103 from zope.interface import implements
1104
1105-from lp.buildmaster.model.buildfarmjob import BuildFarmJob
1106-from lp.buildmaster.model.packagebuild import PackageBuild
1107 from lp.services.database.decoratedresultset import DecoratedResultSet
1108 from lp.services.database.sqlbase import sqlvalues
1109 from lp.soyuz.interfaces.archive import MAIN_ARCHIVE_PURPOSES
1110@@ -105,8 +103,6 @@
1111 BinaryPackageBuild.distro_arch_series == DistroArchSeries.id,
1112 DistroArchSeries.distroseries == DistroSeries.id,
1113 DistroSeries.distribution == self.distribution,
1114- BinaryPackageBuild.package_build == PackageBuild.id,
1115- PackageBuild.build_farm_job == BuildFarmJob.id
1116 )
1117
1118 # First, get all the builds built in a main archive (this will
1119@@ -114,7 +110,7 @@
1120 builds_built_in_main_archives = Store.of(self.distribution).find(
1121 BinaryPackageBuild,
1122 builds_for_distro_exprs,
1123- PackageBuild.archive == Archive.id,
1124+ BinaryPackageBuild._new_archive == Archive.id,
1125 Archive.purpose.is_in(MAIN_ARCHIVE_PURPOSES))
1126
1127 # Next get all the builds that have a binary published in the
1128
1129=== modified file 'lib/lp/soyuz/model/publishing.py'
1130--- lib/lp/soyuz/model/publishing.py 2013-01-03 00:16:08 +0000
1131+++ lib/lp/soyuz/model/publishing.py 2013-02-04 04:13:23 +0000
1132@@ -1579,17 +1579,14 @@
1133 # If an optional list of build states was passed in as a parameter,
1134 # ensure that the result is limited to builds in those states.
1135 if build_states is not None:
1136- extra_exprs.extend((
1137- BinaryPackageBuild.package_build == PackageBuild.id,
1138- PackageBuild.build_farm_job == BuildFarmJob.id,
1139- BuildFarmJob.status.is_in(build_states)))
1140+ extra_exprs.append(
1141+ BinaryPackageBuild._new_status.is_in(build_states))
1142
1143 store = getUtility(IStoreSelector).get(MAIN_STORE, DEFAULT_FLAVOR)
1144
1145 # We'll be looking for builds in the same distroseries as the
1146 # SPPH for the same release.
1147 builds_for_distroseries_expr = (
1148- BinaryPackageBuild.package_build == PackageBuild.id,
1149 BinaryPackageBuild.distro_arch_series_id == DistroArchSeries.id,
1150 SourcePackagePublishingHistory.distroseriesID ==
1151 DistroArchSeries.distroseriesID,
1152@@ -1603,7 +1600,7 @@
1153 BinaryPackageBuild,
1154 builds_for_distroseries_expr,
1155 (SourcePackagePublishingHistory.archiveID ==
1156- PackageBuild.archive_id),
1157+ BinaryPackageBuild._new_archive_id),
1158 *extra_exprs)
1159
1160 # Next get all the builds that have a binary published in the
1161@@ -1613,7 +1610,7 @@
1162 BinaryPackageBuild,
1163 builds_for_distroseries_expr,
1164 (SourcePackagePublishingHistory.archiveID !=
1165- PackageBuild.archive_id),
1166+ BinaryPackageBuild._new_archive_id),
1167 BinaryPackagePublishingHistory.archive ==
1168 SourcePackagePublishingHistory.archiveID,
1169 BinaryPackagePublishingHistory.binarypackagerelease ==
1170@@ -1737,9 +1734,7 @@
1171 self._getSourceBinaryJoinForSources(
1172 source_publication_ids, active_binaries_only=False),
1173 BinaryPackagePublishingHistory.datepublished != None,
1174- BinaryPackageBuild.package_build == PackageBuild.id,
1175- PackageBuild.build_farm_job == BuildFarmJob.id,
1176- BuildFarmJob.status.is_in(build_states))
1177+ BinaryPackageBuild._new_status.is_in(build_states))
1178
1179 published_builds.order_by(
1180 SourcePackagePublishingHistory.id,
1181
1182=== modified file 'lib/lp/soyuz/model/sourcepackagerelease.py'
1183--- lib/lp/soyuz/model/sourcepackagerelease.py 2013-01-07 04:53:37 +0000
1184+++ lib/lp/soyuz/model/sourcepackagerelease.py 2013-02-04 04:13:23 +0000
1185@@ -226,13 +226,11 @@
1186 # sourcepackagerelease.
1187 return BinaryPackageBuild.select("""
1188 source_package_release = %s AND
1189- package_build = packagebuild.id AND
1190- archive.id = packagebuild.archive AND
1191- packagebuild.build_farm_job = buildfarmjob.id AND
1192+ archive.id = binarypackagebuild.archive AND
1193 archive.purpose IN %s
1194 """ % sqlvalues(self.id, MAIN_ARCHIVE_PURPOSES),
1195- orderBy=['-buildfarmjob.date_created', 'id'],
1196- clauseTables=['Archive', 'PackageBuild', 'BuildFarmJob'])
1197+ orderBy=['-date_created', 'id'],
1198+ clauseTables=['Archive'])
1199
1200 @property
1201 def age(self):
1202@@ -447,16 +445,10 @@
1203 # If there was no published binary we have to try to find a
1204 # suitable build in all possible location across the distroseries
1205 # inheritance tree. See below.
1206- clause_tables = [
1207- 'BuildFarmJob',
1208- 'PackageBuild',
1209- 'DistroArchSeries',
1210- ]
1211+ clause_tables = ['DistroArchSeries']
1212 queries = [
1213- "BinaryPackageBuild.package_build = PackageBuild.id AND "
1214- "PackageBuild.build_farm_job = BuildFarmJob.id AND "
1215 "DistroArchSeries.id = BinaryPackageBuild.distro_arch_series AND "
1216- "PackageBuild.archive = %s AND "
1217+ "BinaryPackageBuild.archive = %s AND "
1218 "DistroArchSeries.architecturetag = %s AND "
1219 "BinaryPackageBuild.source_package_release = %s" % (
1220 sqlvalues(archive.id, distroarchseries.architecturetag, self))]
1221@@ -467,7 +459,7 @@
1222
1223 return BinaryPackageBuild.selectFirst(
1224 query, clauseTables=clause_tables,
1225- orderBy=['-BuildFarmJob.date_created'])
1226+ orderBy=['-date_created'])
1227
1228 def override(self, component=None, section=None, urgency=None):
1229 """See ISourcePackageRelease."""
1230
1231=== modified file 'lib/lp/soyuz/tests/test_archive.py'
1232--- lib/lp/soyuz/tests/test_archive.py 2012-10-25 11:02:37 +0000
1233+++ lib/lp/soyuz/tests/test_archive.py 2013-02-04 04:13:23 +0000
1234@@ -359,16 +359,13 @@
1235 # Return the count for archive build jobs with the given status.
1236 query = """
1237 SELECT COUNT(Job.id)
1238- FROM BinaryPackageBuild, BuildPackageJob, BuildQueue, Job,
1239- PackageBuild, BuildFarmJob
1240+ FROM BinaryPackageBuild, BuildPackageJob, BuildQueue, Job
1241 WHERE
1242 BuildPackageJob.build = BinaryPackageBuild.id
1243 AND BuildPackageJob.job = BuildQueue.job
1244 AND Job.id = BuildQueue.job
1245- AND BinaryPackageBuild.package_build = PackageBuild.id
1246- AND PackageBuild.archive = %s
1247- AND PackageBuild.build_farm_job = BuildFarmJob.id
1248- AND BuildFarmJob.status = %s
1249+ AND BinaryPackageBuild.archive = %s
1250+ AND BinaryPackageBuild.status = %s
1251 AND Job.status = %s;
1252 """ % sqlvalues(archive, BuildStatus.NEEDSBUILD, status)
1253
1254
1255=== modified file 'lib/lp/translations/interfaces/translationtemplatesbuild.py'
1256--- lib/lp/translations/interfaces/translationtemplatesbuild.py 2011-12-24 16:54:44 +0000
1257+++ lib/lp/translations/interfaces/translationtemplatesbuild.py 2013-02-04 04:13:23 +0000
1258@@ -22,10 +22,6 @@
1259 class ITranslationTemplatesBuild(IBuildFarmJob):
1260 """The build information for translation templates builds."""
1261
1262- build_farm_job = Reference(
1263- title=_("The build farm job that this extends."),
1264- required=True, readonly=True, schema=IBuildFarmJob)
1265-
1266 branch = Reference(
1267 title=_("The branch that this build operates on."),
1268 required=True, readonly=True, schema=IBranch)
1269@@ -34,7 +30,7 @@
1270 class ITranslationTemplatesBuildSource(ISpecificBuildFarmJobSource):
1271 """Utility for `ITranslationTemplatesBuild`."""
1272
1273- def create(build_farm_job, branch):
1274+ def create(branch):
1275 """Create a new `ITranslationTemplatesBuild`."""
1276
1277 def findByBranch(branch, store=None):
1278
1279=== modified file 'lib/lp/translations/model/translationtemplatesbuild.py'
1280--- lib/lp/translations/model/translationtemplatesbuild.py 2013-01-30 08:02:59 +0000
1281+++ lib/lp/translations/model/translationtemplatesbuild.py 2013-02-04 04:13:23 +0000
1282@@ -57,6 +57,8 @@
1283
1284 __storm_table__ = 'TranslationTemplatesBuild'
1285
1286+ job_type = BuildFarmJobType.TRANSLATIONTEMPLATESBUILD
1287+
1288 id = Int(name='id', primary=True)
1289 build_farm_job_id = Int(name='build_farm_job', allow_none=False)
1290 build_farm_job = Reference(build_farm_job_id, 'BuildFarmJob.id')