diff options
author | Till Maas <opensource@till.name> | 2012-06-04 01:14:52 +0200 |
---|---|---|
committer | Till Maas <opensource@till.name> | 2012-06-04 01:14:52 +0200 |
commit | 190a4c34a9ceac17d72ce1c31c608c505a8c9fdc (patch) | |
tree | 5ba01b44af78cdf80ab085be8642514e353fb867 | |
parent | 656dc91b4943132bcef4d31731b5a42aa32615c0 (diff) | |
download | cnucnu-190a4c34a9ceac17d72ce1c31c608c505a8c9fdc.tar.gz cnucnu-190a4c34a9ceac17d72ce1c31c608c505a8c9fdc.tar.xz cnucnu-190a4c34a9ceac17d72ce1c31c608c505a8c9fdc.zip |
Enhance exception handling
-rwxr-xr-x | cnucnu.py | 8 | ||||
-rw-r--r-- | cnucnu/errors.py | 3 | ||||
-rwxr-xr-x | cnucnu/package_list.py | 5 |
3 files changed, 14 insertions, 2 deletions
@@ -21,7 +21,8 @@ import logging import sys import os -import cnucnu.config +import cnucnu +import cnucnu.errors as cc_errors from cnucnu.config import global_config from cnucnu.package_list import Repository, PackageList, Package from cnucnu.checkshell import CheckShell @@ -49,7 +50,12 @@ class Actions(object): log.info("checking package '%s'", p.name) try: if p.upstream_newer: + print "package '%s' outdated (%s < %s)" % (p.name, p.repo_version, p.latest_upstream) pprint(p.report_outdated(dry_run=args.dry_run)) + except cc_errors.UpstreamVersionRetrievalError: + log.error("Failed to fetch upstream information for package '%s'" % p.name) + except cc_errors.PackageNotFoundError, e: + log.error(e) except Exception, e: log.exception("Exception occured while processing package '%s':\n%s" % (p.name, pp.pformat(e))) else: diff --git a/cnucnu/errors.py b/cnucnu/errors.py index 2bbf7d8..17f71f5 100644 --- a/cnucnu/errors.py +++ b/cnucnu/errors.py @@ -28,3 +28,6 @@ class CnuCnuError(Exception): class UpstreamVersionRetrievalError(CnuCnuError): Name = "Upstream Version Retrieval Error" + +class PackageNotFoundError(CnuCnuError): + Name = "Package not found in repository" diff --git a/cnucnu/package_list.py b/cnucnu/package_list.py index 34cb1c9..8927c45 100755 --- a/cnucnu/package_list.py +++ b/cnucnu/package_list.py @@ -78,7 +78,10 @@ class Repository: return new_nvr_dict def package_version(self, package): - return self.nvr_dict[package.name][0] + try: + return self.nvr_dict[package.name][0] + except KeyError: + raise cc_errors.PackageNotFoundError("package '%s' not found in repository '%s' (%s)" % (package.name, self.name, self.path)) def package_release(self, package): return self.nvr_dict[package.name][1] |