def processCleanUpJobReport(self,statusCode): """ _processCleanUpJobReport_ Arguments: None Return: None """ # // # // Generate a report # // report = FwkJobReport() report.name = "cleanUp" report.status = "Failed" if statusCode == 0 : report.status = "Success" for lfnRemovedFile in self.success: report.addRemovedFile(lfnRemovedFile, self.seName) for lfnUnremovedFile in self.failed: report.addUnremovedFile(lfnUnremovedFile, self.seName) report.exitCode = statusCode report.jobSpecId = self.state.jobSpecNode.jobName report.jobType = self.state.jobSpecNode.jobType report.workflowSpecId = self.state.jobSpecNode.workflow report.write("./FrameworkJobReport.xml") # // # // Ensure this report gets added to the job-wide report #// toplevelReport = os.path.join(os.environ['PRODAGENT_JOB_DIR'],"FrameworkJobReport.xml") newReport = os.path.join(os.getcwd(), "FrameworkJobReport.xml") mergeReports(toplevelReport, newReport)
def __fwkJobReportCommon(self, jobSpecLoaded, workerNodeInfo): """ __fwkJobReportCommon_ Create a new job report and fill it in with generic information that is not dependent on the outcome of the job. The jobSpecLoaded parameter is a reference to an instance of the JobSpec class that has been initialized with the job spec that we are generating a report for. """ #workerNodeInfo = RandomAllocationPlugin().allocateJob() try: jobSpecPayload = jobSpecLoaded.payload newReport = FwkJobReport() newReport.jobSpecId = jobSpecPayload.jobName newReport.jobType = jobSpecPayload.type newReport.workflowSpecId = jobSpecPayload.workflow newReport.name = jobSpecPayload.name #get information from the super class newReport.siteDetails['SiteName'] = workerNodeInfo['SiteName'] #HostName is the same as worker_node name newReport.siteDetails['HostName'] = workerNodeInfo['HostName'] newReport.siteDetails['se-name'] = workerNodeInfo['se-name'] newReport.siteDetails['ce-name'] = workerNodeInfo['ce-name'] newReport.addLogFile("/path/to/log/archive", "some.random.se.cern.ch") return jobSpecPayload, newReport except Exception, ex: #msg = "Unable to Publish Report for %s\n" % jobSpecPayload.jobName #msg += "Since It is not known to the JobState System:\n" msg = str(ex) logging.error(msg) raise RuntimeError, msg