~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/bugs/scripts/bugimport.py

  • Committer: Launchpad Patch Queue Manager
  • Date: 2009-06-18 14:27:54 UTC
  • mfrom: (8657.3.7 bug-importer-cleanup)
  • Revision ID: launchpad@pqm.canonical.com-20090618142754-23ynd7epmog6202b
[r=allenap][ui=none] The BugImporter script will now log correctly to
        stdout. Previously this script used a logger that meant its
        output never appeared on stdout.

Show diffs side-by-side

added added

removed removed

Lines of Context:
49
49
from lp.bugs.scripts.bugexport import BUGS_XMLNS
50
50
 
51
51
 
52
 
logger = logging.getLogger('lp.bugs.scripts.bugimport')
 
52
DEFAULT_LOGGER = logging.getLogger('lp.bugs.scripts.bugimport')
53
53
 
54
54
UTC = pytz.timezone('UTC')
55
55
 
114
114
    """Import bugs into Launchpad"""
115
115
 
116
116
    def __init__(self, product, bugs_filename, cache_filename,
117
 
                 verify_users=False):
 
117
                 verify_users=False, logger=None):
118
118
        self.product = product
119
119
        self.bugs_filename = bugs_filename
120
120
        self.cache_filename = cache_filename
122
122
        self.person_id_cache = {}
123
123
        self.bug_importer = getUtility(ILaunchpadCelebrities).bug_importer
124
124
 
 
125
        if logger is None:
 
126
            self.logger = DEFAULT_LOGGER
 
127
        else:
 
128
            self.logger = logger
 
129
 
125
130
        # A mapping of old bug IDs to new Launchpad Bug IDs
126
131
        self.bug_id_map = {}
127
132
        # A mapping of old bug IDs to a list of Launchpad Bug IDs that are
160
165
        if person is None:
161
166
            person = getUtility(IPersonSet).getByEmail(email)
162
167
            if person is None:
163
 
                logger.debug('creating person for %s' % email)
 
168
                self.logger.debug('creating person for %s' % email)
164
169
                # has the short name been taken?
165
170
                if name is not None:
166
171
                    person = getUtility(IPersonSet).getByName(name)
242
247
            except (SystemExit, KeyboardInterrupt):
243
248
                raise
244
249
            except:
245
 
                logger.exception('Could not import bug #%s',
246
 
                                 bugnode.get('id'))
 
250
                self.logger.exception(
 
251
                    'Could not import bug #%s', bugnode.get('id'))
247
252
                ztm.abort()
248
253
            else:
249
254
                ztm.commit()
252
257
        assert not self.haveImportedBug(bugnode), (
253
258
            'the bug has already been imported')
254
259
        bug_id = int(bugnode.get('id'))
255
 
        logger.info('Handling bug %d', bug_id)
 
260
 
 
261
        self.logger.info('Handling bug %d', bug_id)
256
262
 
257
263
        comments = get_all(bugnode, 'comment')
258
264
 
279
285
        # correctly after creation.
280
286
        bug.setPrivate(private, owner)
281
287
        bugtask = bug.bugtasks[0]
282
 
        logger.info('Creating Launchpad bug #%d', bug.id)
 
288
        self.logger.info('Creating Launchpad bug #%d', bug.id)
283
289
 
284
290
        # Remaining setup for first comment
285
291
        self.createAttachments(bug, msg, commentnode)
320
326
                bugtracker, remotebug = bugwatchset.extractBugTrackerAndBug(
321
327
                    watchnode.get('href'))
322
328
            except NoBugTrackerFound, exc:
323
 
                logger.debug('Registering bug tracker for %s', exc.base_url)
 
329
                self.logger.debug(
 
330
                    'Registering bug tracker for %s', exc.base_url)
324
331
                bugtracker = getUtility(IBugTrackerSet).ensureBugTracker(
325
332
                    exc.base_url, self.bug_importer, exc.bugtracker_type)
326
333
                remotebug = exc.remote_bug
428
435
        if bug_id in self.pending_duplicates:
429
436
            for other_bug_id in self.pending_duplicates[bug_id]:
430
437
                other_bug = getUtility(IBugSet).get(other_bug_id)
431
 
                logger.info('Marking bug %d as duplicate of bug %d',
432
 
                            other_bug.id, bug.id)
 
438
                self.logger.info(
 
439
                    'Marking bug %d as duplicate of bug %d',
 
440
                    other_bug.id, bug.id)
433
441
                other_bug.duplicateof = bug
434
442
            del self.pending_duplicates[bug_id]
435
443
        # Process this bug as a duplicate
439
447
            if duplicateof in self.bug_id_map:
440
448
                other_bug = getUtility(IBugSet).get(
441
449
                    self.bug_id_map[duplicateof])
442
 
                logger.info('Marking bug %d as duplicate of bug %d',
443
 
                            bug.id, other_bug.id)
 
450
                self.logger.info(
 
451
                    'Marking bug %d as duplicate of bug %d',
 
452
                    bug.id, other_bug.id)
444
453
                bug.duplicateof = other_bug
445
454
            else:
446
455
                self.pending_duplicates.setdefault(