Skip to content

Commit 958de47

Browse files
authored
Merge pull request #51 from xlqiang-learn/master
Add example file read_JOB_FINISH_submitExt.py
2 parents 454bb05 + 57319c1 commit 958de47

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed

read_JOB_FINISH_submitExt.py

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
#!/usr/bin/env python3
2+
3+
from pythonlsf import lsf
4+
import sys
5+
6+
# Define function to get key and pair values from the eventrec.eventLog.jobFinishLog.submitExt
7+
def get_pair_from_submit_ext(submit_ext, id):
8+
if submit_ext is None:
9+
return None
10+
11+
12+
values_as_list = lsf.string_array_to_pylist(submit_ext.values, submit_ext.num)
13+
for i in range(submit_ext.num):
14+
key = lsf.intArray_getitem(submit_ext.keys, i)
15+
if key == id:
16+
return values_as_list[i]
17+
18+
return None
19+
20+
21+
def display(eventrec):
22+
"""
23+
display event record, this example to get the user group (-G) value from the JOB_FINISH record
24+
"""
25+
if eventrec.type == lsf.EVENT_JOB_FINISH:
26+
jobid = eventrec.eventLog.jobFinishLog.jobId
27+
fromHost = eventrec.eventLog.jobFinishLog.fromHost
28+
submit_ext=eventrec.eventLog.jobFinishLog.submitExt
29+
userGroup = get_pair_from_submit_ext(submit_ext,lsf.JDATA_EXT_USRGROUP)
30+
# jobgroup = eventrec.eventLog.jobFinishLog.jgroup
31+
# jobgroup = eventrec.eventLog.jobFinishLog.submitExt.values[1075]
32+
print("EVENT_JOB_FINISH jobid<%d>, fromHost<%s>, to jobgroup <%s>" %(jobid, fromHost, userGroup))
33+
else:
34+
print("event type is %d" %(eventrec.type))
35+
36+
def read_eventrec(path):
37+
"""
38+
read lsb.events
39+
"""
40+
lineNum = lsf.new_intp()
41+
lsf.intp_assign(lineNum, 0)
42+
fp = lsf.fopen(path, "r")
43+
if fp is None:
44+
print("The file %s does not exist." % path)
45+
sys.exit(1)
46+
47+
flag = 1
48+
49+
if lsf.lsb_init("test") > 0:
50+
exit(1)
51+
52+
while flag > 0:
53+
log = lsf.lsb_geteventrec(fp, lineNum)
54+
if log:
55+
display(log)
56+
else:
57+
flag = 0
58+
59+
60+
if __name__ == '__main__':
61+
if len(sys.argv) == 1:
62+
print("Usage: %s full_path_lsb.events_file" % (sys.argv[0]))
63+
sys.exit(0)
64+
65+
print("LSF Clustername is :", lsf.ls_getclustername())
66+
#read_eventrec("/opt/lsf8.0.1/work/cluster1/logdir/lsb.events")
67+
read_eventrec(sys.argv[1])

0 commit comments

Comments
 (0)