[yum-cvs] yum yum-updatesd.py,1.18,1.19

Jeremy Katz katzj at linux.duke.edu
Wed Sep 6 02:19:02 UTC 2006


Update of /home/groups/yum/cvs/yum
In directory login1.linux.duke.edu:/tmp/cvs-serv8383

Modified Files:
	yum-updatesd.py 
Log Message:
fix up logging


Index: yum-updatesd.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum-updatesd.py,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- yum-updatesd.py	4 Sep 2006 16:33:30 -0000	1.18
+++ yum-updatesd.py	6 Sep 2006 02:19:00 -0000	1.19
@@ -45,11 +45,10 @@
 
 import yum
 import yum.Errors
-from yum.logger import Logger, SysLogger, LogContainer
+import syslog
 from yum.config import BaseConfig, Option, IntOption, ListOption, BoolOption, \
                        IncludingConfigParser
 from yum.constants import *
-from yum.packages import YumInstalledPackage
 from yum.update_md import UpdateMetadata
 
 # FIXME: is it really sane to use this from here?
@@ -81,23 +80,64 @@
         pass
 
 class SyslogUpdateEmitter(UpdateEmitter):
-    def __init__(self, syslog_facility, ident = "yum-updatesd"):
+    def __init__(self, syslog_facility, ident = "yum-updatesd",
+                 level = "WARN"):
         UpdateEmitter.__init__(self)
-        syslog_object = SysLogger(threshold = 10, 
-                                      facility=syslog_facility,
-                                      ident='yum-updatesd')
-        self.syslog = LogContainer([syslog_object])
+        syslog.openlog(ident, 0, self._facilityMap(syslog_facility))
+        self.level = level
         
     def updatesAvailable(self, updateInfo):
         num = len(updateInfo)
+        level = self.level
         if num > 1:
             msg = "%d updates available" %(num,)
         elif num == 1:
             msg = "1 update available"
         else:
             msg = "No updates available"
+            level = syslog.LOG_DEBUG
+
+        syslog.syslog(self._levelMap(level), msg)
+
+    def _levelMap(self, lvl):
+        level_map = { "EMERG": syslog.LOG_EMERG,
+                      "ALERT": syslog.LOG_ALERT,
+                      "CRIT": syslog.LOG_CRIT,
+                      "ERR": syslog.LOG_ERR,
+                      "WARN": syslog.LOG_WARNING,
+                      "NOTICE": syslog.LOG_NOTICE,
+                      "INFO": syslog.LOG_INFO,
+                      "DEBUG": syslog.LOG_DEBUG }
+        if type(lvl) == type(int):
+            return lvl
+        if level_map.has_key(lvl.upper()):
+            return level_map[lvl.upper()]
+        return syslog.LOG_INFO
+
+    def _facilityMap(self, facility):
+        facility_map = { "KERN": syslog.LOG_KERN,
+                         "USER": syslog.LOG_USER,
+                         "MAIL": syslog.LOG_MAIL,
+                         "DAEMON": syslog.LOG_DAEMON,
+                         "AUTH": syslog.LOG_AUTH,
+                         "LPR": syslog.LOG_LPR,
+                         "NEWS": syslog.LOG_NEWS,
+                         "UUCP": syslog.LOG_UUCP,
+                         "CRON": syslog.LOG_CRON,
+                         "LOCAL0": syslog.LOG_LOCAL0,
+                         "LOCAL1": syslog.LOG_LOCAL1,
+                         "LOCAL2": syslog.LOG_LOCAL2,
+                         "LOCAL3": syslog.LOG_LOCAL3,
+                         "LOCAL4": syslog.LOG_LOCAL4,
+                         "LOCAL5": syslog.LOG_LOCAL5,
+                         "LOCAL6": syslog.LOG_LOCAL6,
+                         "LOCAL7": syslog.LOG_LOCAL7,}
+        if type(facility) == type(int):
+            return facility
+        elif facility_map.has_key(facility.upper()):
+            return facility_map[facility.upper()]
+        return syslog.LOG_DAEMON
 
-        self.syslog(0, msg)
 
 class EmailUpdateEmitter(UpdateEmitter):
     def __init__(self, sender, rcpt):
@@ -185,6 +225,7 @@
     updaterefresh = IntOption(3600)
     syslog_facility = Option("DAEMON")
     syslog_level = Option("WARN")
+    syslog_ident = Option("yum-updatesd")
     yum_config = Option("/etc/yum.conf")
 
 class UpdateDownloadThread(threading.Thread):
@@ -259,7 +300,9 @@
             self.emitters.append(EmailUpdateEmitter(self.opts.email_from,
                                                     self.opts.email_to))
         if 'syslog' in self.opts.emit_via:
-            self.emitters.append(SyslogUpdateEmitter(self.conf.syslog_facility))
+            self.emitters.append(SyslogUpdateEmitter(self.opts.syslog_facility,
+                                                     self.opts.syslog_ident,
+                                                     self.opts.syslog_level))
 
         self.updateInfo = []
         self.updateInfoTime = None
@@ -421,7 +464,6 @@
         # if we have a cached copy, use it
         if self.updateInfoTime and (time.time() - self.updateInfoTime <
                                     self.opts.updaterefresh):
-            print "returning cached"
             return self.updateInfo
             
         # try to get the lock so we can update the info.  fall back to
@@ -456,7 +498,6 @@
 
     def emitDownloading(self):
         """method to emit a notice about updates downloading"""
-        print "downloading some updates"
         map(lambda x: x.updatesDownloading(self.updateInfo), self.emitters)
 
     def emitUpdateApplied(self):
@@ -497,7 +538,6 @@
 
     @dbus.service.method("edu.duke.linux.yum")
     def GetUpdateInfo(self):
-        print "GetUpdateInfo"
         # FIXME: should this be async?
         upds = self.updd.getUpdateInfo()
         return upds




More information about the Yum-cvs-commits mailing list