Raise a meaningful exception.
This commit is contained in:
+10
-4
@@ -21,6 +21,9 @@ import pisi.index
|
|||||||
import pisi.context as ctx
|
import pisi.context as ctx
|
||||||
import pisi.db.lazydb as lazydb
|
import pisi.db.lazydb as lazydb
|
||||||
|
|
||||||
|
class RepoError(pisi.Error):
|
||||||
|
pass
|
||||||
|
|
||||||
class Repo:
|
class Repo:
|
||||||
def __init__(self, indexuri):
|
def __init__(self, indexuri):
|
||||||
self.indexuri = indexuri
|
self.indexuri = indexuri
|
||||||
@@ -40,7 +43,7 @@ class RepoOrder:
|
|||||||
repo_node = node.appendTag("Repo")
|
repo_node = node.appendTag("Repo")
|
||||||
except IndexError:
|
except IndexError:
|
||||||
repo_node = repo_doc.insertTag("Repo")
|
repo_node = repo_doc.insertTag("Repo")
|
||||||
|
|
||||||
name_node = repo_node.insertTag("Name")
|
name_node = repo_node.insertTag("Name")
|
||||||
name_node.insertData(repo_name)
|
name_node.insertData(repo_name)
|
||||||
|
|
||||||
@@ -81,7 +84,7 @@ class RepoOrder:
|
|||||||
if not os.path.exists(repos_file):
|
if not os.path.exists(repos_file):
|
||||||
return piksemel.newDocument("REPOS")
|
return piksemel.newDocument("REPOS")
|
||||||
return piksemel.parse(repos_file)
|
return piksemel.parse(repos_file)
|
||||||
|
|
||||||
def _get_repos(self):
|
def _get_repos(self):
|
||||||
repo_doc = self._get_doc()
|
repo_doc = self._get_doc()
|
||||||
order = {}
|
order = {}
|
||||||
@@ -109,8 +112,11 @@ class RepoDB(lazydb.LazyDB):
|
|||||||
if index_path.endswith("bz2"):
|
if index_path.endswith("bz2"):
|
||||||
index_path = index_path.split(".bz2")[0]
|
index_path = index_path.split(".bz2")[0]
|
||||||
|
|
||||||
return piksemel.parse(index_path)
|
try:
|
||||||
|
return piksemel.parse(index_path)
|
||||||
|
except Exception, e:
|
||||||
|
raise RepoError("Error parsing repository index information. Index file does not exist or is malformed.")
|
||||||
|
|
||||||
def get_repo(self, repo):
|
def get_repo(self, repo):
|
||||||
return Repo(pisi.uri.URI(self.get_repo_url(repo)))
|
return Repo(pisi.uri.URI(self.get_repo_url(repo)))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user