diff options
author | Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> | 2011-09-26 11:15:02 +0100 |
---|---|---|
committer | Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> | 2011-09-26 11:15:02 +0100 |
commit | 8d8404ed73c89f32de7fe8344e364099c4de1a90 (patch) | |
tree | 85286163215f4962aa25f1592f62437e7adc5f1c /bin/kolab_parse_telemetry.py | |
parent | 4c13cbbcedafb8c1483dd31e71e0cee8ef47476c (diff) | |
download | pykolab-8d8404ed73c89f32de7fe8344e364099c4de1a90.tar.gz |
Add telemetry log parsing capabilities
Diffstat (limited to 'bin/kolab_parse_telemetry.py')
-rwxr-xr-x | bin/kolab_parse_telemetry.py | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/bin/kolab_parse_telemetry.py b/bin/kolab_parse_telemetry.py new file mode 100755 index 0000000..546b10e --- /dev/null +++ b/bin/kolab_parse_telemetry.py @@ -0,0 +1,87 @@ +#!/usr/bin/python +# +# Copyright 2010-2011 Kolab Systems AG (http://www.kolabsys.com) +# +# Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen a kolabsys.com> +# +# 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 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# 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 +try: + from sqlalchemy.orm import sessionmaker +except: + from sqlalchemy.orm import create_session + +from sqlalchemy.schema import Index +from sqlalchemy.schema import UniqueConstraint + +sys.path.append('..') +sys.path.append('../..') + +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. +#log.remove_stdout_handler() + +conf = pykolab.getConf() +conf.finalize_conf() + +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) + +telemetry.expire_sessions() |