本文整理汇总了Python中WMCore.BossAir.BossAirAPI.BossAirAPI.updateSiteInformation方法的典型用法代码示例。如果您正苦于以下问题:Python BossAirAPI.updateSiteInformation方法的具体用法?Python BossAirAPI.updateSiteInformation怎么用?Python BossAirAPI.updateSiteInformation使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WMCore.BossAir.BossAirAPI.BossAirAPI
的用法示例。
在下文中一共展示了BossAirAPI.updateSiteInformation方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: testF_WMSMode
# 需要导入模块: from WMCore.BossAir.BossAirAPI import BossAirAPI [as 别名]
# 或者: from WMCore.BossAir.BossAirAPI.BossAirAPI import updateSiteInformation [as 别名]
def testF_WMSMode(self):
"""
_WMSMode_
Try running things in WMS Mode.
"""
nRunning = getCondorRunningJobs(self.user)
self.assertEqual(nRunning, 0, "User currently has %i running jobs. Test will not continue" % (nRunning))
config = self.getConfig()
config.BossAir.pluginName = 'CondorPlugin'
config.BossAir.submitWMSMode = True
baAPI = BossAirAPI(config = config)
workload = self.createTestWorkload()
workloadName = "basicWorkload"
changeState = ChangeState(config)
nSubs = 5
nJobs = 10
cacheDir = os.path.join(self.testDir, 'CacheDir')
jobGroupList = self.createJobGroups(nSubs = nSubs, nJobs = nJobs,
task = workload.getTask("ReReco"),
workloadSpec = os.path.join(self.testDir,
'workloadTest',
workloadName),
site = None)
for group in jobGroupList:
changeState.propagate(group.jobs, 'created', 'new')
jobSubmitter = JobSubmitterPoller(config = config)
jobSubmitter.algorithm()
nRunning = getCondorRunningJobs(self.user)
self.assertEqual(nRunning, nSubs * nJobs)
baAPI.track()
idleJobs = baAPI._loadByStatus(status = 'Idle')
sn = "T2_US_UCSD"
# Test the Site Info has been updated. Make Sure T2_US_UCSD is not in the sitelist
# in BossAir_t.py
baAPI.updateSiteInformation(idleJobs, sn, True)
# Now kill 'em manually
# command = ['condor_rm', self.user]
# pipe = Popen(command, stdout = PIPE, stderr = PIPE, shell = False)
# pipe.communicate()
del jobSubmitter
return
示例2: changeSiteState
# 需要导入模块: from WMCore.BossAir.BossAirAPI import BossAirAPI [as 别名]
# 或者: from WMCore.BossAir.BossAirAPI.BossAirAPI import updateSiteInformation [as 别名]
def changeSiteState(self, siteName, state):
"""
_changeSiteState_
Set a site to some of the possible states,
if the state is Aborted we must do extra actions.
"""
setStateAction = self.wmbsDAOFactory(classname = "Locations.SetState")
setStateAction.execute(siteName = siteName, state = state,
conn = self.getDBConn(),
transaction = self.existingTransaction())
executingJobs = self.wmbsDAOFactory(classname = "Jobs.ListByState")
jobInfo = executingJobs.execute(state = 'executing')
if not jobInfo:
# then no jobs to look at
return
bossAir = BossAirAPI(self.config, noSetup = True)
jobtokill = bossAir.updateSiteInformation(jobInfo, siteName, state in ("Aborted","Draining","Down"))
if state == "Aborted":
ercode=71301
elif state == "Draining":
ercode=71302
elif state == "Down":
ercode=71303
else:
ercode=71300
bossAir.kill(jobtokill, errorCode=ercode)
return
示例3: changeSiteState
# 需要导入模块: from WMCore.BossAir.BossAirAPI import BossAirAPI [as 别名]
# 或者: from WMCore.BossAir.BossAirAPI.BossAirAPI import updateSiteInformation [as 别名]
def changeSiteState(self, siteName, state):
"""
_changeSiteState_
Set a site to some of the possible states and perform
proper actions with the jobs, according to the state
"""
state2ExitCode = {"Aborted": 71301,
"Draining": 71302,
"Down": 71303}
executingJobs = self.wmbsDAOFactory(classname="Jobs.ListByState")
jobInfo = executingJobs.execute(state='executing')
if jobInfo:
bossAir = BossAirAPI(self.config, noSetup=True)
jobtokill = bossAir.updateSiteInformation(jobInfo, siteName, state in state2ExitCode)
ercode = state2ExitCode.get(state, 71300)
bossAir.kill(jobtokill, errorCode=ercode)
# only now that jobs were updated by the plugin, we flip the site state
setStateAction = self.wmbsDAOFactory(classname="Locations.SetState")
setStateAction.execute(siteName=siteName, state=state,
conn=self.getDBConn(),
transaction=self.existingTransaction())
return
示例4: testT_updateJobInfo
# 需要导入模块: from WMCore.BossAir.BossAirAPI import BossAirAPI [as 别名]
# 或者: from WMCore.BossAir.BossAirAPI.BossAirAPI import updateSiteInformation [as 别名]
def testT_updateJobInfo(self):
"""
_updateJobInfo_
Test the updateSiteInformation method from CondorPlugin.py
"""
nRunning = getCondorRunningJobs(self.user)
config = self.getConfig()
config.BossAir.pluginName = 'CondorPlugin'
baAPI = BossAirAPI(config = config)
baAPI.track()
idleJobs = baAPI._loadByStatus(status = 'Idle')
print idleJobs
for job in idleJobs :
print job['id']
baAPI.updateSiteInformation(idleJobs, info = None)
return
示例5: testT_updateJobInfo
# 需要导入模块: from WMCore.BossAir.BossAirAPI import BossAirAPI [as 别名]
# 或者: from WMCore.BossAir.BossAirAPI.BossAirAPI import updateSiteInformation [as 别名]
def testT_updateJobInfo(self):
"""
_updateJobInfo_
Test the updateSiteInformation method from CondorPlugin.py
"""
nRunning = getCondorRunningJobs(self.user)
self.assertEqual(nRunning, 0, "User currently has %i running jobs. Test will not continue" % (nRunning))
config = self.getConfig()
config.BossAir.pluginName = 'CondorPlugin'
config.BossAir.submitWMSMode = True
baAPI = BossAirAPI(config=config)
workload = self.createTestWorkload()
workloadName = "basicWorkload"
changeState = ChangeState(config)
nSubs = 1
nJobs = 2
dummycacheDir = os.path.join(self.testDir, 'CacheDir')
jobGroupList = self.createJobGroups(nSubs=nSubs, nJobs=nJobs,
task=workload.getTask("ReReco"),
workloadSpec=os.path.join(self.testDir,
'workloadTest',
workloadName),
site="se.T2_US_UCSD")
for group in jobGroupList:
changeState.propagate(group.jobs, 'created', 'new')
jobSubmitter = JobSubmitterPoller(config=config)
jobSubmitter.algorithm()
nRunning = getCondorRunningJobs(self.user)
self.assertEqual(nRunning, nSubs * nJobs)
baAPI.track()
idleJobs = baAPI._loadByStatus(status='Idle')
##
# Make one of the sites in the sitelist to be True for ABORTED/DRAINING/DOWN
# updateSiteInformation() method should edit the classAd for all the jobs
# that are bound for the site
# Check the Q manually using condor_q -l <job id>
#
jtok = baAPI.updateSiteInformation(idleJobs, "T2_US_UCSD", True)
if jtok != None:
baAPI.kill(jtok, errorCode=71301) # errorCode can be either 71301/71302/71303 (Aborted/Draining/Down)
return