9
9
except ImportError :
10
10
import simplejson as json
11
11
12
+ BUF = 1024
12
13
EXCEPT = set (['reporter' , 'verbose_mode' ])
13
14
14
15
def parse_promise_status (lines , filt ):
@@ -20,10 +21,11 @@ def parse_promise_status(lines, filt):
20
21
return None , None
21
22
22
23
def get_promise_status ():
24
+ global BUF
23
25
with open ('/var/cfengine/promise_summary.log' , 'r' ) as f :
24
- f .seek (- 256 , os .SEEK_END )
26
+ f .seek (- BUF , os .SEEK_END )
25
27
26
- d = f .read (256 )
28
+ d = f .read (BUF )
27
29
lines = d .splitlines ()[::- 1 ]
28
30
pt , ps = parse_promise_status (lines , 'Promises.cf' )
29
31
ft , fs = parse_promise_status (lines , 'Failsafe.cf' )
@@ -41,11 +43,23 @@ def get_classes():
41
43
buf .append (line )
42
44
return buf [- 3 :]
43
45
46
+ def get_custom_classes ():
47
+ try :
48
+ classes = []
49
+ with open ('/etc/igdconf/cf-classes' , 'r' ) as f :
50
+ for line in f :
51
+ if line .strip ().startswith ('#' ):
52
+ continue
53
+ classes .extend (line .split ())
54
+ return classes
55
+ except IOError :
56
+ return None
44
57
45
58
pt , ft , status = get_promise_status ()
46
59
print json .dumps ({
47
60
"status" : status ,
48
61
"last_run" : pt ,
49
62
"last_update" : ft ,
50
63
"classes" : get_classes (),
64
+ "custom_classes" : get_custom_classes (),
51
65
})
0 commit comments