def updateHadoopIDAndJobStatus( self, JobID, HadoopID ): """ Insert HadoopID """ jobDB.setJobAttribute( JobID, "MinorStatus", "MapReducing Step, running with JobID: " + HadoopID ) tableName, _validStates, idName = self.__getTypeTuple( 'job' ) sqlUpdate = 'UPDATE %s SET BdJobSoftwareID= "%s" WHERE %s = %s' % ( tableName, HadoopID, idName, JobID ) return self._update( sqlUpdate )
def setIntoJobDBStatus( self, jobID, status, JobGroup, Site, jobBDSoftwareName ): jobReport = RPCClient( 'WorkloadManagement/JobStateUpdate' ) if status == "Running": self.log.verbose( 'setJobStatus(%s,%s,%s,%s)' % ( jobID, status, "Running with JobID: " + jobBDSoftwareName, 'BigDataMonitoring@%s' % Site ) ) jobStatus = jobReport.setJobStatus( int( jobID ), status, "MapReducing Step, running with JobID: " + jobBDSoftwareName, 'BigDataMonitoring@%s' % Site ) if not jobStatus['OK']: self.log.warn( jobStatus['Message'] ) jobSite = jobReport.setJobSite( int( jobID ), Site ) self.log.verbose( 'setJobSite(%s,%s)' % ( jobID, Site ) ) if not jobSite['OK']: self.log.warn( jobSite['Message'] ) jobDB.setJobAttribute( jobID, "ApplicationStatus", "Running MapReduce" ) if status == "Submitted": if ( jobBDSoftwareName != "" ): jobStatus = jobReport.setJobStatus( int( jobID ), status, "Job in Queue with JobId:" + jobBDSoftwareName, 'BigDataMonitoring@%s' % Site ) self.log.verbose( 'setJobStatus(%s,%s,%s,%s)' % ( jobID, status, "Job in Queue with JobId:" + jobBDSoftwareName, 'BigDataMonitoring@%s' % Site ) ) if not jobStatus['OK']: self.log.warn( jobStatus['Message'] ) jobSite = jobReport.setJobSite( int( jobID ), Site ) self.log.verbose( 'setJobSite(%s,%s)' % ( jobID, Site ) ) if not jobSite['OK']: self.log.warn( jobSite['Message'] ) jobDB.setJobAttribute( jobID, "ApplicationStatus", "Job in Queue" ) else: jobStatus = jobReport.setJobStatus( int( jobID ), status = 'Rescheduled', application = "Unknown Status", sendFlag = True ) self.log.verbose( 'setJobStatus(%s,%s,%s,%s)' % ( jobID, 'Rescheduled', "Unknown Status", 'BigDataMonitoring@%s' % Site ) ) if not jobStatus['OK']: self.log.warn( jobStatus['Message'] ) jobSite = jobReport.setJobSite( int( jobID ), Site ) self.log.verbose( 'setJobSite(%s,%s)' % ( jobID, Site ) ) if not jobSite['OK']: self.log.warn( jobSite['Message'] ) if status == "Done": self.log.verbose( 'setJobStatus(%s,%s,%s,%s)' % ( jobID, status, "MapReducing Process Finished", 'BigDataMonitoring@%s' % Site ) ) jobStatus = jobReport.setJobStatus( int( jobID ), status, "MapReducing Process Finished", 'BigDataMonitoring@%s' % Site ) if not jobStatus['OK']: self.log.warn( jobStatus['Message'] ) jobSite = jobReport.setJobSite( int( jobID ), Site ) self.log.verbose( 'setJobSite(%s,%s)' % ( jobID, Site ) ) if not jobSite['OK']: self.log.warn( jobSite['Message'] ) jobDB.setJobAttribute( jobID, "ApplicationStatus", "MapReduce Complete" ) return S_OK( 'OK' )