diff --git a/pisi/api.py b/pisi/api.py index 456a1b25..8765072f 100644 --- a/pisi/api.py +++ b/pisi/api.py @@ -630,8 +630,18 @@ def remove_repo(name): raise pisi.Error(_('Repository %s does not exist. Cannot remove.') % name) +@locked +def update_repos(repos, force=False): + pisi.db.historydb.HistoryDB().create_history("repoupdate") + for repo in repos: + __update_repo(repo, force) + @locked def update_repo(repo, force=False): + pisi.db.historydb.HistoryDB().create_history("repoupdate") + __update_repo(repo, force) + +def __update_repo(repo, force=False): ctx.ui.info(_('* Updating repository: %s') % repo) ctx.ui.notify(pisi.ui.updatingrepo, name = repo) repodb = pisi.db.repodb.RepoDB() @@ -640,7 +650,6 @@ def update_repo(repo, force=False): repouri = repodb.get_repo(repo).indexuri.get_uri() try: index.read_uri_of_repo(repouri, repo) - pisi.db.historydb.HistoryDB().create_history("repoupdate") pisi.db.historydb.HistoryDB().update_repo(repo, repouri, "update") except pisi.file.AlreadyHaveException, e: ctx.ui.info(_('%s repository information is up-to-date.') % repo) diff --git a/pisi/cli/updaterepo.py b/pisi/cli/updaterepo.py index eb697337..1931b01a 100644 --- a/pisi/cli/updaterepo.py +++ b/pisi/cli/updaterepo.py @@ -55,5 +55,4 @@ If no repository is given, all repositories are updated. else: repos = pisi.api.list_repos() - for repo in repos: - pisi.api.update_repo(repo, ctx.get_option('force')) + pisi.api.update_repos(repos, ctx.get_option('force')) diff --git a/pisi/cli/upgrade.py b/pisi/cli/upgrade.py index 4228fb55..63023330 100644 --- a/pisi/cli/upgrade.py +++ b/pisi/cli/upgrade.py @@ -86,10 +86,7 @@ expanded to package names. if not ctx.get_option('bypass_update_repo'): ctx.ui.info(_('Updating repositories')) repos = pisi.api.list_repos() - for repo in repos: - pisi.api.update_repo(repo) - # reinitialize after update repo operation - pisi.db.historydb.HistoryDB().init() + pisi.api.update_repos(repos) else: ctx.ui.info(_('Will not update repositories')) diff --git a/pisi/db/historydb.py b/pisi/db/historydb.py index 725c7a9d..cf707256 100644 --- a/pisi/db/historydb.py +++ b/pisi/db/historydb.py @@ -34,9 +34,8 @@ class HistoryDB(lazydb.LazyDB): return logs def create_history(self, operation): - if not self.history: - self.history = pisi.history.History() - self.history.create(operation) + self.history = pisi.history.History() + self.history.create(operation) def add_and_update(self, pkgBefore=None, pkgAfter=None, operation=None, otype=None): self.add_package(pkgBefore, pkgAfter, operation, otype)