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