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.
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']

View File

@ -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())