Signed-off-by: Lucas Meneghel Rodrigues <[email protected]>
---
 client/virt/syslog_server.py            | 177 ++++++++++++++++++++++++++++++++
 client/virt/tests/unattended_install.py |   6 +-
 client/virt/virt_syslog_server.py       | 177 --------------------------------
 3 files changed, 180 insertions(+), 180 deletions(-)
 create mode 100644 client/virt/syslog_server.py
 delete mode 100644 client/virt/virt_syslog_server.py

diff --git a/client/virt/syslog_server.py b/client/virt/syslog_server.py
new file mode 100644
index 0000000..9b926a6
--- /dev/null
+++ b/client/virt/syslog_server.py
@@ -0,0 +1,177 @@
+import os, re, logging, SocketServer
+
+
+SYSLOG_PORT = 514
+DEFAULT_FORMAT = '[AutotestSyslog (%s.%s)] %s'
+
+
+def set_default_format(message_format):
+    '''
+    Changes the default message format
+
+    @type message_format: string
+    @param message_format: a message format string with 3 placeholders:
+                           facility, priority and message.
+    '''
+    global DEFAULT_FORMAT
+    DEFAULT_FORMAT = message_format
+
+
+def get_default_format():
+    '''
+    Returns the current default message format
+    '''
+    return DEFAULT_FORMAT
+
+
+class RequestHandler(SocketServer.BaseRequestHandler):
+    '''
+    A request handler that relays all received messages as DEBUG
+    '''
+
+    RECORD_RE = re.compile('\<(\d+)\>(.*)')
+
+    (LOG_EMERG,
+     LOG_ALERT,
+     LOG_CRIT,
+     LOG_ERR,
+     LOG_WARNING,
+     LOG_NOTICE,
+     LOG_INFO,
+     LOG_DEBUG) = range(8)
+
+    (LOG_KERN,
+     LOG_USER,
+     LOG_MAIL,
+     LOG_DAEMON,
+     LOG_AUTH,
+     LOG_SYSLOG,
+     LOG_LPR,
+     LOG_NEWS,
+     LOG_UUCP,
+     LOG_CRON,
+     LOG_AUTHPRIV,
+     LOG_FTP) = range(12)
+
+    (LOG_LOCAL0,
+     LOG_LOCAL1,
+     LOG_LOCAL2,
+     LOG_LOCAL3,
+     LOG_LOCAL4,
+     LOG_LOCAL5,
+     LOG_LOCAL6,
+     LOG_LOCAL7) = range(16, 24)
+
+    PRIORITY_NAMES = {
+        LOG_ALERT : "alert",
+        LOG_CRIT : "critical",
+        LOG_DEBUG : "debug",
+        LOG_EMERG : "emerg",
+        LOG_ERR : "err",
+        LOG_INFO : "info",
+        LOG_NOTICE : "notice",
+        LOG_WARNING: "warning"
+        }
+
+    FACILITY_NAMES = {
+        LOG_AUTH : "auth",
+        LOG_AUTHPRIV : "authpriv",
+        LOG_CRON : "cron",
+        LOG_DAEMON : "daemon",
+        LOG_FTP : "ftp",
+        LOG_KERN : "kern",
+        LOG_LPR : "lpr",
+        LOG_MAIL : "mail",
+        LOG_NEWS : "news",
+        LOG_AUTH : "security",
+        LOG_SYSLOG : "syslog",
+        LOG_USER : "user",
+        LOG_UUCP : "uucp",
+        LOG_LOCAL0 : "local0",
+        LOG_LOCAL1 : "local1",
+        LOG_LOCAL2 : "local2",
+        LOG_LOCAL3 : "local3",
+        LOG_LOCAL4 : "local4",
+        LOG_LOCAL5 : "local5",
+        LOG_LOCAL6 : "local6",
+        LOG_LOCAL7 : "local7",
+        }
+
+
+    def decodeFacilityPriority(self, priority):
+        '''
+        Decode both the facility and priority embedded in a syslog message
+
+        @type priority: integer
+        @param priority: an integer with facility and priority encoded
+        @return: a tuple with two strings
+        '''
+        f = priority >> 3
+        p = priority & 7
+        return (self.FACILITY_NAMES.get(f, 'unknown'),
+                self.PRIORITY_NAMES.get(p, 'unknown'))
+
+
+    def log(self, data, message_format=None):
+        '''
+        Logs the received message as a DEBUG message
+        '''
+        match = self.RECORD_RE.match(data)
+        if match:
+            if message_format is None:
+                message_format = get_default_format()
+            pri = int(match.groups()[0])
+            msg = match.groups()[1]
+            (facility_name, priority_name) = self.decodeFacilityPriority(pri)
+            logging.debug(message_format, facility_name, priority_name, msg)
+
+
+class RequestHandlerTcp(RequestHandler):
+    def handle(self):
+        '''
+        Handles a single request
+        '''
+        data = self.request.recv(4096)
+        self.log(data)
+
+
+class RequestHandlerUdp(RequestHandler):
+    def handle(self):
+        '''
+        Handles a single request
+        '''
+        data = self.request[0]
+        self.log(data)
+
+
+class SysLogServerUdp(SocketServer.UDPServer):
+    def __init__(self, address):
+        SocketServer.UDPServer.__init__(self, address, RequestHandlerUdp)
+
+
+class SysLogServerTcp(SocketServer.TCPServer):
+    def __init__(self, address):
+        SocketServer.TCPServer.__init__(self, address, RequestHandlerTcp)
+
+
+def syslog_server(address='', port=SYSLOG_PORT,
+                  tcp=True, terminate_callable=None):
+    if tcp:
+        klass = SysLogServerTcp
+    else:
+        klass = SysLogServerUdp
+    syslog = klass((address, port))
+
+    while True:
+        if terminate_callable is not None:
+            terminate = terminate_callable()
+        else:
+            terminate = False
+
+        if not terminate:
+            syslog.handle_request()
+
+
+if __name__ == '__main__':
+    logging.basicConfig(level=logging.DEBUG)
+    syslog_server()
diff --git a/client/virt/tests/unattended_install.py 
b/client/virt/tests/unattended_install.py
index ec53028..eb83324 100644
--- a/client/virt/tests/unattended_install.py
+++ b/client/virt/tests/unattended_install.py
@@ -4,7 +4,7 @@ import xml.dom.minidom
 from autotest.client.shared import error, iso9660
 from autotest.client import utils
 from autotest.client.virt import virt_vm, virt_utils, virt_utils_disk
