本文整理汇总了Python中pandatools.Client.getPandIDsWithJobID方法的典型用法代码示例。如果您正苦于以下问题:Python Client.getPandIDsWithJobID方法的具体用法?Python Client.getPandIDsWithJobID怎么用?Python Client.getPandIDsWithJobID使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pandatools.Client
的用法示例。
在下文中一共展示了Client.getPandIDsWithJobID方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: jobIsCancelled
# 需要导入模块: from pandatools import Client [as 别名]
# 或者: from pandatools.Client import getPandIDsWithJobID [as 别名]
def jobIsCancelled(self, ID):
L = Client.getPandIDsWithJobID(ID)[1]
if L is None:
result = False
else:
result = False
for item in L:
if L[item][0] == 'cancelled':
result = True
pass
return result
示例2: jobIsFinished
# 需要导入模块: from pandatools import Client [as 别名]
# 或者: from pandatools.Client import getPandIDsWithJobID [as 别名]
def jobIsFinished(self, ID):
L = Client.getPandIDsWithJobID(ID)[1]
if L is None:
result = False
else:
result = True
for item in L:
if L[item][0] != 'finished':
result = False
pass
return result
示例3: status
# 需要导入模块: from pandatools import Client [as 别名]
# 或者: from pandatools.Client import getPandIDsWithJobID [as 别名]
def status(self,JobID,forceUpdate=False):
# get logger
tmpLog = PLogger.getPandaLogger()
# check proxy
self.gridPassPhrase,self.vomsFQAN = PsubUtils.checkGridProxy(
self.gridPassPhrase,
False,
self.verbose,
useCache=True)
# get job info from local repository
job = self.getJobInfo(JobID)
if job == None:
# not found
return None
# update if needed
if job.dbStatus != 'frozen' or forceUpdate:
if not job.isJEDI():
tmpLog.info("Getting status for JobID=%s ..." % JobID)
# get status from Panda server
status,pandaIDstatus = Client.getPandIDsWithJobID(JobID,verbose=self.verbose)
if status != 0:
tmpLog.error("Failed to get status for ID=%s" % JobID)
return None
# get one job to set computingSite which may have changed due to rebrokerage
pandaJob = None
if pandaIDstatus != {}:
tmpPandaIDs = pandaIDstatus.keys()
tmpPandaIDs.sort()
status,tmpPandaJobs = Client.getFullJobStatus(
tmpPandaIDs[:1],
verbose=self.verbose)
if status != 0:
tmpLog.error("Failed to get PandaJobs for %s" % JobID)
return None
pandaJob = tmpPandaJobs[0]
# convert to local job spec
job = PdbUtils.convertPtoD([],pandaIDstatus,job,pandaJobForSiteID=pandaJob)
# check merge job generation
status = self.setMergeJobStatus(job,forceUpdate)
if not status:
return None
else:
tmpLog.info("Getting status for TaskID=%s ..." % job.jediTaskID)
# get JEDI task
status,jediTaskDict = Client.getJediTaskDetails(
{'jediTaskID':job.jediTaskID},
False,
True,
verbose=self.verbose)
if status != 0:
tmpLog.error("Failed to get task details for %s" % JobID)
return
# convert JEDI task
job = PdbUtils.convertJTtoD(jediTaskDict,job)
# update DB
try:
PdbUtils.updateJobDB(job,self.verbose)
except:
tmpLog.error("Failed to update local repository for JobID=%s" % JobID)
return None
if not job.isJEDI():
tmpLog.info("Updated JobID=%s" % JobID)
else:
tmpLog.info("Updated TaskID=%s ..." % job.jediTaskID)
# return
return job
示例4: retrieveMergeJobs
# 需要导入模块: from pandatools import Client [as 别名]
# 或者: from pandatools.Client import getPandIDsWithJobID [as 别名]
def retrieveMergeJobs(job, pandaJobDefId):
'''
methods for retrieving panda job ids of merging jobs given a jobDefId
'''
from pandatools import Client
ick = False
status = ''
num_mjobs = 0
(ec, info) = Client.checkMergeGenerationStatus(pandaJobDefId)
if ec == 0:
try:
status = info['status']
mergeJobDefIds = info['mergeIDs']
if status == 'NA':
logger.warning('No merging jobs expected')
job.backend.mergejobs = []
elif status == 'generating':
logger.debug('merging jobs are generating')
job.backend.mergejobs = []
elif status == 'standby':
logger.debug('merging jobs to be created')
job.backend.mergejobs = []
elif status == 'generated':
logger.debug('merging jobs are generated')
for id in mergeJobDefIds:
logger.debug("merging jobDefId: %d" % id)
## retrieve merging job id,status given the jobDefId
(ec2, mjs) = Client.getPandIDsWithJobID(id)
if ec2 == 0:
for jid,jinfo in mjs.items():
mjobj = PandaMergeJob()
mjobj.id = jid
#mjobj.status = jinfo[0]
mjobj.url = 'http://panda.cern.ch/?job=%d' % jid
if mjobj not in job.backend.mergejobs:
job.backend.mergejobs.append(mjobj)
else:
logger.debug("merging job %s already exists locally" % mjobj.id)
num_mjobs += 1
else:
logger.warning("getPandIDsWithJobID returns non-zero exit code: %d" % ec2)
ick = True
except KeyError:
logger.error('unexpected job information: %s' % repr(info))
except Exception as e:
logger.error('general merge job information retrieval error')
raise e
else:
logger.error('checkMergeGenerationStatus returns non-zero exit code: %d' % ec)
return (ick, status, num_mjobs)