Skip to content

Commit 4ecad04

Browse files
author
Kjell Braden
committed
cf3: larger promise_summary read buffer, custom class support
1 parent f42b7dd commit 4ecad04

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

library/cf3

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ try:
99
except ImportError:
1010
import simplejson as json
1111

12+
BUF = 1024
1213
EXCEPT = set(['reporter', 'verbose_mode'])
1314

1415
def parse_promise_status(lines, filt):
@@ -20,10 +21,11 @@ def parse_promise_status(lines, filt):
2021
return None, None
2122

2223
def get_promise_status():
24+
global BUF
2325
with open('/var/cfengine/promise_summary.log', 'r') as f:
24-
f.seek(-256, os.SEEK_END)
26+
f.seek(-BUF, os.SEEK_END)
2527

26-
d = f.read(256)
28+
d = f.read(BUF)
2729
lines = d.splitlines()[::-1]
2830
pt, ps = parse_promise_status(lines, 'Promises.cf')
2931
ft, fs = parse_promise_status(lines, 'Failsafe.cf')
@@ -41,11 +43,23 @@ def get_classes():
4143
buf.append(line)
4244
return buf[-3:]
4345

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
4457

4558
pt, ft, status = get_promise_status()
4659
print json.dumps({
4760
"status" : status,
4861
"last_run" : pt,
4962
"last_update" : ft,
5063
"classes" : get_classes(),
64+
"custom_classes" : get_custom_classes(),
5165
})

0 commit comments

Comments
 (0)