~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/bugs/doc/product-update-remote-product.txt

  • Committer: Launchpad Patch Queue Manager
  • Date: 2011-12-26 06:01:53 UTC
  • mfrom: (14575.2.4 megalint-9)
  • Revision ID: launchpad@pqm.canonical.com-20111226060153-1rfmi1yn90lu4fuf
[r=jtv][no-qa] Lint.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
= Updating Product.remote_product =
 
1
Updating Product.remote_product
 
2
===============================
2
3
 
3
4
The remote_product attribute of a Product is used to present links for
4
5
filing and searching bugs in the Product's bug tracker, in case it's not
20
21
    >>> updater = RemoteProductUpdater(FakeTransaction(), BufferLogger())
21
22
 
22
23
 
23
 
== Testing ==
 
24
Testing
 
25
-------
24
26
 
25
27
To help testing, there is a method, _getExternalBugTracker(), that
26
28
creates the ExternalBugTracker for the given BugTracker.
54
56
    ...         return self.external_bugtracker_to_return()
55
57
 
56
58
 
57
 
== update() ==
 
59
update()
 
60
--------
58
61
 
59
62
The update method simply loops over all the bug tracker types that can
60
63
track more than one product, and calls updateByBugTrackerType(). Any bug
84
87
    set([])
85
88
 
86
89
 
87
 
== updateByBugTrackerType() ==
 
90
updateByBugTrackerType()
 
91
------------------------
88
92
 
89
93
The updateByBugTrackerType() method looks at the bug watches that are
90
94
linked to the product, to decide what remote_product should be set to.
92
96
be updated.
93
97
 
94
98
 
95
 
=== No bug watches ===
 
99
No bug watches
 
100
..............
96
101
 
97
102
If there are no bug watches, nothing will be done.
98
103
 
116
121
    None
117
122
 
118
123
 
119
 
=== Linked bug watches ===
 
124
Linked bug watches
 
125
..................
120
126
 
121
127
If there are bug watches for a product having a None remote_product, an
122
128
arbitrary bug watch will be retrieved, and queried for its remote
162
168
    None
163
169
 
164
170
 
165
 
=== remote_product already set ===
 
171
remote_product already set
 
172
..........................
166
173
 
167
174
If a product already has remote_product set, it will not be updated.
168
175
 
187
194
    already-set
188
195
 
189
196
 
190
 
=== Transaction handling ===
 
197
Transaction handling
 
198
....................
191
199
 
192
200
To avoid long-running write transactions, the transaction is committed
193
201
after each product's remote_product has been updated.
218
226
    COMMIT
219
227
 
220
228
 
221
 
=== Error handling ===
 
229
Error handling
 
230
..............
222
231
 
223
232
If the ExternalBugTracker raises any BugWatchUpdateErrors,
224
233
updateByBugTrackerType() will simply log the error and then continue.