Activate/Deactivate repository to pisi api. Thanks to Turker.

BUG:COMMENT:6734
This commit is contained in:
Faik Uygur
2009-02-04 14:15:41 +00:00
parent 5d066bc5f8
commit 01c19c8694
+28 -2
View File
@@ -33,7 +33,7 @@ medias = (cd, usb, remote, local) = range(4)
class RepoOrder: class RepoOrder:
def __init__(self): def __init__(self):
self.repos = self._get_repos() self.repos = self._get_repos()
def add(self, repo_name, repo_url, repo_type="remote"): def add(self, repo_name, repo_url, repo_type="remote"):
repo_doc = self._get_doc() repo_doc = self._get_doc()
@@ -50,11 +50,29 @@ class RepoOrder:
url_node = repo_node.insertTag("Url") url_node = repo_node.insertTag("Url")
url_node.insertData(repo_url) url_node.insertData(repo_url)
name_node = repo_node.insertTag("Status")
name_node.insertData("active")
media_node = repo_node.insertTag("Media") media_node = repo_node.insertTag("Media")
media_node.insertData(repo_type) media_node.insertData(repo_type)
self._update(repo_doc) self._update(repo_doc)
def set_status(self, repo_name, status):
repo_doc = self._get_doc()
for r in repo_doc.tags("Repo"):
if r.getTagData("Name") == repo_name:
status_node = r.getTag("Status")
if status_node:
status_node.firstChild().hide()
status_node.insertData(status)
else:
status_node = r.insertTag("Status")
status_node.insertData(status)
self._update(repo_doc)
def remove(self, repo_name): def remove(self, repo_name):
repo_doc = self._get_doc() repo_doc = self._get_doc()
@@ -92,7 +110,9 @@ class RepoOrder:
for r in repo_doc.tags("Repo"): for r in repo_doc.tags("Repo"):
media = r.getTagData("Media") media = r.getTagData("Media")
name = r.getTagData("Name") name = r.getTagData("Name")
order.setdefault(media, []).append(name) status = r.getTagData("Status")
if status != "deactive":
order.setdefault(media, []).append(name)
return order return order
@@ -174,3 +194,9 @@ class RepoDB(lazydb.LazyDB):
for r in self.list_repos(): for r in self.list_repos():
if self.get_repo_url(r) == url: if self.get_repo_url(r) == url:
return r return r
def activate_repo(self, name):
self.repoorder.set_status(name, "active")
def deactivate_repo(self, name):
self.repoorder.set_status(name, "deactive")