本文整理汇总了Python中WMCore.BossAir.BossAirAPI.BossAirAPI._loadByID方法的典型用法代码示例。如果您正苦于以下问题:Python BossAirAPI._loadByID方法的具体用法?Python BossAirAPI._loadByID怎么用?Python BossAirAPI._loadByID使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WMCore.BossAir.BossAirAPI.BossAirAPI
的用法示例。
在下文中一共展示了BossAirAPI._loadByID方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: testA_APITest
# 需要导入模块: from WMCore.BossAir.BossAirAPI import BossAirAPI [as 别名]
# 或者: from WMCore.BossAir.BossAirAPI.BossAirAPI import _loadByID [as 别名]
def testA_APITest(self):
"""
_APITest_
This is a commissioning test that has very little to do
with anything except loading the code.
"""
#return
myThread = threading.currentThread()
config = self.getConfig()
baAPI = BossAirAPI(config = config)
# We should have loaded a plugin
self.assertTrue('TestPlugin' in baAPI.plugins.keys())
result = myThread.dbi.processData("SELECT name FROM bl_status")[0].fetchall()
statusList = []
for i in result:
statusList.append(i.values()[0])
# We should have the plugin states in the database
self.assertEqual(statusList.sort(), ['New', 'Dead', 'Gone'].sort())
# Create some jobs
nJobs = 10
jobDummies = self.createDummyJobs(nJobs = nJobs)
print jobDummies
baAPI.createNewJobs(wmbsJobs = jobDummies)
runningJobs = baAPI._listRunJobs()
self.assertEqual(len(runningJobs), nJobs)
newJobs = baAPI._loadByStatus(status = 'New')
self.assertEqual(len(newJobs), nJobs)
deadJobs = baAPI._loadByStatus(status = 'Dead')
self.assertEqual(len(deadJobs), 0)
raisesException = False
self.assertRaises(BossAirException,
baAPI._loadByStatus, status = 'FalseStatus')
# Change the job status and update it
for job in newJobs:
job['status'] = 'Dead'
baAPI._updateJobs(jobs = newJobs)
# Test whether we see the job status as updated
newJobs = baAPI._loadByStatus(status = 'New')
self.assertEqual(len(newJobs), 0)
deadJobs = baAPI._loadByStatus(status = 'Dead')
self.assertEqual(len(deadJobs), nJobs)
# Can we load by BossAir ID?
loadedJobs = baAPI._loadByID(jobs = deadJobs)
self.assertEqual(len(loadedJobs), nJobs)
# Can we load via WMBS?
loadedJobs = baAPI.loadByWMBS(wmbsJobs = jobDummies)
self.assertEqual(len(loadedJobs), nJobs)
# See if we can delete jobs
baAPI._deleteJobs(jobs = deadJobs)
# Confirm that they're gone
deadJobs = baAPI._loadByStatus(status = 'Dead')
self.assertEqual(len(deadJobs), 0)
self.assertEqual(len(baAPI.jobs), 0)
return
示例2: testH_ARCTest
# 需要导入模块: from WMCore.BossAir.BossAirAPI import BossAirAPI [as 别名]
# 或者: from WMCore.BossAir.BossAirAPI.BossAirAPI import _loadByID [as 别名]
#.........这里部分代码省略.........
newJobs = baAPI._loadByStatus(status = 'New')
self.assertEqual(len(newJobs), nJobs)
baAPI.track()
newJobs = baAPI._loadByStatus(status = 'New')
self.assertEqual(len(newJobs), 0)
rJobs = baAPI._listRunJobs()
nOldJobs = 0
for j in rJobs:
if j['status'] != "New":
nOldJobs += 1
self.assertEqual(nOldJobs, nJobs)
#if baAPI.plugins['ARCPlugin'].stateDict[j['status']] in [ "Pending", "Running" ]:
baAPI.kill(jobs = jobList)
nRunning = getNArcJobs()
self.assertEqual(nRunning, 0)
# Try resubmission
for j in jobList:
j['retry_count'] = 1
succ, fail = baAPI.submit(jobs = jobList)
time.sleep(30)
nRunning = getNArcJobs()
self.assertEqual(nRunning, nJobs)
newJobs = baAPI._loadByStatus(status = 'New')
self.assertEqual(len(newJobs), nJobs)
# See where they are
baAPI.track()
newJobs = baAPI._loadByStatus(status = 'New')
self.assertEqual(len(newJobs), 0)
rJobs = baAPI._listRunJobs()
nOldJobs = 0
idStr = ""
for j in rJobs:
idStr += " " + j['gridid']
if j['status'] != "New":
nOldJobs += 1
self.assertEqual(nOldJobs, nJobs)
# Now kill 'em manually
no_jobs = True
while no_jobs:
command = 'LD_LIBRARY_PATH=$CLEAN_LD_LIBRARY_PATH ngkill -t 180 -a'
pipe = Popen(command, stdout = PIPE, stderr = STDOUT, shell = True)
output = pipe.communicate()[0]
if output.find("Job information not found") >= 0:
# It seems the jobs hasn't reached the ARC info.sys yet.
# Sleep a while and try again
time.sleep(20)
continue
else:
no_jobs = False
# Just to be sure, if the jobs were already finished, do a
# 'ngclean' too.
command = 'LD_LIBRARY_PATH=$CLEAN_LD_LIBRARY_PATH ngclean -t 180 -a'
pipe = Popen(command, stdout = PIPE, stderr = STDOUT, shell = True)
output = pipe.communicate()[0]
# Make sure the killing of the jobs reaches the info.sys.
still_jobs = True
while still_jobs:
command = 'LD_LIBRARY_PATH=$CLEAN_LD_LIBRARY_PATH ngstat -t 180 ' + idStr
pipe = Popen(command, stdout = PIPE, stderr = STDOUT, shell = True)
output = pipe.communicate()[0]
if output.find("Job information not found") < 0:
# It seems the killing of the jobs hasn't reached the ARC info.sys yet.
# Sleep a while and try again
time.sleep(20)
continue
else:
still_jobs = False
# See what happened
baAPI.track()
idJobs = baAPI._loadByID(rJobs)
nActiveJobs = 0
nRemovedJobs = 0
for j in idJobs:
if j['status'] not in [ "New", "KILLING", "KILLED", "LOST" ]:
nActiveJobs += 1
if j['status'] in [ "KILLING", "KILLED", "LOST" ]:
nRemovedJobs += 1
self.assertEqual(nActiveJobs, 0)
self.assertEqual(nRemovedJobs, nJobs)
return