def rebrokerage(self,JobsetID,cloud): # get logger tmpLog = PLogger.getPandaLogger() # check proxy self.gridPassPhrase,self.vomsFQAN = PsubUtils.checkGridProxy( self.gridPassPhrase, False, self.verbose, useCache=True) # get jobset jobList = self.getJobIDsWithSetID(JobsetID) if jobList == None: jobList = [JobsetID] else: tmpMsg = "JobsetID=%s is composed of JobID=" % JobsetID for tmpJobID in jobList: tmpMsg += '%s,' % tmpJobID tmpMsg = tmpMsg[:-1] tmpLog.info(tmpMsg) for JobID in jobList: # get job info using status job = self.status(JobID) if job == None: # not found continue # skip frozen job if job.dbStatus == 'frozen': tmpLog.info('All subJobs in JobID=%s already finished/failed' % JobID) continue # rebrokerage tmpLog.info('Sending rebrokerage request ...') status,output = Client.runReBrokerage(JobID,job.libDS,cloud,self.verbose) if status != 0: tmpLog.error(output) tmpLog.error("Failed to reassign JobID=%s" % JobID) return # done tmpLog.info('Done for %s' % JobID) return
def rebrokerage(self, JobsetID, cloud): # get logger tmpLog = PLogger.getPandaLogger() # check proxy self.gridPassPhrase, self.vomsFQAN = PsubUtils.checkGridProxy( self.gridPassPhrase, False, self.verbose) # get jobset jobList = self.getJobIDsWithSetID(JobsetID) if jobList == None: jobList = [JobsetID] else: tmpMsg = "JobsetID=%s is composed of JobID=" % JobsetID for tmpJobID in jobList: tmpMsg += '%s,' % tmpJobID tmpMsg = tmpMsg[:-1] tmpLog.info(tmpMsg) for JobID in jobList: # get job info using status job = self.status(JobID) if job == None: # not found continue # skip frozen job if job.dbStatus == 'frozen': tmpLog.info('All subJobs in JobID=%s already finished/failed' % JobID) continue # rebrokerage tmpLog.info('Sending rebrokerage request ...') status, output = Client.runReBrokerage(JobID, job.libDS, cloud, self.verbose) if status != 0: tmpLog.error(output) tmpLog.error("Failed to reassign JobID=%s" % JobID) return # done tmpLog.info('Done for %s' % JobID) return