1 |
ewv |
1.14 |
"""
|
2 |
ewv |
1.17 |
Glidein specific portions of the interface to the BossLite scheduler
|
3 |
ewv |
1.14 |
"""
|
4 |
|
|
|
5 |
ewv |
1.17 |
__revision__ = "$Id: SchedulerGlidein.py,v 1.15 2008/09/29 21:14:28 ewv Exp $"
|
6 |
|
|
__version__ = "$Revision: 1.15 $"
|
7 |
ewv |
1.14 |
|
8 |
ewv |
1.17 |
from SchedulerCondorCommon import SchedulerCondorCommon
|
9 |
|
|
import common
|
10 |
ewv |
1.1 |
|
11 |
ewv |
1.17 |
class SchedulerGlidein(SchedulerCondorCommon):
|
12 |
|
|
"""
|
13 |
|
|
Glidein specific portions of the interface to the BossLite scheduler
|
14 |
|
|
"""
|
15 |
|
|
|
16 |
|
|
def __init__(self):
|
17 |
|
|
SchedulerCondorCommon.__init__(self,"GLIDEIN")
|
18 |
|
|
return
|
19 |
|
|
|
20 |
|
|
def sched_parameter(self, i, task):
|
21 |
|
|
"""
|
22 |
|
|
Return scheduler-specific parameters
|
23 |
|
|
"""
|
24 |
|
|
jobParams = SchedulerCondorCommon.sched_parameter(self, i, task)
|
25 |
|
|
seDest = task.jobs[i-1]['dlsDestination']
|
26 |
|
|
ceDest = self.seListToCElist(seDest, onlyOSG=False)
|
27 |
|
|
ceString = ','.join(ceDest)
|
28 |
|
|
|
29 |
|
|
jobParams += '+DESIRED_Gatekeepers = "'+ceString+'"; '
|
30 |
|
|
jobParams += '+DESIRED_Archs = "INTEL,X86_64"; '
|
31 |
|
|
jobParams += "Requirements = stringListMember(GLIDEIN_Gatekeeper,DESIRED_Gatekeepers) && stringListMember(Arch,DESIRED_Archs); "
|
32 |
|
|
if (self.EDG_clock_time):
|
33 |
|
|
jobParams += '+MaxWallTimeMins = '+self.EDG_clock_time+'; '
|
34 |
|
|
else:
|
35 |
|
|
jobParams += '+MaxWallTimeMins = 120; '
|
36 |
|
|
|
37 |
|
|
common._db.updateTask_({'jobType':jobParams})
|
38 |
|
|
return jobParams # Not sure I even need to return anything
|
39 |
|
|
|
40 |
|
|
def listMatch(self, seList, full, onlyOSG=False):
|
41 |
|
|
"""
|
42 |
|
|
Check the compatibility of available resources
|
43 |
|
|
"""
|
44 |
|
|
ceDest = SchedulerCondorCommon.listMatch(self, seList, full, onlyOSG=False)
|
45 |
|
|
return ceDest
|
46 |
ewv |
1.11 |
|