From 54421fd308149c4b6623557f072a64131bd728ab Mon Sep 17 00:00:00 2001 From: Marius Mauch Date: Sun, 11 Feb 2007 01:13:56 +0000 Subject: Make subpackage naming consistent svn path=/main/trunk/; revision=5955 --- pym/elog_modules | 2 +- pym/portage/__init__.py | 104 ------------------------- pym/portage/dbapi/vartree.py | 3 +- pym/portage/elog/__init__.py | 111 +++++++++++++++++++++++++++ pym/portage/elog/mod_custom.py | 16 ++++ pym/portage/elog/mod_mail.py | 22 ++++++ pym/portage/elog/mod_mail_summary.py | 40 ++++++++++ pym/portage/elog/mod_save.py | 21 +++++ pym/portage/elog/mod_save_summary.py | 23 ++++++ pym/portage/elog/mod_syslog.py | 17 ++++ pym/portage/elog_modules/__init__.py | 0 pym/portage/elog_modules/mod_custom.py | 16 ---- pym/portage/elog_modules/mod_mail.py | 22 ------ pym/portage/elog_modules/mod_mail_summary.py | 40 ---------- pym/portage/elog_modules/mod_save.py | 21 ----- pym/portage/elog_modules/mod_save_summary.py | 23 ------ pym/portage/elog_modules/mod_syslog.py | 17 ---- 17 files changed, 253 insertions(+), 245 deletions(-) create mode 100644 pym/portage/elog/__init__.py create mode 100644 pym/portage/elog/mod_custom.py create mode 100644 pym/portage/elog/mod_mail.py create mode 100644 pym/portage/elog/mod_mail_summary.py create mode 100644 pym/portage/elog/mod_save.py create mode 100644 pym/portage/elog/mod_save_summary.py create mode 100644 pym/portage/elog/mod_syslog.py delete mode 100644 pym/portage/elog_modules/__init__.py delete mode 100644 pym/portage/elog_modules/mod_custom.py delete mode 100644 pym/portage/elog_modules/mod_mail.py delete mode 100644 pym/portage/elog_modules/mod_mail_summary.py delete mode 100644 pym/portage/elog_modules/mod_save.py delete mode 100644 pym/portage/elog_modules/mod_save_summary.py delete mode 100644 pym/portage/elog_modules/mod_syslog.py diff --git a/pym/elog_modules b/pym/elog_modules index 32f0ca7fb..6b14e4bbf 120000 --- a/pym/elog_modules +++ b/pym/elog_modules @@ -1 +1 @@ -portage/elog_modules \ No newline at end of file +portage/elog \ No newline at end of file diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index 7f0ed6fd3..ff5b319c2 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -458,110 +458,6 @@ class digraph: print "(%s)" % self.nodes[node][0][child] -_elog_atexit_handlers = [] -def elog_process(cpv, mysettings): - mylogfiles = listdir(mysettings["T"]+"/logging/") - # shortcut for packages without any messages - if len(mylogfiles) == 0: - return - # exploit listdir() file order so we process log entries in chronological order - mylogfiles.reverse() - all_logentries = {} - for f in mylogfiles: - msgfunction, msgtype = f.split(".") - if msgfunction not in portage.const.EBUILD_PHASES: - writemsg("!!! can't process invalid log file: %s\n" % f, - noiselevel=-1) - continue - if not msgfunction in all_logentries: - all_logentries[msgfunction] = [] - msgcontent = open(mysettings["T"]+"/logging/"+f, "r").readlines() - all_logentries[msgfunction].append((msgtype, msgcontent)) - - def filter_loglevels(logentries, loglevels): - # remove unwanted entries from all logentries - rValue = {} - loglevels = map(str.upper, loglevels) - for phase in logentries.keys(): - for msgtype, msgcontent in logentries[phase]: - if msgtype.upper() in loglevels or "*" in loglevels: - if not rValue.has_key(phase): - rValue[phase] = [] - rValue[phase].append((msgtype, msgcontent)) - return rValue - - my_elog_classes = set(mysettings.get("PORTAGE_ELOG_CLASSES", "").split()) - default_logentries = filter_loglevels(all_logentries, my_elog_classes) - - # in case the filters matched all messages and no module overrides exist - if len(default_logentries) == 0 and (not ":" in mysettings.get("PORTAGE_ELOG_SYSTEM", "")): - return - - def combine_logentries(logentries): - # generate a single string with all log messages - rValue = "" - for phase in portage.const.EBUILD_PHASES: - if not phase in logentries: - continue - for msgtype,msgcontent in logentries[phase]: - rValue += "%s: %s\n" % (msgtype, phase) - for line in msgcontent: - rValue += line - rValue += "\n" - return rValue - - default_fulllog = combine_logentries(default_logentries) - - # pass the processing to the individual modules - logsystems = mysettings["PORTAGE_ELOG_SYSTEM"].split() - for s in logsystems: - # allow per module overrides of PORTAGE_ELOG_CLASSES - if ":" in s: - s, levels = s.split(":", 1) - levels = levels.split(",") - mod_logentries = filter_loglevels(all_logentries, levels) - mod_fulllog = combine_logentries(mod_logentries) - else: - mod_logentries = default_logentries - mod_fulllog = default_fulllog - if len(mod_logentries) == 0: - continue - # - is nicer than _ for module names, so allow people to use it. - s = s.replace("-", "_") - try: - # FIXME: ugly ad.hoc import code - # TODO: implement a common portage module loader - logmodule = __import__("portage.elog_modules.mod_"+s) - m = getattr(logmodule, "mod_"+s) - def timeout_handler(signum, frame): - raise portage.exception.PortageException( - "Timeout in elog_process for system '%s'" % s) - import signal - signal.signal(signal.SIGALRM, timeout_handler) - # Timeout after one minute (in case something like the mail - # module gets hung). - signal.alarm(60) - try: - m.process(mysettings, cpv, mod_logentries, mod_fulllog) - finally: - signal.alarm(0) - if hasattr(m, "finalize") and not m.finalize in _elog_atexit_handlers: - _elog_atexit_handlers.append(m.finalize) - atexit_register(m.finalize, mysettings) - except (ImportError, AttributeError), e: - writemsg("!!! Error while importing logging modules " + \ - "while loading \"mod_%s\":\n" % str(s)) - writemsg("%s\n" % str(e), noiselevel=-1) - except portage.exception.PortageException, e: - writemsg("%s\n" % str(e), noiselevel=-1) - - # clean logfiles to avoid repetitions - for f in mylogfiles: - try: - os.unlink(os.path.join(mysettings["T"], "logging", f)) - except OSError: - pass - #parse /etc/env.d and generate /etc/profile.env def env_update(makelinks=1, target_root=None, prev_mtimes=None, contents=None): diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py index 1e2cceac5..4afe4a247 100644 --- a/pym/portage/dbapi/vartree.py +++ b/pym/portage/dbapi/vartree.py @@ -4,6 +4,7 @@ from portage.data import portage_gid, portage_uid from portage.dbapi import dbapi from portage.dep import dep_getslot, use_reduce, paren_reduce, isvalidatom, \ isjustname, dep_getkey, match_from_list +from portage.elog import elog_process from portage.exception import InvalidPackageName, InvalidAtom, \ UnsupportedAPIException, FileNotFound from portage.locks import lockdir, unlockdir @@ -15,7 +16,7 @@ from portage.util import apply_secpass_permissions, ConfigProtect, ensure_dirs, from portage.versions import pkgsplit, catpkgsplit, catsplit, best, pkgcmp from portage import listdir, dep_expand, config, flatten, key_expand, \ - doebuild_environment, doebuild, elog_process, env_update, dircache, \ + doebuild_environment, doebuild, env_update, dircache, \ abssymlink, movefile, bsd_chflags import os, sys, stat, cPickle, errno, commands, copy, time diff --git a/pym/portage/elog/__init__.py b/pym/portage/elog/__init__.py new file mode 100644 index 000000000..5ba49793d --- /dev/null +++ b/pym/portage/elog/__init__.py @@ -0,0 +1,111 @@ +from portage.const import EBUILD_PHASES +from portage.exception import PortageException +from portage.process import atexit_register +from portage.util import writemsg + +from portage import listdir + +import os + +_elog_atexit_handlers = [] +def elog_process(cpv, mysettings): + mylogfiles = listdir(mysettings["T"]+"/logging/") + # shortcut for packages without any messages + if len(mylogfiles) == 0: + return + # exploit listdir() file order so we process log entries in chronological order + mylogfiles.reverse() + all_logentries = {} + for f in mylogfiles: + msgfunction, msgtype = f.split(".") + if msgfunction not in EBUILD_PHASES: + writemsg("!!! can't process invalid log file: %s\n" % f, + noiselevel=-1) + continue + if not msgfunction in all_logentries: + all_logentries[msgfunction] = [] + msgcontent = open(mysettings["T"]+"/logging/"+f, "r").readlines() + all_logentries[msgfunction].append((msgtype, msgcontent)) + + def filter_loglevels(logentries, loglevels): + # remove unwanted entries from all logentries + rValue = {} + loglevels = map(str.upper, loglevels) + for phase in logentries.keys(): + for msgtype, msgcontent in logentries[phase]: + if msgtype.upper() in loglevels or "*" in loglevels: + if not rValue.has_key(phase): + rValue[phase] = [] + rValue[phase].append((msgtype, msgcontent)) + return rValue + + my_elog_classes = set(mysettings.get("PORTAGE_ELOG_CLASSES", "").split()) + default_logentries = filter_loglevels(all_logentries, my_elog_classes) + + # in case the filters matched all messages and no module overrides exist + if len(default_logentries) == 0 and (not ":" in mysettings.get("PORTAGE_ELOG_SYSTEM", "")): + return + + def combine_logentries(logentries): + # generate a single string with all log messages + rValue = "" + for phase in EBUILD_PHASES: + if not phase in logentries: + continue + for msgtype, msgcontent in logentries[phase]: + rValue += "%s: %s\n" % (msgtype, phase) + for line in msgcontent: + rValue += line + rValue += "\n" + return rValue + + default_fulllog = combine_logentries(default_logentries) + + # pass the processing to the individual modules + logsystems = mysettings["PORTAGE_ELOG_SYSTEM"].split() + for s in logsystems: + # allow per module overrides of PORTAGE_ELOG_CLASSES + if ":" in s: + s, levels = s.split(":", 1) + levels = levels.split(",") + mod_logentries = filter_loglevels(all_logentries, levels) + mod_fulllog = combine_logentries(mod_logentries) + else: + mod_logentries = default_logentries + mod_fulllog = default_fulllog + if len(mod_logentries) == 0: + continue + # - is nicer than _ for module names, so allow people to use it. + s = s.replace("-", "_") + try: + # FIXME: ugly ad.hoc import code + # TODO: implement a common portage module loader + logmodule = __import__("portage.elog.mod_"+s) + m = getattr(logmodule, "mod_"+s) + def timeout_handler(signum, frame): + raise PortageException("Timeout in elog_process for system '%s'" % s) + import signal + signal.signal(signal.SIGALRM, timeout_handler) + # Timeout after one minute (in case something like the mail + # module gets hung). + signal.alarm(60) + try: + m.process(mysettings, cpv, mod_logentries, mod_fulllog) + finally: + signal.alarm(0) + if hasattr(m, "finalize") and not m.finalize in _elog_atexit_handlers: + _elog_atexit_handlers.append(m.finalize) + atexit_register(m.finalize, mysettings) + except (ImportError, AttributeError), e: + writemsg("!!! Error while importing logging modules " + \ + "while loading \"mod_%s\":\n" % str(s)) + writemsg("%s\n" % str(e), noiselevel=-1) + except portage.exception.PortageException, e: + writemsg("%s\n" % str(e), noiselevel=-1) + + # clean logfiles to avoid repetitions + for f in mylogfiles: + try: + os.unlink(os.path.join(mysettings["T"], "logging", f)) + except OSError: + pass diff --git a/pym/portage/elog/mod_custom.py b/pym/portage/elog/mod_custom.py new file mode 100644 index 000000000..5fae84078 --- /dev/null +++ b/pym/portage/elog/mod_custom.py @@ -0,0 +1,16 @@ +import portage.elog_modules.mod_save, portage.process, portage.exception + +def process(mysettings, cpv, logentries, fulltext): + elogfilename = portage.elog_modules.mod_save.process(mysettings, cpv, logentries, fulltext) + + if (not "PORTAGE_ELOG_COMMAND" in mysettings.keys()) \ + or len(mysettings["PORTAGE_ELOG_COMMAND"]) == 0: + raise portage.exception.MissingParameter("!!! Custom logging requested but PORTAGE_ELOG_COMMAND is not defined") + else: + mylogcmd = mysettings["PORTAGE_ELOG_COMMAND"] + mylogcmd = mylogcmd.replace("${LOGFILE}", elogfilename) + mylogcmd = mylogcmd.replace("${PACKAGE}", cpv) + retval = portage.process.spawn_bash(mylogcmd) + if retval != 0: + raise portage.exception.PortageException("!!! PORTAGE_ELOG_COMMAND failed with exitcode %d" % retval) + return diff --git a/pym/portage/elog/mod_mail.py b/pym/portage/elog/mod_mail.py new file mode 100644 index 000000000..b84555e8c --- /dev/null +++ b/pym/portage/elog/mod_mail.py @@ -0,0 +1,22 @@ +# portage.py -- core Portage functionality +# Copyright 1998-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +import portage.mail, socket + +def process(mysettings, cpv, logentries, fulltext): + if mysettings.has_key("PORTAGE_ELOG_MAILURI"): + myrecipient = mysettings["PORTAGE_ELOG_MAILURI"].split()[0] + else: + myrecipient = "root@localhost" + + myfrom = mysettings["PORTAGE_ELOG_MAILFROM"] + mysubject = mysettings["PORTAGE_ELOG_MAILSUBJECT"] + mysubject = mysubject.replace("${PACKAGE}", cpv) + mysubject = mysubject.replace("${HOST}", socket.getfqdn()) + + mymessage = portage.mail.create_message(myfrom, myrecipient, mysubject, fulltext) + portage.mail.send_mail(mysettings, mymessage) + + return diff --git a/pym/portage/elog/mod_mail_summary.py b/pym/portage/elog/mod_mail_summary.py new file mode 100644 index 000000000..99c285642 --- /dev/null +++ b/pym/portage/elog/mod_mail_summary.py @@ -0,0 +1,40 @@ +# portage.py -- core Portage functionality +# Copyright 1998-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id: mod_mail.py 3484 2006-06-10 22:38:44Z genone $ + +import portage.mail, socket, os, time +from email.MIMEText import MIMEText as TextMessage + +_items = {} +def process(mysettings, cpv, logentries, fulltext): + header = ">>> Messages generated for package %s by process %d on %s:\n\n" % \ + (cpv, os.getpid(), time.strftime("%Y%m%d-%H%M%S", time.gmtime(time.time()))) + _items[cpv] = header + fulltext + +def finalize(mysettings): + if len(_items) == 0: + return + elif len(_items) == 1: + count = "one package" + else: + count = "multiple packages" + if mysettings.has_key("PORTAGE_ELOG_MAILURI"): + myrecipient = mysettings["PORTAGE_ELOG_MAILURI"].split()[0] + else: + myrecipient = "root@localhost" + + myfrom = mysettings["PORTAGE_ELOG_MAILFROM"] + mysubject = mysettings["PORTAGE_ELOG_MAILSUBJECT"] + mysubject = mysubject.replace("${PACKAGE}", count) + mysubject = mysubject.replace("${HOST}", socket.getfqdn()) + + mybody = "elog messages for the following packages generated by " + \ + "process %d on host %s:\n" % (os.getpid(), socket.getfqdn()) + for cpv in _items.keys(): + mybody += "- %s\n" % cpv + + mymessage = portage.mail.create_message(myfrom, myrecipient, mysubject, mybody, attachments=_items.values()) + portage.mail.send_mail(mysettings, mymessage) + + return diff --git a/pym/portage/elog/mod_save.py b/pym/portage/elog/mod_save.py new file mode 100644 index 000000000..2993b45db --- /dev/null +++ b/pym/portage/elog/mod_save.py @@ -0,0 +1,21 @@ +import os, time +from portage.data import portage_uid, portage_gid + +def process(mysettings, cpv, logentries, fulltext): + cpv_path = cpv.replace("/", ":") + + if mysettings["PORT_LOGDIR"] != "": + elogdir = os.path.join(mysettings["PORT_LOGDIR"], "elog") + else: + elogdir = os.path.join(os.sep, "var", "log", "portage", "elog") + if not os.path.exists(elogdir): + os.makedirs(elogdir) + os.chown(elogdir, portage_uid, portage_gid) + os.chmod(elogdir, 02770) + + elogfilename = elogdir+"/"+cpv_path+":"+time.strftime("%Y%m%d-%H%M%S", time.gmtime(time.time()))+".log" + elogfile = open(elogfilename, "w") + elogfile.write(fulltext) + elogfile.close() + + return elogfilename diff --git a/pym/portage/elog/mod_save_summary.py b/pym/portage/elog/mod_save_summary.py new file mode 100644 index 000000000..eb453e587 --- /dev/null +++ b/pym/portage/elog/mod_save_summary.py @@ -0,0 +1,23 @@ +import os, time +from portage.data import portage_uid, portage_gid + +def process(mysettings, cpv, logentries, fulltext): + if mysettings["PORT_LOGDIR"] != "": + elogdir = os.path.join(mysettings["PORT_LOGDIR"], "elog") + else: + elogdir = os.path.join(os.sep, "var", "log", "portage", "elog") + if not os.path.exists(elogdir): + os.makedirs(elogdir) + os.chown(elogdir, portage_uid, portage_gid) + os.chmod(elogdir, 02770) + + # TODO: Locking + elogfilename = elogdir+"/summary.log" + elogfile = open(elogfilename, "a") + elogfile.write(">>> Messages generated by process %d on %s for package %s:\n\n" % \ + (os.getpid(), time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(time.time())), cpv)) + elogfile.write(fulltext) + elogfile.write("\n") + elogfile.close() + + return elogfilename diff --git a/pym/portage/elog/mod_syslog.py b/pym/portage/elog/mod_syslog.py new file mode 100644 index 000000000..77e1d4ea6 --- /dev/null +++ b/pym/portage/elog/mod_syslog.py @@ -0,0 +1,17 @@ +import syslog +from portage.const import EBUILD_PHASES + +def process(mysettings, cpv, logentries, fulltext): + syslog.openlog("portage", syslog.LOG_ERR | syslog.LOG_WARNING | syslog.LOG_INFO | syslog.LOG_NOTICE, syslog.LOG_LOCAL5) + for phase in EBUILD_PHASES: + if not phase in logentries: + continue + for msgtype,msgcontent in logentries[phase]: + pri = {"INFO": syslog.LOG_INFO, + "WARN": syslog.LOG_WARNING, + "ERROR": syslog.LOG_ERR, + "LOG": syslog.LOG_NOTICE, + "QA": syslog.LOG_WARNING} + msgtext = "".join(msgcontent) + syslog.syslog(pri[msgtype], "%s: %s: %s" % (cpv, phase, msgtext)) + syslog.closelog() diff --git a/pym/portage/elog_modules/__init__.py b/pym/portage/elog_modules/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/pym/portage/elog_modules/mod_custom.py b/pym/portage/elog_modules/mod_custom.py deleted file mode 100644 index 5fae84078..000000000 --- a/pym/portage/elog_modules/mod_custom.py +++ /dev/null @@ -1,16 +0,0 @@ -import portage.elog_modules.mod_save, portage.process, portage.exception - -def process(mysettings, cpv, logentries, fulltext): - elogfilename = portage.elog_modules.mod_save.process(mysettings, cpv, logentries, fulltext) - - if (not "PORTAGE_ELOG_COMMAND" in mysettings.keys()) \ - or len(mysettings["PORTAGE_ELOG_COMMAND"]) == 0: - raise portage.exception.MissingParameter("!!! Custom logging requested but PORTAGE_ELOG_COMMAND is not defined") - else: - mylogcmd = mysettings["PORTAGE_ELOG_COMMAND"] - mylogcmd = mylogcmd.replace("${LOGFILE}", elogfilename) - mylogcmd = mylogcmd.replace("${PACKAGE}", cpv) - retval = portage.process.spawn_bash(mylogcmd) - if retval != 0: - raise portage.exception.PortageException("!!! PORTAGE_ELOG_COMMAND failed with exitcode %d" % retval) - return diff --git a/pym/portage/elog_modules/mod_mail.py b/pym/portage/elog_modules/mod_mail.py deleted file mode 100644 index b84555e8c..000000000 --- a/pym/portage/elog_modules/mod_mail.py +++ /dev/null @@ -1,22 +0,0 @@ -# portage.py -- core Portage functionality -# Copyright 1998-2004 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -import portage.mail, socket - -def process(mysettings, cpv, logentries, fulltext): - if mysettings.has_key("PORTAGE_ELOG_MAILURI"): - myrecipient = mysettings["PORTAGE_ELOG_MAILURI"].split()[0] - else: - myrecipient = "root@localhost" - - myfrom = mysettings["PORTAGE_ELOG_MAILFROM"] - mysubject = mysettings["PORTAGE_ELOG_MAILSUBJECT"] - mysubject = mysubject.replace("${PACKAGE}", cpv) - mysubject = mysubject.replace("${HOST}", socket.getfqdn()) - - mymessage = portage.mail.create_message(myfrom, myrecipient, mysubject, fulltext) - portage.mail.send_mail(mysettings, mymessage) - - return diff --git a/pym/portage/elog_modules/mod_mail_summary.py b/pym/portage/elog_modules/mod_mail_summary.py deleted file mode 100644 index 99c285642..000000000 --- a/pym/portage/elog_modules/mod_mail_summary.py +++ /dev/null @@ -1,40 +0,0 @@ -# portage.py -- core Portage functionality -# Copyright 1998-2004 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id: mod_mail.py 3484 2006-06-10 22:38:44Z genone $ - -import portage.mail, socket, os, time -from email.MIMEText import MIMEText as TextMessage - -_items = {} -def process(mysettings, cpv, logentries, fulltext): - header = ">>> Messages generated for package %s by process %d on %s:\n\n" % \ - (cpv, os.getpid(), time.strftime("%Y%m%d-%H%M%S", time.gmtime(time.time()))) - _items[cpv] = header + fulltext - -def finalize(mysettings): - if len(_items) == 0: - return - elif len(_items) == 1: - count = "one package" - else: - count = "multiple packages" - if mysettings.has_key("PORTAGE_ELOG_MAILURI"): - myrecipient = mysettings["PORTAGE_ELOG_MAILURI"].split()[0] - else: - myrecipient = "root@localhost" - - myfrom = mysettings["PORTAGE_ELOG_MAILFROM"] - mysubject = mysettings["PORTAGE_ELOG_MAILSUBJECT"] - mysubject = mysubject.replace("${PACKAGE}", count) - mysubject = mysubject.replace("${HOST}", socket.getfqdn()) - - mybody = "elog messages for the following packages generated by " + \ - "process %d on host %s:\n" % (os.getpid(), socket.getfqdn()) - for cpv in _items.keys(): - mybody += "- %s\n" % cpv - - mymessage = portage.mail.create_message(myfrom, myrecipient, mysubject, mybody, attachments=_items.values()) - portage.mail.send_mail(mysettings, mymessage) - - return diff --git a/pym/portage/elog_modules/mod_save.py b/pym/portage/elog_modules/mod_save.py deleted file mode 100644 index 2993b45db..000000000 --- a/pym/portage/elog_modules/mod_save.py +++ /dev/null @@ -1,21 +0,0 @@ -import os, time -from portage.data import portage_uid, portage_gid - -def process(mysettings, cpv, logentries, fulltext): - cpv_path = cpv.replace("/", ":") - - if mysettings["PORT_LOGDIR"] != "": - elogdir = os.path.join(mysettings["PORT_LOGDIR"], "elog") - else: - elogdir = os.path.join(os.sep, "var", "log", "portage", "elog") - if not os.path.exists(elogdir): - os.makedirs(elogdir) - os.chown(elogdir, portage_uid, portage_gid) - os.chmod(elogdir, 02770) - - elogfilename = elogdir+"/"+cpv_path+":"+time.strftime("%Y%m%d-%H%M%S", time.gmtime(time.time()))+".log" - elogfile = open(elogfilename, "w") - elogfile.write(fulltext) - elogfile.close() - - return elogfilename diff --git a/pym/portage/elog_modules/mod_save_summary.py b/pym/portage/elog_modules/mod_save_summary.py deleted file mode 100644 index eb453e587..000000000 --- a/pym/portage/elog_modules/mod_save_summary.py +++ /dev/null @@ -1,23 +0,0 @@ -import os, time -from portage.data import portage_uid, portage_gid - -def process(mysettings, cpv, logentries, fulltext): - if mysettings["PORT_LOGDIR"] != "": - elogdir = os.path.join(mysettings["PORT_LOGDIR"], "elog") - else: - elogdir = os.path.join(os.sep, "var", "log", "portage", "elog") - if not os.path.exists(elogdir): - os.makedirs(elogdir) - os.chown(elogdir, portage_uid, portage_gid) - os.chmod(elogdir, 02770) - - # TODO: Locking - elogfilename = elogdir+"/summary.log" - elogfile = open(elogfilename, "a") - elogfile.write(">>> Messages generated by process %d on %s for package %s:\n\n" % \ - (os.getpid(), time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(time.time())), cpv)) - elogfile.write(fulltext) - elogfile.write("\n") - elogfile.close() - - return elogfilename diff --git a/pym/portage/elog_modules/mod_syslog.py b/pym/portage/elog_modules/mod_syslog.py deleted file mode 100644 index 77e1d4ea6..000000000 --- a/pym/portage/elog_modules/mod_syslog.py +++ /dev/null @@ -1,17 +0,0 @@ -import syslog -from portage.const import EBUILD_PHASES - -def process(mysettings, cpv, logentries, fulltext): - syslog.openlog("portage", syslog.LOG_ERR | syslog.LOG_WARNING | syslog.LOG_INFO | syslog.LOG_NOTICE, syslog.LOG_LOCAL5) - for phase in EBUILD_PHASES: - if not phase in logentries: - continue - for msgtype,msgcontent in logentries[phase]: - pri = {"INFO": syslog.LOG_INFO, - "WARN": syslog.LOG_WARNING, - "ERROR": syslog.LOG_ERR, - "LOG": syslog.LOG_NOTICE, - "QA": syslog.LOG_WARNING} - msgtext = "".join(msgcontent) - syslog.syslog(pri[msgtype], "%s: %s: %s" % (cpv, phase, msgtext)) - syslog.closelog() -- cgit v1.2.3-1-g7c22