From 574dede5efaaf39dd93c91dfb01fc08b03164282 Mon Sep 17 00:00:00 2001 From: Thierry Carrez Date: Thu, 23 Nov 2017 15:31:09 +0100 Subject: Ignore syslog settings if /dev/log is not present When journald crashes, the /dev/log socket is not present and rootwrap calls fail with an unclear error message. Ignore syslog configuration, log a warning and proceed in those cases. Change-Id: I4152593696ad63a977f127da3b00934feb14b069 Closes-Bug: #1730949 --- oslo_rootwrap/wrapper.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/oslo_rootwrap/wrapper.py b/oslo_rootwrap/wrapper.py index dd223fa..3b63866 100644 --- a/oslo_rootwrap/wrapper.py +++ b/oslo_rootwrap/wrapper.py @@ -99,10 +99,17 @@ class RootwrapConfig(object): def setup_syslog(execname, facility, level): + try: + handler = logging.handlers.SysLogHandler(address='/dev/log', + facility=facility) + except IOError: + logging.warning("Unable to setup syslog, maybe /dev/log socket needs " + "to be restarted. Ignoring syslog configuration " + "options.") + return + rootwrap_logger = logging.getLogger() rootwrap_logger.setLevel(level) - handler = logging.handlers.SysLogHandler(address='/dev/log', - facility=facility) handler.setFormatter(logging.Formatter( os.path.basename(execname) + ': %(message)s')) rootwrap_logger.addHandler(handler) -- cgit v1.2.1