[tor-commits] [nyx/master] Updated --log commandline argument and startup.events

atagar at torproject.org atagar at torproject.org
Tue Jun 7 17:30:02 UTC 2016


commit 14ddf7331ad0bf5b7c766090b869055448accaba
Author: Sambuddha Basu <sambuddhabasu1 at gmail.com>
Date:   Sun Jun 5 20:35:47 2016 -0700

    Updated --log commandline argument and startup.events
---
 nyx/arguments.py  | 26 ++++++++++++++++++++++++--
 nyx/panel/log.py  |  4 ++--
 test/arguments.py |  8 ++++----
 3 files changed, 30 insertions(+), 8 deletions(-)

diff --git a/nyx/arguments.py b/nyx/arguments.py
index ad8ea4a..6627eb1 100644
--- a/nyx/arguments.py
+++ b/nyx/arguments.py
@@ -24,7 +24,7 @@ DEFAULT_ARGS = {
   'user_provided_socket': False,
   'config': os.path.join(DATA_DIR, 'nyxrc'),
   'debug_path': None,
-  'logged_events': 'N3',
+  'logged_events': 'NOTICE,NYX_NOTICE',
   'print_version': False,
   'print_help': False,
 }
@@ -135,7 +135,7 @@ def parse(argv):
       args['debug_path'] = os.path.expanduser(arg)
     elif opt in ('-l', '--log'):
       try:
-        expand_events(arg)
+        validate_events(arg)
       except ValueError as exc:
         raise ValueError(msg('usage.unrecognized_log_flags', flags = exc))
 
@@ -183,6 +183,28 @@ def get_version():
   )
 
 
+def validate_events(events):
+  """
+  Check whether the events are any one of Tor runlevels, Nyx runlevels or
+  Tor events.
+  """
+
+  valid_events = set(TOR_EVENT_TYPES.values() + nyx.log.NYX_RUNLEVELS)
+  accepted_events, invalid_events = set(), set()
+
+  events = events.split(',')
+  for event in events:
+    if event in valid_events:
+      accepted_events.update([event])
+    else:
+      invalid_events.update([event])
+
+  if invalid_events:
+    raise ValueError(','.join(invalid_events))
+  else:
+    return accepted_events
+
+
 def expand_events(flags):
   """
   Expands event abbreviations to their full names. Beside mappings provided in
diff --git a/nyx/panel/log.py b/nyx/panel/log.py
index d7b4ede..9c2eb68 100644
--- a/nyx/panel/log.py
+++ b/nyx/panel/log.py
@@ -39,7 +39,7 @@ CONFIG = conf.config_dict('nyx', {
   'features.log.prepopulate': True,
   'features.log.prepopulateReadLimit': 5000,
   'features.log.regex': [],
-  'startup.events': 'N3',
+  'startup.events': 'NOTICE,NYX_NOTICE',
 }, conf_handler)
 
 UPDATE_RATE = 0.3
@@ -68,7 +68,7 @@ class LogPanel(nyx.panel.DaemonPanel):
   def __init__(self):
     nyx.panel.DaemonPanel.__init__(self, 'log', UPDATE_RATE)
 
-    logged_events = nyx.arguments.expand_events(CONFIG['startup.events'])
+    logged_events = nyx.arguments.validate_events(CONFIG['startup.events'])
     self._event_log = nyx.log.LogGroup(CONFIG['cache.log_panel.size'], group_by_day = True)
     self._event_log_paused = None
     self._event_types = nyx.log.listen_for_events(self._register_tor_event, logged_events)
diff --git a/test/arguments.py b/test/arguments.py
index 76c6d38..a0f678e 100644
--- a/test/arguments.py
+++ b/test/arguments.py
@@ -28,8 +28,8 @@ class TestArgumentParsing(unittest.TestCase):
     args = parse(['--debug', '/tmp/dump'])
     self.assertEqual('/tmp/dump', args.debug_path)
 
-    args = parse(['--log', 'D1'])
-    self.assertEqual('D1', args.logged_events)
+    args = parse(['--log', 'DEBUG,NYX_DEBUG'])
+    self.assertEqual('DEBUG,NYX_DEBUG', args.logged_events)
 
     args = parse(['--version'])
     self.assertEqual(True, args.print_version)
@@ -41,8 +41,8 @@ class TestArgumentParsing(unittest.TestCase):
     args = parse(['-i', '1643'])
     self.assertEqual(1643, args.control_port)
 
-    args = parse(['-l', 'we', '-c', '/tmp/cfg'])
-    self.assertEqual('we', args.logged_events)
+    args = parse(['-l', 'WARN,ERR', '-c', '/tmp/cfg'])
+    self.assertEqual('WARN,ERR', args.logged_events)
     self.assertEqual('/tmp/cfg', args.config)
 
   def test_that_we_reject_unrecognized_arguments(self):





More information about the tor-commits mailing list