From bb4f0d4295fda87e2c5fa7b95b2b66b33f9ad2c4 Mon Sep 17 00:00:00 2001 From: Stefano Rivera Date: Fri, 11 Nov 2011 23:38:01 +0200 Subject: [PATCH] Pass through error messages nicely --- reverse-depends | 11 ++++------- ubuntutools/rdepends.py | 11 ++++++++++- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/reverse-depends b/reverse-depends index 23edd28..2a16774 100755 --- a/reverse-depends +++ b/reverse-depends @@ -15,13 +15,12 @@ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. import optparse -import urllib2 import sys from devscripts.logger import Logger from distro_info import UbuntuDistroInfo -from ubuntutools.rdepends import query_rdepends +from ubuntutools.rdepends import query_rdepends, RDependsException def main(): @@ -67,11 +66,9 @@ def main(): try: data = query_rdepends(package, options.release, options.arch, **opts) - except urllib2.HTTPError, e: - if e.code == 404: - # TODO: Get a real error message through the HTTP response's status - Logger.error("Unable to determine rdepends") - sys.exit(1) + except RDependsException, e: + Logger.error(str(e)) + sys.exit(1) if options.arch == 'source': fields = ['Reverse-Build-Depends', 'Reverse-Build-Depends-Indep'] diff --git a/ubuntutools/rdepends.py b/ubuntutools/rdepends.py index 42a01c7..9a07321 100644 --- a/ubuntutools/rdepends.py +++ b/ubuntutools/rdepends.py @@ -17,6 +17,10 @@ import os import urllib2 +class RDependsException(Exception): + pass + + def query_rdepends(package, release, arch, server='http://qa.ubuntuwire.org/rdepends'): """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:'): package = 'src:' + 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())