From eb9fd952a3ea964d4e1aa1b0f7e6a0a208d12b40 Mon Sep 17 00:00:00 2001 From: Michael DeHaan Date: Thu, 15 May 2008 15:01:37 -0400 Subject: Add extra logging if an error is encountered while rendering a kickstart --- CHANGELOG | 1 + cobbler/api.py | 12 +----------- cobbler/kickgen.py | 3 +-- cobbler/utils.py | 13 +++++++++++++ 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index c291335..72bba8a 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -15,6 +15,7 @@ Cobbler CHANGELOG - add sync() back into XMLRPC API, missing in 0.9.1 - added 'distro_name', 'profile_name', and 'system_name' to generated template vars - it's now possible to undefine a --ksmeta or kopts symbol defined in a parent with "!foo" +- log errors while rendering kickstarts - Fri May 09 2008 - 0.9.1 - patch to allow yumopts to override gpgcheck diff --git a/cobbler/api.py b/cobbler/api.py index a2aa881..cafc216 100644 --- a/cobbler/api.py +++ b/cobbler/api.py @@ -86,17 +86,7 @@ class BootAPI: self.logger.debug("API handle initialized") def __setup_logger(self,name): - logger = logging.getLogger(name) - logger.setLevel(logging.INFO) - try: - ch = logging.FileHandler("/var/log/cobbler/cobbler.log") - except: - raise CX(_("No write permissions on log file. Are you root?")) - ch.setLevel(logging.INFO) - formatter = logging.Formatter("%(asctime)s - %(name)s - %(message)s") - ch.setFormatter(formatter) - logger.addHandler(ch) - return logger + return utils.setup_logger(name) def log(self,msg,args=None,debug=False): if debug: diff --git a/cobbler/kickgen.py b/cobbler/kickgen.py index ba8bfd2..9f0235d 100644 --- a/cobbler/kickgen.py +++ b/cobbler/kickgen.py @@ -81,8 +81,7 @@ class KickGen: kfile.close() return data except: - traceback.print_exc() # leave this in, for now... - msg = "err_kickstart2" + utils.log_exc(self.api.logger) raise CX(_("Error while rendering kickstart file")) def generate_kickstart_signal(self, is_pre=0, profile=None, system=None): diff --git a/cobbler/utils.py b/cobbler/utils.py index 455a7e3..de00150 100644 --- a/cobbler/utils.py +++ b/cobbler/utils.py @@ -23,6 +23,7 @@ import shutil import string import traceback import errno +import logging from cexceptions import * #placeholder for translation @@ -37,6 +38,18 @@ MODULE_CACHE = {} _re_kernel = re.compile(r'vmlinuz(.*)') _re_initrd = re.compile(r'initrd(.*).img') +def setup_logger(name): + logger = logging.getLogger(name) + logger.setLevel(logging.INFO) + try: + ch = logging.FileHandler("/var/log/cobbler/cobbler.log") + except: + raise CX(_("No write permissions on log file. Are you root?")) + ch.setLevel(logging.INFO) + formatter = logging.Formatter("%(asctime)s - %(name)s - %(message)s") + ch.setFormatter(formatter) + logger.addHandler(ch) + return logger def log_exc(logger): """ -- cgit