path: root/bin/
diff options
authorJeroen van Meeuwen (Kolab Systems) <>2011-09-26 11:15:02 +0100
committerJeroen van Meeuwen (Kolab Systems) <>2011-09-26 11:15:02 +0100
commit8d8404ed73c89f32de7fe8344e364099c4de1a90 (patch)
tree85286163215f4962aa25f1592f62437e7adc5f1c /bin/
parent4c13cbbcedafb8c1483dd31e71e0cee8ef47476c (diff)
Add telemetry log parsing capabilities
Diffstat (limited to 'bin/')
1 files changed, 87 insertions, 0 deletions
diff --git a/bin/ b/bin/
new file mode 100755
index 0000000..546b10e
--- /dev/null
+++ b/bin/
@@ -0,0 +1,87 @@
+# Copyright 2010-2011 Kolab Systems AG (
+# Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen a>
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 3 or, at your option, any later version
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# GNU Library General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+import os
+import rfc822
+import socket
+import sys
+import time
+from optparse import OptionParser
+from ConfigParser import SafeConfigParser
+import sqlalchemy
+from sqlalchemy import Boolean
+from sqlalchemy import Column
+from sqlalchemy import Date
+from sqlalchemy import DateTime
+from sqlalchemy import ForeignKey
+from sqlalchemy import Integer
+from sqlalchemy import MetaData
+from sqlalchemy import String
+from sqlalchemy import Table
+from sqlalchemy import Text
+from sqlalchemy import create_engine
+from sqlalchemy.orm import mapper
+from sqlalchemy.orm import relationship
+ from sqlalchemy.orm import sessionmaker
+ from sqlalchemy.orm import create_session
+from sqlalchemy.schema import Index
+from sqlalchemy.schema import UniqueConstraint
+import pykolab
+from pykolab.auth import Auth
+from pykolab.constants import KOLAB_LIB_PATH
+from pykolab import telemetry
+from pykolab.translate import _
+# TODO: Figure out how to make our logger do some syslogging as well.
+log = pykolab.getLogger('pykolab.parse_telemetry')
+# TODO: Removing the stdout handler would mean one can no longer test by
+# means of manual execution in debug mode.
+conf = pykolab.getConf()
+auth = Auth()
+db = telemetry.init_db()
+while True:
+ try:
+ log_file = conf.cli_args.pop(0)
+ except:
+ # TODO: More verbose failing or parse all in /var/lib/imap/log/ or
+ # options?
+ break
+ telemetry_log = telemetry.TelemetryLog(log_file)