-from autotest.client.virt import kvm_monitor, remote, virt_syslog_server
+from autotest.client.virt import kvm_monitor, remote, syslog_server
 from autotest.client.virt import http_server
 
 
@@ -746,13 +746,13 @@ def start_syslog_server_thread(address, port, tcp):
     global _syslog_server_thread
     global _syslog_server_thread_event
 
-    virt_syslog_server.set_default_format('[UnattendedSyslog '
+    syslog_server.set_default_format('[UnattendedSyslog '
                                           '(%s.%s)] %s')
 
     if _syslog_server_thread is None:
         _syslog_server_thread_event = threading.Event()
         _syslog_server_thread = threading.Thread(
-            target=virt_syslog_server.syslog_server,
+            target=syslog_server.syslog_server,
             args=(address, port, tcp, terminate_syslog_server_thread))
         _syslog_server_thread.start()
 
diff --git a/client/virt/virt_syslog_server.py 
b/client/virt/virt_syslog_server.py
deleted file mode 100644
index 9b926a6..0000000
--- a/client/virt/virt_syslog_server.py
+++ /dev/null
@@ -1,177 +0,0 @@
-import os, re, logging, SocketServer
-
-
-SYSLOG_PORT = 514
-DEFAULT_FORMAT = '[AutotestSyslog (%s.%s)] %s'
-
-
-def set_default_format(message_format):
-    '''
-    Changes the default message format
-
-    @type message_format: string
-    @param message_format: a message format string with 3 placeholders:
-                           facility, priority and message.
-    '''
-    global DEFAULT_FORMAT
-    DEFAULT_FORMAT = message_format
-
-
-def get_default_format():
-    '''
-    Returns the current default message format
-    '''
-    return DEFAULT_FORMAT
-
-
-class RequestHandler(SocketServer.BaseRequestHandler):
-    '''
-    A request handler that relays all received messages as DEBUG
-    '''
-
-    RECORD_RE = re.compile('\<(\d+)\>(.*)')
-
-    (LOG_EMERG,
-     LOG_ALERT,
-     LOG_CRIT,
-     LOG_ERR,
-     LOG_WARNING,
-     LOG_NOTICE,
-     LOG_INFO,
-     LOG_DEBUG) = range(8)
-
-    (LOG_KERN,
-     LOG_USER,
-     LOG_MAIL,
-     LOG_DAEMON,
-     LOG_AUTH,
-     LOG_SYSLOG,
-     LOG_LPR,
-     LOG_NEWS,
-     LOG_UUCP,
-     LOG_CRON,
-     LOG_AUTHPRIV,
-     LOG_FTP) = range(12)
-
-    (LOG_LOCAL0,
-     LOG_LOCAL1,
-     LOG_LOCAL2,
-     LOG_LOCAL3,
-     LOG_LOCAL4,
-     LOG_LOCAL5,
-     LOG_LOCAL6,
-     LOG_LOCAL7) = range(16, 24)
-
-    PRIORITY_NAMES = {
-        LOG_ALERT : "alert",
-        LOG_CRIT : "critical",
-        LOG_DEBUG : "debug",
-        LOG_EMERG : "emerg",
-        LOG_ERR : "err",
-        LOG_INFO : "info",
-        LOG_NOTICE : "notice",
-        LOG_WARNING: "warning"
-        }
-
-    FACILITY_NAMES = {
-        LOG_AUTH : "auth",
-        LOG_AUTHPRIV : "authpriv",
-        LOG_CRON : "cron",
-        LOG_DAEMON : "daemon",
-        LOG_FTP : "ftp",
-        LOG_KERN : "kern",
-        LOG_LPR : "lpr",
-        LOG_MAIL : "mail",
-        LOG_NEWS : "news",
-        LOG_AUTH : "security",
-        LOG_SYSLOG : "syslog",
-        LOG_USER : "user",
-        LOG_UUCP : "uucp",
-        LOG_LOCAL0 : "local0",
-        LOG_LOCAL1 : "local1",
-        LOG_LOCAL2 : "local2",
-        LOG_LOCAL3 : "local3",
-        LOG_LOCAL4 : "local4",
-        LOG_LOCAL5 : "local5",
-        LOG_LOCAL6 : "local6",
-        LOG_LOCAL7 : "local7",
-        }
-
-
-    def decodeFacilityPriority(self, priority):
-        '''
-        Decode both the facility and priority embedded in a syslog message
-
-        @type priority: integer
-        @param priority: an integer with facility and priority encoded
-        @return: a tuple with two strings
-        '''
-        f = priority >> 3
-        p = priority & 7
-        return (self.FACILITY_NAMES.get(f, 'unknown'),
-                self.PRIORITY_NAMES.get(p, 'unknown'))
-
-
-    def log(self, data, message_format=None):
-        '''
-        Logs the received message as a DEBUG message
-        '''
-        match = self.RECORD_RE.match(data)
-        if match:
-            if message_format is None:
-                message_format = get_default_format()
-            pri = int(match.groups()[0])
-            msg = match.groups()[1]
-            (facility_name, priority_name) = self.decodeFacilityPriority(pri)
-            logging.debug(message_format, facility_name, priority_name, msg)
-
-
-class RequestHandlerTcp(RequestHandler):
-    def handle(self):
-        '''
-        Handles a single request
-        '''
-        data = self.request.recv(4096)
-        self.log(data)
-
-
-class RequestHandlerUdp(RequestHandler):
-    def handle(self):
-        '''
-        Handles a single request
-        '''
-        data = self.request[0]
-        self.log(data)
-
-
-class SysLogServerUdp(SocketServer.UDPServer):
-    def __init__(self, address):
-        SocketServer.UDPServer.__init__(self, address, RequestHandlerUdp)
-
-
-class SysLogServerTcp(SocketServer.TCPServer):
-    def __init__(self, address):
-        SocketServer.TCPServer.__init__(self, address, RequestHandlerTcp)
-
-
-def syslog_server(address='', port=SYSLOG_PORT,
-                  tcp=True, terminate_callable=None):
-    if tcp:
-        klass = SysLogServerTcp
-    else:
-        klass = SysLogServerUdp
-    syslog = klass((address, port))
-
-    while True:
-        if terminate_callable is not None:
-            terminate = terminate_callable()
-        else:
-            terminate = False
-
-        if not terminate:
-            syslog.handle_request()
-
-
-if __name__ == '__main__':
-    logging.basicConfig(level=logging.DEBUG)
-    syslog_server()
-- 
1.7.11.2

_______________________________________________
Autotest-kernel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/autotest-kernel

Reply via email to