From f6826592fb403273ff09c2bceca557c87ee377d4 Mon Sep 17 00:00:00 2001 From: Fabio Erculiani Date: Sun, 17 Jan 2010 12:19:49 +0100 Subject: [PATCH] [entropy.spm] when get_installed_package_metadata fails, raise KeyError and handle it --- client/text_rescue.py | 7 +++++-- .../spm/plugins/interfaces/portage_plugin/__init__.py | 5 ++++- libraries/entropy/spm/plugins/skel.py | 1 + 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/client/text_rescue.py b/client/text_rescue.py index 91bddd3dc..4e2c9f74a 100644 --- a/client/text_rescue.py +++ b/client/text_rescue.py @@ -401,8 +401,11 @@ def _database_spmsync(entropy_client): spm_packages = Spm.get_installed_packages() installed_packages = [] for spm_package in spm_packages: - pkg_counter = Spm.get_installed_package_metadata(spm_package, - "COUNTER") + try: + pkg_counter = Spm.get_installed_package_metadata(spm_package, + "COUNTER") + except KeyError: + continue try: pkg_counter = int(pkg_counter) except ValueError: diff --git a/libraries/entropy/spm/plugins/interfaces/portage_plugin/__init__.py b/libraries/entropy/spm/plugins/interfaces/portage_plugin/__init__.py index 821142473..f68a8cba4 100644 --- a/libraries/entropy/spm/plugins/interfaces/portage_plugin/__init__.py +++ b/libraries/entropy/spm/plugins/interfaces/portage_plugin/__init__.py @@ -396,7 +396,10 @@ class PortagePlugin(SpmPlugin): if root is None: root = etpConst['systemroot'] + os.path.sep vartree = self._get_portage_vartree(root = root) - return vartree.dbapi.aux_get(package, [key])[0] + try: + return vartree.dbapi.aux_get(package, [key])[0] + except KeyError: # make clear that we raise KeyError + raise def get_system_packages(self): """ diff --git a/libraries/entropy/spm/plugins/skel.py b/libraries/entropy/spm/plugins/skel.py index 4c2f31608..8629abae0 100644 --- a/libraries/entropy/spm/plugins/skel.py +++ b/libraries/entropy/spm/plugins/skel.py @@ -176,6 +176,7 @@ class SpmPlugin(Singleton): @type root: string @return: package metadata value @rtype: string + @raise KeyError: if package is not available """ raise NotImplementedError()