Exemple #1
0
    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