#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#
#
# Copyright 2010, Richard Lowe
#
# * monaco
# * bugs.opensolaris.org (b.o.o.)
# * redmine (illumos.org)
#
import htmllib
import re
import urllib
import urllib2
try: # Python >= 2.5
except ImportError:
"""Lookup change requests.
Usage:
bdb = BugDB()
r = bdb.lookup("6455550")
print r["6455550"]["synopsis"]
r = bdb.lookup(["6455550", "6505625"])
print r["6505625"]["synopsis"]
"""
"""Create a BugDB object.
Keyword argument:
priority: use bug databases in this order
"""
raise BugDBException, database
try:
if e.code == 404:
raise NonExistentBug(cr)
else:
raise
}
"""Return all info for requested change reports.
Argument:
crs: one change request id (may be integer, string, or list),
or multiple change request ids (must be a list)
Returns:
Dictionary, mapping CR=>dictionary, where the nested dictionary
is a mapping of field=>value
"""
results = {}
if database == "illumos":
try:
except NonExistentBug:
continue
# the CR has already been found by one bug database
# so don't bother looking it up in the others
return results