[svn] commit: r2141 - in /branches/trac176/src: bin/xfrout/tests/xfrout_test.py bin/xfrout/xfrout.py.in bin/xfrout/xfrout.spec.pre.in lib/python/isc/log/log.py lib/python/isc/log/tests/log_test.py
BIND 10 source code commits
bind10-changes at lists.isc.org
Thu Jun 17 06:49:54 UTC 2010
Author: chenzhengzhang
Date: Thu Jun 17 06:49:54 2010
New Revision: 2141
Log:
-Modified logging formatter
-Modified logging configuration names, all of them prefixed with "log_"
-Modified Xfrout unittest, add log in __init__() method
-Using mkstemp in logging unittest
Modified:
branches/trac176/src/bin/xfrout/tests/xfrout_test.py
branches/trac176/src/bin/xfrout/xfrout.py.in
branches/trac176/src/bin/xfrout/xfrout.spec.pre.in
branches/trac176/src/lib/python/isc/log/log.py
branches/trac176/src/lib/python/isc/log/tests/log_test.py
Modified: branches/trac176/src/bin/xfrout/tests/xfrout_test.py
==============================================================================
--- branches/trac176/src/bin/xfrout/tests/xfrout_test.py (original)
+++ branches/trac176/src/bin/xfrout/tests/xfrout_test.py Thu Jun 17 06:49:54 2010
@@ -75,7 +75,8 @@
def setUp(self):
request = MySocket(socket.AF_INET,socket.SOCK_STREAM)
- self.xfrsess = MyXfroutSession(request, None, None)
+ self.log = isc.log.NSLogger('xfrout', '', severity = 'critical', log_to_console = False )
+ self.xfrsess = MyXfroutSession(request, None, None, self.log)
self.xfrsess.server = Dbserver()
self.mdata = b'\xd6=\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x07example\x03com\x00\x00\xfc\x00\x01'
self.sock = MySocket(socket.AF_INET,socket.SOCK_STREAM)
@@ -238,10 +239,6 @@
reply_msg = self.sock.read_msg()
self.assertEqual(reply_msg.get_rr_count(section.ANSWER()), 2)
- # set event
- self.xfrsess.server._shutdown_event.set()
- self.assertRaises(XfroutException, self.xfrsess._reply_xfrout_query, self.getmsg(), self.sock, "example.com.")
-
class MyUnixSockServer(UnixSockServer):
def __init__(self):
self._lock = threading.Lock()
@@ -249,6 +246,7 @@
self._shutdown_event = threading.Event()
self._db_file = "initdb.file"
self._max_transfers_out = 10
+ self._log = isc.log.NSLogger('xfrout', '', severity = 'critical', log_to_console = False )
class TestUnixSockServer(unittest.TestCase):
def setUp(self):
Modified: branches/trac176/src/bin/xfrout/xfrout.py.in
==============================================================================
--- branches/trac176/src/bin/xfrout/xfrout.py.in (original)
+++ branches/trac176/src/bin/xfrout/xfrout.py.in Thu Jun 17 06:49:54 2010
@@ -50,10 +50,6 @@
MAX_TRANSFERS_OUT = 10
VERBOSE_MODE = False
-
-class XfroutException(Exception): pass
-
-
class XfroutSession(BaseRequestHandler):
def __init__(self, request, client_address, server, log):
BaseRequestHandler.__init__(self, request, client_address, server)
@@ -62,7 +58,7 @@
def handle(self):
fd = recv_fd(self.request.fileno())
if fd < 0:
- raise XfroutException("failed to receive the FD for XFR connection")
+ self._log.log_message("error", "Failed to receive the FD for XFR connection")
data_len = self.request.recv(2)
msg_len = struct.unpack('!H', data_len)[0]
msgdata = self.request.recv(msg_len)
@@ -73,9 +69,6 @@
self._log.log_message("error", str(e))
sock.close()
-
- def setLogger(self, logger):
- self._log = logger
def _parse_query_message(self, mdata):
''' parse query message to [socket,message]'''
@@ -251,7 +244,7 @@
# the message length to know if the rrset has been added sucessfully.
for rr_data in sqlite3_ds.get_zone_datas(zone_name, self.server.get_db_file()):
if self.server._shutdown_event.is_set(): # Check if xfrout is shutdown
- raise XfroutException("shutdown!")
+ self._log.log_message("error", "shutdown!")
if rr_type(rr_data[5]) == rr_type.SOA(): #ignore soa record
continue
@@ -270,9 +263,6 @@
self._send_message_with_last_soa(msg, sock, rrset_soa)
- def log_msg(self, msg):
- print('[b10-xfrout] ', msg)
-
class UnixSockServer(ThreadingUnixStreamServer):
'''The unix domain socket server which accept xfr query sent from auth server.'''
@@ -280,8 +270,8 @@
def __init__(self, sock_file, handle_class, shutdown_event, config_data, log):
try:
os.unlink(sock_file)
- except:
- pass
+ except Exception as e:
+ self._log.log_message("error", str(e))
self._sock_file = sock_file
ThreadingUnixStreamServer.__init__(self, sock_file, handle_class)
@@ -296,12 +286,11 @@
self.RequestHandlerClass(request, client_address, self, self._log)
def shutdown(self):
- self._log.log_message('warning', 'Xfrout process is shutting down!')
ThreadingUnixStreamServer.shutdown(self)
try:
os.unlink(self._sock_file)
- except:
- self._log.log_message('error', 'OS unlink sock file exception while shutting down')
+ except Exception as e:
+ self._log.log_message("error", str(e))
def update_config_data(self, new_config):
'''Apply the new config setting of xfrout module. '''
@@ -356,8 +345,8 @@
self._config_data = self._cc.get_full_config()
self._cc.start()
self._log = isc.log.NSLogger(self._config_data.get('log_name'), self._config_data.get('log_file'),
- self._config_data.get('severity'), self._config_data.get('versions'),
- self._config_data.get('max_bytes'), True)
+ self._config_data.get('log_severity'), self._config_data.get('log_versions'),
+ self._config_data.get('log_max_bytes'), True)
self._start_xfr_query_listener()
Modified: branches/trac176/src/bin/xfrout/xfrout.spec.pre.in
==============================================================================
--- branches/trac176/src/bin/xfrout/xfrout.spec.pre.in (original)
+++ branches/trac176/src/bin/xfrout/xfrout.spec.pre.in Thu Jun 17 06:49:54 2010
@@ -24,22 +24,22 @@
"item_name": "log_file",
"item_type": "string",
"item_optional": False,
- "item_default": '@@LOCALSTATEDIR@@/Xfrout.log'
+ "item_default": '@@LOCALSTATEDIR@@/@PACKAGE@/log/Xfrout.log'
},
{
- "item_name": "severity",
+ "item_name": "log_severity",
"item_type": "string",
"item_optional": False,
"item_default": "debug"
},
{
- "item_name": "versions",
+ "item_name": "log_versions",
"item_type": "integer",
"item_optional": False,
"item_default": 5
},
{
- "item_name": "max_bytes",
+ "item_name": "log_max_bytes",
"item_type": "integer",
"item_optional": False,
"item_default": 1048576
Modified: branches/trac176/src/lib/python/isc/log/log.py
==============================================================================
--- branches/trac176/src/lib/python/isc/log/log.py (original)
+++ branches/trac176/src/lib/python/isc/log/log.py Thu Jun 17 06:49:54 2010
@@ -31,13 +31,18 @@
'error' : logging.ERROR,
'critical' : logging.CRITICAL}
+
FORMATTER = logging.Formatter("%(name)s: %(levelname)s: %(message)s")
-TIME_FORMATTER = logging.Formatter("%(asctime)s: %(name)s: %(levelname)s: %(message)s")
+TIME_FORMATTER = logging.Formatter("%(asctime)s.%(msecs)03d %(name)s: %(levelname)s: %(message)s",
+ "%d-%b-%Y %H:%M:%S")
class NSFileLogHandler(logging.handlers.RotatingFileHandler):
"""RotatingFileHandler: replace RotatingFileHandler with a custom handler"""
def __init__(self, filename, mode='a', maxBytes=0, backupCount=0, encoding=None, delay=0):
+ dir = os.path.split(filename)
+ if not (os.path.exists(dir[0])):
+ os.makedirs(dir[0])
super(NSFileLogHandler, self).__init__(filename, mode, maxBytes,
backupCount, encoding, delay)
@@ -202,15 +207,15 @@
if(log_file_str):
self._log_file = log_file_str
- severity_str = config_data.get('severity')
+ severity_str = config_data.get('log_severity')
if(severity_str):
self._severity = severity_str
- versions_str = config_data.get('versions')
+ versions_str = config_data.get('log_versions')
if(versions_str):
self._versions = int(versions_str)
- max_bytes_str = config_data.get('max_bytes')
+ max_bytes_str = config_data.get('log_max_bytes')
if(max_bytes_str):
self._max_bytes = int(max_bytes_str)
Modified: branches/trac176/src/lib/python/isc/log/tests/log_test.py
==============================================================================
--- branches/trac176/src/lib/python/isc/log/tests/log_test.py (original)
+++ branches/trac176/src/lib/python/isc/log/tests/log_test.py Thu Jun 17 06:49:54 2010
@@ -2,42 +2,45 @@
import unittest
import os
import sys
-
-FILE_LOG1 = '/tmp/b10_file1.log'
-FILE_LOG2 = '/tmp/b10_file2.log'
-FILE_LOG3 = '/tmp/ZZZZ/b10_file2.log'
-
-FILE_STREAM_LOG1 = '/tmp/b10_file_stream1.log'
-FILE_STREAM_LOG2 = '/tmp/b10_file_stream2.log'
-FILE_STREAM_LOG3 = '/tmp/b10_file_stream2.log'
+import tempfile
class TestRotateFileHandler(unittest.TestCase):
def setUp(self):
- self.handler = NSFileLogHandler(filename = FILE_LOG1, maxBytes = 1024, backupCount = 5)
+ self.FILE_LOG1 = tempfile.mkstemp()
+ self.FILE_LOG2 = tempfile.mkstemp()
+ self.FILE_LOG3 = tempfile.mkstemp()
+ self.handler = NSFileLogHandler(filename = self.FILE_LOG1[1], maxBytes = 1024, backupCount = 5)
def test_shouldRollover(self):
- if(os.path.exists(FILE_LOG1)):
- os.remove(FILE_LOG1)
+ if(os.path.exists(self.FILE_LOG1[1])):
+ os.remove(self.FILE_LOG1[1])
record = logging.LogRecord(None, None, "", 0, "rotate file handler", (), None, None)
self.handler.shouldRollover(record)
- self.assertTrue(os.path.exists(FILE_LOG1))
+ self.assertTrue(os.path.exists(self.FILE_LOG1[1]))
def test_update_config(self):
- self.handler.update_config(FILE_LOG2, 3, 512)
- self.assertEqual(self.handler.baseFilename, FILE_LOG2)
+ self.handler.update_config(self.FILE_LOG2[1], 3, 512)
+ self.assertEqual(self.handler.baseFilename, self.FILE_LOG2[1])
self.assertEqual(self.handler.maxBytes, 512)
self.assertEqual(self.handler.backupCount, 3)
- dir = os.path.split(FILE_LOG3)
- if not os.path.exists(dir[0]):
- self.handler.update_config(FILE_LOG3, 4, 1024)
- self.assertEqual(self.handler.baseFilename, FILE_LOG2)
+ dir = os.path.split(self.FILE_LOG3[1])
+ path = dir[0] + "path_not_exists"
+ update_file = os.path.join(path, dir[1])
+
+ if not os.path.exists(path):
+ self.handler.update_config(update_file, 4, 1024)
+ self.assertEqual(self.handler.baseFilename, self.FILE_LOG2[1])
self.assertEqual(self.handler.maxBytes, 1024)
self.assertEqual(self.handler.backupCount, 4)
def tearDown(self):
+ os.close(self.FILE_LOG1[0])
+ os.close(self.FILE_LOG2[0])
+ os.unlink(self.FILE_LOG1[1])
+ os.unlink(self.FILE_LOG2[1])
self.handler.flush()
self.handler.close()
@@ -45,7 +48,10 @@
class TestLogging(unittest.TestCase):
def setUp(self):
- self.file_stream_logger = NSLogger('File_Stream_Logger', FILE_STREAM_LOG1,
+ self.FILE_STREAM_LOG1 = tempfile.mkstemp()
+ self.FILE_STREAM_LOG2 = tempfile.mkstemp()
+ self.FILE_STREAM_LOG3 = tempfile.mkstemp()
+ self.file_stream_logger = NSLogger('File_Stream_Logger', self.FILE_STREAM_LOG1[1],
'debug', 5, 1024, True)
self.syslog_logger = NSLogger('SysLogger', '', 'info', 5, 1024, False)
@@ -84,11 +90,11 @@
ret = self.syslog_logger._file_handler in self.syslog_logger.handlers
self.assertFalse(ret)
- self.syslog_logger._add_rotate_handler(FILE_STREAM_LOG1, 5, 1024)
+ self.syslog_logger._add_rotate_handler(self.FILE_STREAM_LOG1[1], 5, 1024)
ret = self.syslog_logger._file_handler in self.syslog_logger.handlers
self.assertTrue(ret)
- def test_add__stream_handler(self):
+ def test_add_stream_handler(self):
if(self.file_stream_logger._stream_handler in self.file_stream_logger.handlers):
self.file_stream_logger.removeHandler(self.file_stream_logger._stream_handler)
@@ -105,7 +111,7 @@
self.assertTrue(ret)
def test_update_rotate_handler(self):
- self.file_stream_logger._update_rotate_handler(FILE_STREAM_LOG2, 4, 1024)
+ self.file_stream_logger._update_rotate_handler(self.FILE_STREAM_LOG2[1], 4, 1024)
ret = self.file_stream_logger._file_handler in self.file_stream_logger.handlers
self.assertTrue(ret)
@@ -113,33 +119,38 @@
ret = self.file_stream_logger._file_handler in self.file_stream_logger.handlers
self.assertFalse(ret)
- self.file_stream_logger._update_rotate_handler(FILE_STREAM_LOG1, 4, 1024)
+ self.file_stream_logger._update_rotate_handler(self.FILE_STREAM_LOG1[1], 4, 1024)
ret = self.file_stream_logger._file_handler in self.file_stream_logger.handlers
self.assertTrue(ret)
def test_update_config(self):
- update_config = {'log_file' : FILE_STREAM_LOG1,
- 'severity' : 'error',
- 'versions' : 4,
- 'max_bytes' : 1024}
+ update_config = {'log_file' : self.FILE_STREAM_LOG1[1],
+ 'log_severity' : 'error',
+ 'log_versions' : 4,
+ 'log_max_bytes' : 1024}
self.file_stream_logger.update_config(update_config)
logLevel = LEVELS.get('error', logging.NOTSET)
self.assertEqual(self.file_stream_logger.getEffectiveLevel(), logLevel)
def test_log_message(self):
- update_config = {'log_file' : FILE_STREAM_LOG3,
- 'severity' : 'critical',
- 'versions' : 4,
- 'max_bytes' : 1024}
+ update_config = {'log_file' : self.FILE_STREAM_LOG3[1],
+ 'log_severity' : 'critical',
+ 'log_versions' : 4,
+ 'log_max_bytes' : 1024}
self.file_stream_logger.update_config(update_config)
self.file_stream_logger.log_message('debug', 'debug message')
self.file_stream_logger.log_message('info', 'info message')
self.file_stream_logger.log_message('warning', 'warning message')
self.file_stream_logger.log_message('error', 'error message')
- self.assertFalse(os.path.exists(FILE_STREAM_LOG3))
+ self.assertTrue(os.path.exists(self.FILE_STREAM_LOG3[1]))
def tearDown(self):
- pass
+ os.close(self.FILE_STREAM_LOG1[0])
+ os.unlink(self.FILE_STREAM_LOG1[1])
+ os.close(self.FILE_STREAM_LOG2[0])
+ os.unlink(self.FILE_STREAM_LOG2[1])
+ os.close(self.FILE_STREAM_LOG3[0])
+ os.unlink(self.FILE_STREAM_LOG3[1])
if __name__ == '__main__':
unittest.main()
More information about the bind10-changes
mailing list