Pass through error messages nicely

This commit is contained in:
Stefano Rivera 2011-11-11 23:38:01 +02:00
parent c5201e1847
commit bb4f0d4295
2 changed files with 14 additions and 8 deletions

View File

@ -15,13 +15,12 @@
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
import optparse import optparse
import urllib2
import sys import sys
from devscripts.logger import Logger from devscripts.logger import Logger
from distro_info import UbuntuDistroInfo from distro_info import UbuntuDistroInfo
from ubuntutools.rdepends import query_rdepends from ubuntutools.rdepends import query_rdepends, RDependsException
def main(): def main():
@ -67,11 +66,9 @@ def main():
try: try:
data = query_rdepends(package, options.release, options.arch, **opts) data = query_rdepends(package, options.release, options.arch, **opts)
except urllib2.HTTPError, e: except RDependsException, e:
if e.code == 404: Logger.error(str(e))
# TODO: Get a real error message through the HTTP response's status sys.exit(1)
Logger.error("Unable to determine rdepends")
sys.exit(1)
if options.arch == 'source': if options.arch == 'source':
fields = ['Reverse-Build-Depends', 'Reverse-Build-Depends-Indep'] fields = ['Reverse-Build-Depends', 'Reverse-Build-Depends-Indep']

View File

@ -17,6 +17,10 @@ import os
import urllib2 import urllib2
class RDependsException(Exception):
pass
def query_rdepends(package, release, arch, def query_rdepends(package, release, arch,
server='http://qa.ubuntuwire.org/rdepends'): server='http://qa.ubuntuwire.org/rdepends'):
"""Look up a packages reverse-dependencies on the Ubuntuwire """Look up a packages reverse-dependencies on the Ubuntuwire
@ -24,5 +28,10 @@ def query_rdepends(package, release, arch,
""" """
if arch == 'source' and not package.startswith('src:'): if arch == 'source' and not package.startswith('src:'):
package = 'src:' + package package = 'src:' + package
url = os.path.join(server, 'v1', release, arch, package) url = os.path.join(server, 'v1', release, arch, package)
return json.load(urllib2.urlopen(url))
try:
return json.load(urllib2.urlopen(url))
except urllib2.HTTPError, e:
raise RDependsException(e.read().strip())