1
2
3
4
5
6
7
8
9
10
11 __doc__ ='''IpServiceLoader
12
13 A script to load the IANA well known port numbers.
14
15 $Id: IpServiceLoader.py,v 1.5 2004/04/15 23:47:50 edahl Exp $'''
16
17 __version__ = "$Revision: 1.5 $"[11:-2]
18
19 import os
20 import re
21
22 import Globals
23
24 from Products.ZenUtils.BasicLoader import BasicLoader
25
26 from Products.ZenModel.IpService import getIpServiceKey
27 from Products.ZenModel.IpServiceClass import IpServiceClass
28
30
31 lineparse = re.compile(r"^(\S+)\s+(\d+)/(\S+)(.*)")
32
33
42
43
44 - def loaderBody(self, line):
45 if line.startswith("#"): return
46 m = self.lineparse.search(line)
47 if not m: return
48 keyword, port, proto, descr = m.groups()
49 descr = descr.strip()
50 port = int(port)
51 svc = self.privserv.find(keyword)
52 portkey = getIpServiceKey(proto, port)
53 if not svc:
54 serviceKeys = (keyword, portkey)
55 svc = IpServiceClass(keyword, serviceKeys=serviceKeys,
56 description=descr, port=port)
57 if port < 1024:
58 self.privserv.serviceclasses._setObject(svc.id, svc)
59 else:
60 self.regserv.serviceclasses._setObject(svc.id, svc)
61 self.log.info("Added IpServiceClass %s" % keyword)
62 else:
63 svc.addServiceKey(portkey)
64
65
66 if __name__ == "__main__":
67 loader = IpServiceLoader()
68 loader.loadDatabase()
69 print "Database Load is finished!"
70