author | Tero Marttila <terom@paivola.fi> |
Thu, 18 Oct 2012 23:06:23 +0300 | |
changeset 16 | 51509b5ce1c0 |
parent 15 | 66f81f4b6aa7 |
child 17 | 29f0cf9220e0 |
permissions | -rwxr-xr-x |
15
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
1 |
#!/usr/bin/env python |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
2 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
3 |
""" |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
4 |
Monitor DHCP use. |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
5 |
""" |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
6 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
7 |
__version__ = '0.0' |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
8 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
9 |
import pvl.args |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
10 |
import pvl.syslog.args |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
11 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
12 |
import pvl.verkko.db as db |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
13 |
import pvl.syslog.dhcp |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
14 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
15 |
import logging, optparse |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
16 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
17 |
log = logging.getLogger('main') |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
18 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
19 |
# name of process in syslog |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
20 |
DHCP_SYSLOG_PROG = 'dhcpd' |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
21 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
22 |
def parse_options (argv) : |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
23 |
""" |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
24 |
Parse command-line arguments. |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
25 |
""" |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
26 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
27 |
prog = argv[0] |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
28 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
29 |
parser = optparse.OptionParser( |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
30 |
prog = prog, |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
31 |
usage = '%prog: [options]', |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
32 |
version = __version__, |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
33 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
34 |
# module docstring |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
35 |
description = __doc__, |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
36 |
) |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
37 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
38 |
# options |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
39 |
parser.add_option_group(pvl.args.parser(parser)) |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
40 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
41 |
## syslog |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
42 |
parser.add_option_group(pvl.syslog.args.parser(parser, prog=DHCP_SYSLOG_PROG)) |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
43 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
44 |
## XXX: networks |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
45 |
parser.add_option('--network', metavar='NET', action='append', |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
46 |
help="Filter leases by network prefix as plugin instance") |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
47 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
48 |
parser.add_option('--gateway', metavar='GW/IFACE', action='append', |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
49 |
help="Filter messages by gateway/interface as plugin instance") |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
50 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
51 |
## hosts |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
52 |
parser.add_option('--database', metavar='URI', |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
53 |
help="Track hosts in given database") |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
54 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
55 |
parser.add_option('--create', action='store_true', |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
56 |
help="Initialize database") |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
57 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
58 |
# defaults |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
59 |
parser.set_defaults( |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
60 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
61 |
) |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
62 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
63 |
# parse |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
64 |
options, args = parser.parse_args(argv[1:]) |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
65 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
66 |
# apply |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
67 |
pvl.args.apply(options, prog) |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
68 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
69 |
if not options.database : |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
70 |
parser.error("Missing required option: --database") |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
71 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
72 |
return options, args |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
73 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
74 |
class DHCPHostsDatabase (db.Database) : |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
75 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
76 |
def create (self) : |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
77 |
""" |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
78 |
CREATE TABLEs |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
79 |
""" |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
80 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
81 |
log.info("Creating database tables: dhcp_hosts") |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
82 |
db.dhcp_hosts.create(self.engine) |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
83 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
84 |
def insert (self, attrs) : |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
85 |
""" |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
86 |
INSERT new host |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
87 |
""" |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
88 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
89 |
query = db.dhcp_hosts.insert().values( |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
90 |
ip = attrs['ip'], |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
91 |
mac = attrs['mac'], |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
92 |
gw = attrs['gw'], |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
93 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
94 |
first_seen = attrs['timestamp'], |
16
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
95 |
count = 1, |
15
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
96 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
97 |
last_seen = attrs['timestamp'], |
16
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
98 |
state = attrs['state'], |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
99 |
|
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
100 |
name = attrs.get('name'), |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
101 |
error = attrs.get('error'), |
15
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
102 |
) |
16
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
103 |
result = self.engine.execute(query) |
15
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
104 |
id, = result.inserted_primary_key |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
105 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
106 |
return id |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
107 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
108 |
def update (self, attrs) : |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
109 |
""" |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
110 |
UPDATE existing host, or return False if not found. |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
111 |
""" |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
112 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
113 |
table = db.dhcp_hosts |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
114 |
|
16
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
115 |
query = table.update() |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
116 |
query = query.where((table.c.ip == attrs['ip']) & (table.c.mac == attrs['mac']) & (table.c.gw == attrs['gw'])) |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
117 |
query = query.values( |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
118 |
count = db.func.coalesce(table.c.count, 0) + 1, |
15
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
119 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
120 |
# set |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
121 |
last_seen = attrs['timestamp'], |
16
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
122 |
state = attrs['state'], |
15
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
123 |
) |
16
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
124 |
|
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
125 |
if 'name' in attrs : |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
126 |
query = query.values(name = attrs['name']) |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
127 |
|
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
128 |
if 'error' in attrs : |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
129 |
query = query.values(error = attrs['error']) |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
130 |
|
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
131 |
result = self.engine.execute(query) |
15
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
132 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
133 |
# any matched rows? |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
134 |
return result.rowcount > 0 |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
135 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
136 |
def process (self, item) : |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
137 |
""" |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
138 |
Process given DHCP syslog message to update the hosts table. |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
139 |
""" |
16
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
140 |
|
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
141 |
attrs = {} |
15
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
142 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
143 |
# ignore unless we have enough info to fully identify the client |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
144 |
# this means that we omit DHCPDISCOVER messages, but we get the OFFER/REQUEST/ACK |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
145 |
if any(name not in item for name in ('lease', 'hwaddr', 'gateway')) : |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
146 |
# ignore; we require these |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
147 |
return |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
148 |
|
16
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
149 |
# do not override error from request on NAK; clear otherwise |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
150 |
if item.get('type') == 'DHCPNAK' : |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
151 |
pass |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
152 |
else : |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
153 |
attrs['error'] = item.get('error') |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
154 |
|
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
155 |
# do not override name unless known |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
156 |
if item.get('name') : |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
157 |
attrs['name'] = item.get('name') |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
158 |
|
15
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
159 |
# db: syslog |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
160 |
ATTR_MAP = ( |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
161 |
('ip', 'lease'), |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
162 |
('mac', 'hwaddr'), |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
163 |
('gw', 'gateway'), |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
164 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
165 |
('timestamp', 'timestamp'), |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
166 |
('state', 'type'), |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
167 |
) |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
168 |
|
16
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
169 |
# generic attrs |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
170 |
for key, name in ATTR_MAP : |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
171 |
attrs[key] = item.get(name) |
15
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
172 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
173 |
# update existing? |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
174 |
if self.update(attrs) : |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
175 |
log.info("Update: %s", attrs) |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
176 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
177 |
else : |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
178 |
# new |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
179 |
log.info("Insert: %s", attrs) |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
180 |
self.insert(attrs) |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
181 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
182 |
class DHCPSyslogHandler (object) : |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
183 |
""" |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
184 |
Process lines from syslog |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
185 |
""" |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
186 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
187 |
def __init__ (self, db) : |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
188 |
self.db = db |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
189 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
190 |
# XXX |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
191 |
self.filter = pvl.syslog.dhcp.DHCPSyslogFilter() |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
192 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
193 |
def process (self, item) : |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
194 |
""" |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
195 |
Handle a single item read from syslog to DB. |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
196 |
filter = pvl.syslog.dhcp.DHCPSyslogFilter() |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
197 |
""" |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
198 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
199 |
dhcp_item = self.filter.parse(item['msg']) |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
200 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
201 |
if not dhcp_item : |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
202 |
# ignore |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
203 |
return |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
204 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
205 |
dhcp_item['timestamp'] = item['timestamp'] # XXX: fixup DHCPSyslogParser? |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
206 |
|
16
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
207 |
if item.get('error') : |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
208 |
item['error'] = self.filter.parse_error(item['error']) |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
209 |
|
15
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
210 |
self.db.process(dhcp_item) |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
211 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
212 |
def main (self, source, poll) : |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
213 |
""" |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
214 |
Read items from syslog source with given polling style. |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
215 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
216 |
TODO: poll = false on SIGINT |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
217 |
""" |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
218 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
219 |
parser = pvl.syslog.parser.SyslogParser() |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
220 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
221 |
# mainloop |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
222 |
while True : |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
223 |
# process from source |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
224 |
for item in parser.process(source) : |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
225 |
self.process(item) |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
226 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
227 |
if poll is False : |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
228 |
# done |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
229 |
break |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
230 |
else : |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
231 |
# wait |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
232 |
source.poll(poll) |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
233 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
234 |
log.debug("tick") |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
235 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
236 |
def main (argv) : |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
237 |
options, args = parse_options(argv) |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
238 |
|
16
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
239 |
# db |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
240 |
if not options.database : |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
241 |
log.error("No database given") |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
242 |
return 1 |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
243 |
|
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
244 |
log.info("Open up database: %s", options.database) |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
245 |
database = DHCPHostsDatabase(options.database) |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
246 |
|
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
247 |
if options.create : |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
248 |
database.create() |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
249 |
|
15
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
250 |
# syslog |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
251 |
log.info("Open up syslog...") |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
252 |
syslog_parser = pvl.syslog.parser.SyslogParser(prog=DHCP_SYSLOG_PROG) # filter by prog |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
253 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
254 |
if options.syslog_fifo : |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
255 |
source = pvl.syslog.fifo.Fifo(options.syslog_fifo) |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
256 |
poll = None # no timeout |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
257 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
258 |
elif options.syslog_tail : |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
259 |
# continuous file tail |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
260 |
source = pvl.syslog.tail.TailFile(options.syslog_file) |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
261 |
poll = options.syslog_tail # polling interval |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
262 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
263 |
elif options.syslog_file : |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
264 |
# one-shot file read |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
265 |
source = pvl.syslog.tail.TailFile(options.syslog_file) |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
266 |
poll = False # do not poll-loop |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
267 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
268 |
else : |
16
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
269 |
log.warning("No syslog source given") |
51509b5ce1c0
request per session, move to postgres, rename columns, fixup state/name/error handling in updates
Tero Marttila <terom@paivola.fi>
parents:
15
diff
changeset
|
270 |
return 0 |
15
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
271 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
272 |
# handler + main |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
273 |
handler = DHCPSyslogHandler(database) |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
274 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
275 |
log.info("Enter mainloop...") |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
276 |
handler.main(source, poll) |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
277 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
278 |
# done |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
279 |
return 0 |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
280 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
281 |
if __name__ == '__main__': |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
282 |
import sys |
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
283 |
|
66f81f4b6aa7
bin/pvl.verkko-dhcp: re-implement syslog -> database based on pvl.collectd-dhcp; uses pvl.syslog from pvl-collectd
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
284 |
sys.exit(main(sys.argv)) |