ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/CRAB/python/SchedulerGlidein.py
(Generate patch)

Comparing COMP/CRAB/python/SchedulerGlidein.py (file contents):
Revision 1.10 by ewv, Fri Apr 25 18:23:10 2008 UTC vs.
Revision 1.16 by spiga, Wed Jun 10 16:56:30 2009 UTC

# Line 1 | Line 1
1 < from SchedulerCondorCommon import SchedulerCondorCommon
2 < import common
1 > #!/usr/bin/env python
2 > """
3 > _SchedulerGlidein_
4 > """
5  
6   __revision__ = "$Id$"
7   __version__ = "$Revision$"
8  
9 < class SchedulerGlidein(SchedulerCondorCommon):
10 <  def __init__(self):
9 <    SchedulerCondorCommon.__init__(self,"GLIDEIN")
10 <    return
11 <
12 <  def sched_parameter(self,i,task):
13 <    """
14 <    Return scheduler-specific parameters
15 <    """
16 <    jobParams = SchedulerCondorCommon.sched_parameter(self,i,task)
17 <
18 <    ceDest = self.seListToCElist(task.jobs[i-1]['dlsDestination'], onlyOSG=False)
19 <    ceString = ','.join(ceDest)
20 <
21 <    jobParams += '+DESIRED_Gatekeepers = "'+ceString+'"; '
22 <    jobParams += '+DESIRED_Archs = "INTEL,X86_64"; '
23 <    jobParams += "Requirements = stringListMember(GLIDEIN_Gatekeeper,DESIRED_Gatekeepers) &&  stringListMember(Arch,DESIRED_Archs); "
24 <    if (self.EDG_clock_time):
25 <      jobParams += '+MaxWallTimeMins = '+self.EDG_clock_time+'; '
9 > from ProdCommon.BossLite.Scheduler.SchedulerCondorCommon import SchedulerCondorCommon
10 > import os
11  
12 <    common._db.updateTask_({'jobType':jobParams})
13 <    return jobParams # Not sure I even need to return anything
12 > class SchedulerGlidein(SchedulerCondorCommon) :
13 >  """
14 >  basic class to handle glite jobs through wmproxy API
15 >  """
16 >  def __init__( self, **args ):
17 >
18 >      # call super class init method
19 >      super(SchedulerGlidein, self).__init__(**args)
20 >
21 >  def singleApiJdl( self, job, requirements='' ):
22 >      """
23 >      build a job jdl easy to be handled by the wmproxy API interface
24 >      and gives back the list of input files for a better handling
25 >      """
26 >
27 >      jdl = 'Universe = vanilla\n'
28 >      superJdl, filelist, ce \
29 >          = super(SchedulerGlidein, self).singleApiJdl(job, requirements)
30 >      jdl += superJdl
31 >
32 >      x509 = None
33 >      x509tmp = '/tmp/x509up_u'+str(os.getuid())
34 >      if 'X509_USER_PROXY' in os.environ:
35 >          x509 = os.environ['X509_USER_PROXY']
36 >      elif os.path.isfile(x509tmp):
37 >          x509 = x509tmp
38 >
39 >      if x509:
40 >          jdl += 'x509userproxy = %s\n' % x509
41 >
42 >      # Glidein parameters
43 >      jdl += 'Environment = JobRunCount=$$([ GJobRunCount ])\n'
44 >      jdl += '+GJobRunCount=ifThenElse(isUndefined(JobRunCount),0,JobRunCount)\n'
45 >      jdl += '+JOB_Site = "$$(GLIDEIN_Site:Unknown)" \n'
46 >      jdl += '+JOB_VM = "$$(Name:Unknown)" \n'
47 >      #jdl += '+JOB_Machine_KFlops = \"\$\$(KFlops:Unknown)\" \n");
48 >      #jdl += '+JOB_Machine_Mips = \"\$\$(Mips:Unknown)\" \n");
49 >      jdl += '+JOB_GLIDEIN_Schedd = "$$(GLIDEIN_Schedd:Unknown)" \n'
50 >      jdl += '+JOB_GLIDEIN_ClusterId = "$$(GLIDEIN_ClusterId:Unknown)" \n'
51 >      jdl += '+JOB_GLIDEIN_ProcId = "$$(GLIDEIN_ProcId:Unknown)" \n'
52 >      jdl += '+JOB_GLIDEIN_Factory = "$$(GLIDEIN_Factory:Unknown)" \n'
53 >      jdl += '+JOB_GLIDEIN_Name = "$$(GLIDEIN_Name:Unknown)" \n'
54 >      jdl += '+JOB_GLIDEIN_Frontend = "$$(GLIDEIN_Client:Unknown)" \n'
55 >      jdl += '+JOB_Gatekeeper = "$$(GLIDEIN_Gatekeeper:Unknown)" \n'
56 >      jdl += '+JOB_GridType = "$$(GLIDEIN_GridType:Unknown)" \n'
57 >      jdl += '+JOB_GlobusRSL = "$$(GLIDEIN_GlobusRSL:Unknown)" \n'
58 >      jdl += 'since=(CurrentTime-EnteredCurrentStatus)\n'
59 >      jdl += 'Periodic_Remove = (((JobStatus == 2) && ((CurrentTime - JobCurrentStartDate) > (MaxWallTimeMins*60))) =?= True) || '
60 >      jdl += '(JobStatus==5 && $(since)>691200) || (JobStatus==1 && $(since)>691200)\n'
61 >
62 >
63 >      return jdl, filelist, 'Unknown'

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines