From d9b10e37fa1e9531b894634ae663f6c49621b677 Mon Sep 17 00:00:00 2001 From: Narayan Desai Date: Wed, 19 Jan 2005 03:47:01 +0000 Subject: add Pkgmgr errors for null package indices 2005/01/18 20:56:31-06:00 anl.gov!desai scope message 2005/01/18 20:56:13-06:00 anl.gov!desai add error handling for package setup failure (Logical change 1.192) git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@813 ce84e21b-d406-0410-9b95-82705330c041 --- src/lib/Server/Generators/Pkgmgr.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/lib/Server/Generators') diff --git a/src/lib/Server/Generators/Pkgmgr.py b/src/lib/Server/Generators/Pkgmgr.py index 1ad57e7a4..eb560b0a4 100644 --- a/src/lib/Server/Generators/Pkgmgr.py +++ b/src/lib/Server/Generators/Pkgmgr.py @@ -2,8 +2,9 @@ __revision__ = '$Revision$' from re import compile as regcompile +from syslog import syslog, LOG_ERR -from Bcfg2.Server.Generator import Generator, GeneratorError, DirectoryBacked, XMLFileBacked +from Bcfg2.Server.Generator import Generator, GeneratorError, GeneratorInitError, DirectoryBacked, XMLFileBacked class PackageEntry(XMLFileBacked): '''PackageEntry is a set of packages and locations for a single image''' @@ -41,7 +42,11 @@ class Pkgmgr(Generator): def __init__(self, core, datastore): Generator.__init__(self, core, datastore) - self.pkgdir = PackageDir(self.data, self.core.fam) + try: + self.pkgdir = PackageDir(self.data, self.core.fam) + except OSError: + syslog(LOG_ERR, "Pkgmgr: Failed to load package indices") + raise GeneratorInitError def FindHandler(self, entry): '''Non static mechanism of determining entry provisioning''' @@ -57,6 +62,9 @@ class Pkgmgr(Generator): if pkglist.packages.has_key(pkgname): entry.attrib.update(pkglist.packages[pkgname]) return + elif not self.pkgdir.has_key("%s.xml" % metadata.image): + syslog(LOG_ERR, "Pkgmgr: no package index for image %s" % metadata.image) + raise GeneratorError, ("Image", metadata.image) pkglist = self.pkgdir["%s.xml" % (metadata.image)] if pkglist.packages.has_key(pkgname): pkg = pkglist.packages[pkgname] -- cgit v1.2.3-1-g7c22