diff options
| author | Christian Poessinger <christian@poessinger.com> | 2020-05-29 19:39:40 +0200 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-05-29 19:39:40 +0200 | 
| commit | d40daeaa4d099bfa9afa4ab2d3a217289aa51100 (patch) | |
| tree | 32c95826d5e66ebb16c4a8f3d22f9249390820bc /python | |
| parent | d7ae866ec5221b42bc9bea5b40dd7f7c0c4d78bd (diff) | |
| parent | 5f4335042cf40bf4bf18294706cce0b3a2fd5907 (diff) | |
| download | vyos-1x-d40daeaa4d099bfa9afa4ab2d3a217289aa51100.tar.gz vyos-1x-d40daeaa4d099bfa9afa4ab2d3a217289aa51100.zip | |
Merge pull request #439 from thomas-mangin/T2088-explicit-airbag
airbag :T2088: make airbag explicit
Diffstat (limited to 'python')
| -rw-r--r-- | python/vyos/airbag.py | 36 | 
1 files changed, 10 insertions, 26 deletions
| diff --git a/python/vyos/airbag.py b/python/vyos/airbag.py index b7838d8a2..510ab7f46 100644 --- a/python/vyos/airbag.py +++ b/python/vyos/airbag.py @@ -17,17 +17,20 @@ import sys  from datetime import datetime  from vyos import debug -from vyos.config import Config  from vyos.logger import syslog  from vyos.version import get_version  from vyos.version import get_full_version_data -# we allow to disable the extra logging -DISABLE = False + +def enable(log=True): +    if log: +        _intercepting_logger() +    _intercepting_exceptions()  _noteworthy = [] +  def noteworthy(msg):      """      noteworthy can be use to take note things which we may not want to @@ -45,8 +48,6 @@ class _IO(object):      def write(self, message):          self.std.write(message) -        if DISABLE: -            return          for line in message.split('\n'):              s = line.rstrip()              if s: @@ -90,14 +91,14 @@ def bug_report(dtype, value, trace):  # define an exception handler to be run when an exception  # reach the end of __main__ and was not intercepted -def intercepter(dtype, value, trace): +def _intercepter(dtype, value, trace):      bug_report(dtype, value, trace)      if debug.enabled('developer'):          import pdb          pdb.pm() -def InterceptingLogger(_singleton=[False]): +def _intercepting_logger(_singleton=[False]):      skip = _singleton.pop()      _singleton.append(True)      if skip: @@ -110,7 +111,7 @@ def InterceptingLogger(_singleton=[False]):  # lists as default arguments in function is normally dangerous  # as they will keep any modification performed, unless this is  # what you want to do (in that case to only run the code once) -def InterceptingException(excepthook,_singleton=[False]): +def _intercepting_exceptions(_singleton=[False]):      skip = _singleton.pop()      _singleton.append(True)      if skip: @@ -118,24 +119,7 @@ def InterceptingException(excepthook,_singleton=[False]):      # install the handler to replace the default behaviour      # which just prints the exception trace on screen -    sys.excepthook = excepthook - - -# Do not attempt the extra logging for operational commands -try: -    # This fails during boot -    insession = Config().in_session() -except: -    # we save info on boot to help debugging -    insession = True - - -# Installing the interception, it currently does not work when -# running testing so we are checking that we are on the router -# as otherwise it prevents dpkg-buildpackage to work -if get_version() and insession: -    InterceptingLogger() -    InterceptingException(intercepter) +    sys.excepthook = _intercepter  # Messages to print | 
