1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 from glob import glob
31 from ConfigParser import ConfigParser
32 import os
33
34 DEFAULT_UID = 'root'
35 DEFAULT_GID = 'root'
36 DEFAULT_PERMS = 'idmef:w admin:r'
37
39 """détermine les fichiers à charger et l'ordre de prise en compte"""
40 conf_files = []
41 fics = glob(os.path.join(zephir_dir, 'zephir_conf', 'prelude_*.ini'))
42 fics.sort()
43 for std_f in ('eole', 'acad'):
44 std_file = os.path.join(zephir_dir, 'zephir_conf', 'prelude_%s.ini' % std_f)
45 if std_file in fics:
46 conf_files.append(std_file)
47 fics.remove(std_file)
48
49 conf_files.extend(fics)
50 return conf_files
51
53 """création de la liste des fichiers de définition"""
54 conf_files = get_conf_files(zephir_dir)
55
56 options = {}
57
58 for conf_file in conf_files:
59 conf_p = ConfigParser()
60 conf_p.read(conf_file)
61 for sonde in conf_p.sections():
62 perms = uid = gid = services = None
63
64 if sonde in options:
65 uid, gid, services = options[sonde]
66 if conf_p.has_option(sonde, 'permissions'):
67 perms = conf_p.get(sonde, 'permissions')
68 else:
69 perms = perms or DEFAULT_PERMS
70 if conf_p.has_option(sonde, 'uid'):
71 uid = conf_p.get(sonde, 'uid')
72 else:
73 uid = uid or DEFAULT_UID
74 if conf_p.has_option(sonde, 'gid'):
75 gid = conf_p.get(sonde, 'gid')
76 else:
77 gid = gid or DEFAULT_GID
78 if conf_p.has_option(sonde, 'services'):
79 services = conf_p.get(sonde, 'services').split(',')
80 else:
81 services = services or [sonde]
82
83 options[sonde] = [perms, uid, gid, services]
84 return options
85