39 |
|
self.OSBsize = 50*1000*1000 # 50 MB |
40 |
|
|
41 |
|
self.environment_unique_identifier = None |
42 |
+ |
self.submissionDay = time.strftime("%y%m%d",time.localtime()) |
43 |
|
|
44 |
|
return |
45 |
|
|
52 |
|
SchedulerGrid.configure(self, cfg_params) |
53 |
|
|
54 |
|
self.proxyValid=0 |
55 |
< |
self.dontCheckProxy=int(cfg_params.get("GRID.dont_check_proxy",0)) |
55 |
> |
self.dontCheckProxy=int(cfg_params.get("GRID.dont_check_proxy",'0')) |
56 |
|
self.space_token = cfg_params.get("USER.space_token",None) |
57 |
|
self.proxyServer= 'myproxy.cern.ch' |
58 |
|
self.group = cfg_params.get("GRID.group", None) |
59 |
|
self.role = cfg_params.get("GRID.role", None) |
60 |
|
self.VO = cfg_params.get('GRID.virtual_organization','cms') |
61 |
+ |
self.allowOverflow = cfg_params.get('GRID.allow_overflow', '1') |
62 |
+ |
self.max_rss = cfg_params.get('GRID.max_rss','2300') |
63 |
|
|
64 |
|
self.checkProxy() |
65 |
|
|
83 |
|
msg+="\n Use GRID.se_white_list and/or GRID.se_black_list instead" |
84 |
|
raise CrabException(msg) |
85 |
|
|
86 |
+ |
|
87 |
+ |
# make sure proxy FQAN has not changed since last time |
88 |
+ |
command = "voms-proxy-info -identity -fqan 2>/dev/null" |
89 |
+ |
command += " | head -2" |
90 |
+ |
identity = runCommand(command) |
91 |
+ |
idfile = common.work_space.shareDir() + "GridIdentity" |
92 |
+ |
if os.access(idfile, os.F_OK) : |
93 |
+ |
# identity file exists from previous commands |
94 |
+ |
f=open(idfile, 'r') |
95 |
+ |
idFromFile=f.read() |
96 |
+ |
f.close() |
97 |
+ |
else : |
98 |
+ |
# create it |
99 |
+ |
f=open(idfile, 'w') |
100 |
+ |
f.write(identity) |
101 |
+ |
f.close() |
102 |
+ |
idFromFile = identity |
103 |
+ |
|
104 |
+ |
if identity != idFromFile: |
105 |
+ |
msg = "Wrong Grid Credentials:\n%s" % identity |
106 |
+ |
msg += "\nMake sure you have " |
107 |
+ |
msg += " DN, FQAN =\n%s" % idFromFile |
108 |
+ |
raise CrabException(msg) |
109 |
+ |
|
110 |
|
return |
111 |
|
|
112 |
|
def userName(self): |
125 |
|
by $CRABPYTHON/Scheduler.py |
126 |
|
""" |
127 |
|
|
128 |
< |
#SB paste from crab ScheduerGlidein |
128 |
> |
#SB paste from crab SchedulerGlidein |
129 |
|
|
130 |
|
jobParams = "" |
131 |
|
|
152 |
|
jobParams += '+DESIRED_CMSScramArch ="' +scramArch+'";' |
153 |
|
|
154 |
|
myscheddName = self.remoteHost |
155 |
< |
jobParams += '+Glidein_MonitorID = "https://'+ myscheddName + '//$(Cluster).$(Process)"; ' |
155 |
> |
jobParams += '+Glidein_MonitorID = "https://'+ myscheddName + \ |
156 |
> |
'//' + self.submissionDay + '//$(Cluster).$(Process)"; ' |
157 |
|
|
158 |
|
if (self.EDG_clock_time): |
159 |
< |
jobParams += '+MaxWallTimeMins = '+self.EDG_clock_time+'; ' |
159 |
> |
glideinTime = "%d" % (int(self.EDG_clock_time)+5) # 5 min to wrapup |
160 |
> |
jobParams += '+MaxWallTimeMins = '+ glideinTime + '; ' |
161 |
|
else: |
162 |
< |
jobParams += '+MaxWallTimeMins = %d; ' % (60*24) |
162 |
> |
jobParams += '+MaxWallTimeMins = %d; ' % (60*22) |
163 |
> |
|
164 |
> |
if self.max_rss : |
165 |
> |
jobParams += 'request_memory = '+self.max_rss+';' |
166 |
> |
|
167 |
> |
if self.allowOverflow == "0": |
168 |
> |
jobParams += '+CMS_ALLOW_OVERFLOW = False; ' |
169 |
> |
|
170 |
> |
if self.EDG_addJdlParam: |
171 |
> |
if self.EDG_addJdlParam[-1] == '': |
172 |
> |
self.EDG_addJdlParam = self.EDG_addJdlParam[:-1] |
173 |
> |
for p in self.EDG_addJdlParam: |
174 |
> |
jobParams += p.strip()+';\n' |
175 |
|
|
176 |
|
common._db.updateTask_({'jobType':jobParams}) |
177 |
|
|
190 |
|
jobDir = common.work_space.jobDir() |
191 |
|
taskDir=common.work_space.topDir().split('/')[-2] |
192 |
|
shareDir = common.work_space.shareDir() |
152 |
– |
submissionDay = time.strftime("%y%m%d",time.localtime()) |
193 |
|
|
194 |
|
params = {'shareDir':shareDir, |
195 |
|
'jobDir':jobDir, |
196 |
|
'taskDir':taskDir, |
197 |
< |
'submissionDay':submissionDay} |
197 |
> |
'submissionDay':self.submissionDay} |
198 |
|
|
199 |
|
return params |
200 |
|
|