diff --git a/pisi/itembyrepodb.py b/pisi/itembyrepodb.py index 45c4472d..16a335b2 100644 --- a/pisi/itembyrepodb.py +++ b/pisi/itembyrepodb.py @@ -143,7 +143,6 @@ class ItemByRepoDB(object): def remove_item(self, name, repo, txn = None): name = str(name) - repo = str(repo) def proc(txn): s = self.d.get(name, txn) repostr = self.repo_str(repo) @@ -157,9 +156,6 @@ class ItemByRepoDB(object): def remove_repo(self, repo, txn = None): def proc(txn): - repostr = self.repo_str(repo) - for (key, s) in self.d.items(): - if s.has_key(repostr): - del s[repostr] - self.d.put(repo, s, txn) + for key in self.d.keys(): + self.remove_item(key, repo, txn=txn) self.d.txn_proc(proc, txn) diff --git a/pisi/repodb.py b/pisi/repodb.py index 9b71f1a6..bb48b22f 100644 --- a/pisi/repodb.py +++ b/pisi/repodb.py @@ -99,6 +99,7 @@ class RepoDB(object): list.remove(name) self.d.put("order", list, txn) ctx.packagedb.remove_repo(name, txn=txn) + ctx.sourcedb.remove_repo(name, txn=txn) self.d.txn_proc(proc, txn) db = None diff --git a/pisi/sourcedb.py b/pisi/sourcedb.py index 2937994d..821ff85c 100644 --- a/pisi/sourcedb.py +++ b/pisi/sourcedb.py @@ -90,6 +90,12 @@ class SourceDB(object): self.d.txn_proc(proc, txn) + def remove_repo(self, repo, txn = None): + def proc(txn): + self.d.remove_repo(repo, txn=txn) + self.dpkgtosrc.remove_repo(repo, txn=txn) + self.d.txn_proc(proc, txn) + sourcedb = None def init():