ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/CRAB/python/fillCrabFjr.py
Revision: 1.1
Committed: Tue Jun 3 09:06:51 2008 UTC (16 years, 10 months ago) by spiga
Content type: text/x-python
Branch: MAIN
Log Message:
just renamed JobReportErrorCode.py to fillCrabFjr.py, a minor cleaning on crab_template

File Contents

# User Rev Content
1 spiga 1.1 #!/usr/bin/env python
2     """
3     _fillCrabFjr.py
4    
5     Adds to the FJR the WrapperExitCode and the ExeExitCode
6    
7    
8     """
9     import os, string
10     import sys
11     import popen2
12    
13     from ProdCommon.FwkJobRep.ReportParser import readJobReport
14     from ProdCommon.FwkJobRep.FwkJobReport import FwkJobReport
15    
16     class fjrParser:
17     def __init__(self, argv):
18     try:
19     self.reportFileName = argv[1]
20     self.wrapperExitCode = argv[2]
21     except:
22     print "it is necessary to specify the fjr name"
23     sys.exit(2)
24     try:
25     self.exeExitCode = argv[3]
26     except:
27     self.exeExitCode=''
28     pass
29    
30     return
31    
32     def run(self):
33    
34     if not os.path.exists(self.reportFileName):
35     self.writeFJR()
36     else:
37     self.fillFJR()
38     self.setStatus()
39    
40     return
41    
42     def setStatus(self):
43     """
44     """
45     if (self.wrapperExitCode == '0') and (self.exeExitCode == '0'):
46     status = 'Success'
47     else:
48     status = 'Failed'
49    
50     jobReport = readJobReport(self.reportFileName)[0]
51     jobReport.status = status
52     jobReport.write(self.reportFileName)
53    
54     return
55    
56     def writeFJR(self):
57     """
58     """
59     fwjr = FwkJobReport()
60     fwjr.addError(self.wrapperExitCode, "WrapperExitCode")
61     if (self.exeExitCode != ""):
62     fwjr.addError(self.exeExitCode, "ExeExitCode")
63     fwjr.write(self.reportFileName)
64    
65     return
66    
67     def checkValidFJR(self):
68     """
69     """
70     valid = 0
71     fjr=open(self.reportFileName,'r')
72     lines = fjr.readlines()
73     if len(lines) > 0: valid = 1
74    
75     return valid
76    
77     def fillFJR(self):
78     """
79     """
80     valid = self.checkValidFJR()
81     if valid == 1:
82     jobReport = readJobReport(self.reportFileName)[0]
83     if (len(jobReport.errors) > 0):
84     error = 0
85     for err in jobReport.errors:
86     if err['Type'] == "WrapperExitCode" :
87     err['ExitStatus'] = self.wrapperExitCode
88     jobReport.write(self.reportFileName)
89     error = 1
90     if (self.exeExitCode != ""):
91     if err['Type'] == "ExeExitCode" :
92     err['ExitStatus'] = self.exeExitCode
93     jobReport.write(self.reportFileName)
94     error = 1
95     if (error == 0):
96     jobReport.addError(self.wrapperExitCode, "WrapperExitCode")
97     if (self.exeExitCode != ""):
98     jobReport.addError(self.exeExitCode, "ExeExitCode")
99     jobReport.write(self.reportFileName)
100     else:
101     jobReport.addError(self.wrapperExitCode, "WrapperExitCode")
102     if (self.exeExitCode != ""):
103     jobReport.addError(self.exeExitCode, "ExeExitCode")
104     jobReport.write(self.reportFileName)
105     else:
106     self.writeFJR()
107    
108     if __name__ == '__main__':
109     try:
110     FjrParser_ = fjrParser(sys.argv)
111     FjrParser_.run()
112     except:
113     pass
114