commit: 89bf796adb52fac6c9472f5dc40bc137e4ab0d44 Author: Devan Franchini <twitch153 <AT> gentoo <DOT> org> AuthorDate: Thu Jul 10 20:26:45 2014 +0000 Commit: Devan Franchini <twitch153 <AT> gentoo <DOT> org> CommitDate: Fri Aug 15 20:57:38 2014 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/layman.git;a=commit;h=89bf796a
api.py: Adds disable and enable repo functions X-Gentoo-Bug: 512316 X-Gentoo-Bug-URL: https://bugs.gentoo.org/512316 --- layman/api.py | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 52 insertions(+), 2 deletions(-) diff --git a/layman/api.py b/layman/api.py index 17c7998..bae6972 100755 --- a/layman/api.py +++ b/layman/api.py @@ -122,7 +122,7 @@ class LaymanAPI(object): self._get_installed_db().select(ovl)) except Exception as e: self._error( - "Exception caught disabling repository '"+ovl+ + "Exception caught removing repository '"+ovl+ "':\n"+str(e)) results.append(success) self.get_installed(dbreload=True) @@ -155,7 +155,7 @@ class LaymanAPI(object): success = self._get_installed_db().add( self._get_remote_db().select(ovl)) except Exception as e: - self._error("Exception caught enabling repository '"+ovl+ + self._error("Exception caught installing repository '"+ovl+ "' : "+str(e)) results.append(success) self.get_installed(dbreload=True) @@ -183,6 +183,56 @@ class LaymanAPI(object): return success + def disable_repos(self, repos, update_news=False): + repos = self._check_repo_type(repos, "disable_repo") + results = [] + for ovl in repos: + if not self.is_repo(ovl): + self.output.error(UnknownOverlayMessage(ovl)) + result.append(False) + continue + success = False + try: + success = self._get_installed_db().disable( + self._get_installed_db().select(ovl)) + except Exception as e: + self._error('Exception caught disabling repository "%(repo)s"'\ + ': %(err)s' % ({'repo': ovl, 'err': e})) + results.append(success) + self.get_installed(dbreload=True) + if (True in results) and update_news: + self.update_news(repos) + + if False in results: + return False + return True + + + def enable_repos(self, repos, update_news=False): + repos = self._check_repo_type(repos, "enable_repo") + results = [] + for ovl in repos: + if not self.is_repo(ovl): + self.output.error(UnknownOverlayMessage(ovl)) + result.append(False) + continue + success = False + try: + success = self._get_installed_db().enable( + self._get_installed_db().select(ovl)) + except Exception as e: + self._error('Exception caught enabling repository "%(repo)s"'\ + ': %(err)s' % ({'repo': ovl, 'err': e})) + results.append(success) + self.get_installed(dbreload=True) + if (True in results) and update_news: + self.update_news(repos) + + if False in results: + return False + return True + + def get_all_info(self, repos, local=False): """retrieves the recorded information about the repo(s) specified by repo-id
