1 |
< |
from SchedulerEdg import SchedulerEdg |
1 |
> |
from SchedulerGrid import SchedulerGrid |
2 |
|
from crab_logger import Logger |
3 |
|
from crab_exceptions import * |
4 |
|
from crab_util import * |
7 |
|
|
8 |
|
import os, sys, time |
9 |
|
|
10 |
< |
class SchedulerGlite(SchedulerEdg): |
10 |
> |
class SchedulerGlite(SchedulerGrid): |
11 |
|
def __init__(self): |
12 |
< |
SchedulerEdg.__init__(self) |
12 |
> |
SchedulerGrid.__init__(self,"GLITE") |
13 |
> |
|
14 |
> |
def configure(self,cfg_params): |
15 |
> |
SchedulerGrid.configure(self, cfg_params) |
16 |
> |
self.environment_unique_identifier = 'GLITE_WMS_JOBID' |
17 |
|
|
18 |
|
def rb_configure(self, RB): |
19 |
< |
self.glite_config = '' |
20 |
< |
self.rb_param_file = '' |
19 |
> |
if not RB: return None |
20 |
> |
glite_config = None |
21 |
> |
rb_param_file = None |
22 |
|
|
23 |
|
gliteConfig = GliteConfig(RB) |
24 |
< |
self.glite_config = gliteConfig.config() |
24 |
> |
glite_config = gliteConfig.config() |
25 |
|
|
26 |
< |
if (self.glite_config != ''): |
27 |
< |
self.rb_param_file = 'WMSconfig = '+self.glite_config+';\n' |
28 |
< |
#print "rb_param_file = ", self.rb_param_file |
24 |
< |
return self.rb_param_file |
26 |
> |
if (glite_config ): |
27 |
> |
rb_param_file = 'WMSconfig = '+glite_config+';\n' |
28 |
> |
return rb_param_file |
29 |
|
|
30 |
|
def sched_parameter(self): |
31 |
|
""" |
55 |
|
req = req + self.EDG_requirements |
56 |
|
|
57 |
|
if self.EDG_ce_white_list: |
58 |
< |
ce_white_list = string.split(self.EDG_ce_white_list,',') |
58 |
> |
ce_white_list = self.EDG_ce_white_list |
59 |
|
tmpCe=[] |
60 |
|
concString = '&&' |
61 |
|
for ce in ce_white_list: |
81 |
|
# if len(tmpCe): req = req + " && (" + concString.join(tmpCe) + ") " |
82 |
|
|
83 |
|
if self.EDG_ce_black_list: |
84 |
< |
ce_black_list = string.split(self.EDG_ce_black_list,',') |
84 |
> |
ce_black_list = self.EDG_ce_black_list |
85 |
|
tmpCe=[] |
86 |
|
concString = '&&' |
87 |
|
for ce in ce_black_list: |
118 |
|
|
119 |
|
param_file.write('Requirements = ' + req + reqSites ) |
120 |
|
|
121 |
< |
if (self.rb_param_file != ''): |
121 |
> |
if (self.rb_param_file): |
122 |
|
param_file.write(self.rb_param_file) |
123 |
|
|
124 |
< |
if len(self.EDG_addJdlParam): |
124 |
> |
if self.EDG_addJdlParam: |
125 |
|
if self.EDG_addJdlParam[-1] == '': self.EDG_addJdlParam= self.EDG_addJdlParam[:-1] |
126 |
|
for p in self.EDG_addJdlParam: |
127 |
|
param_file.write(string.strip(p)+';\n') |
174 |
|
txt += 'fi \n' |
175 |
|
|
176 |
|
txt += 'dumpStatus $RUNTIME_AREA/$repo \n' |
173 |
– |
#txt += 'rm -f $RUNTIME_AREA/$repo \n' |
174 |
– |
#txt += 'echo "MonitorJobID=`echo $MonitorJobID`" | tee -a $RUNTIME_AREA/$repo \n' |
175 |
– |
#txt += 'echo "MonitorID=`echo $MonitorID`" | tee -a $RUNTIME_AREA/$repo\n' |
177 |
|
|
178 |
|
txt += '\n\n' |
179 |
|
|
179 |
– |
#if int(self.copy_data) == 1: |
180 |
– |
# if self.SE: |
181 |
– |
# txt += 'export SE='+self.SE+'\n' |
182 |
– |
# txt += 'echo "SE = $SE"\n' |
183 |
– |
# if self.SE_PATH: |
184 |
– |
# if ( self.SE_PATH[-1] != '/' ) : self.SE_PATH = self.SE_PATH + '/' |
185 |
– |
# txt += 'export SE_PATH='+self.SE_PATH+'\n' |
186 |
– |
# txt += 'echo "SE_PATH = $SE_PATH"\n' |
187 |
– |
|
180 |
|
txt += 'export VO='+self.VO+'\n' |
189 |
– |
### some line for LFC catalog setting |
190 |
– |
#txt += 'if [ $middleware == LCG ]; then \n' |
191 |
– |
#txt += ' if [[ $LCG_CATALOG_TYPE != \''+self.lcg_catalog_type+'\' ]]; then\n' |
192 |
– |
#txt += ' export LCG_CATALOG_TYPE='+self.lcg_catalog_type+'\n' |
193 |
– |
#txt += ' fi\n' |
194 |
– |
#txt += ' if [[ $LFC_HOST != \''+self.lfc_host+'\' ]]; then\n' |
195 |
– |
#txt += ' export LFC_HOST='+self.lfc_host+'\n' |
196 |
– |
#txt += ' fi\n' |
197 |
– |
#txt += ' if [[ $LFC_HOME != \''+self.lfc_home+'\' ]]; then\n' |
198 |
– |
#txt += ' export LFC_HOME='+self.lfc_home+'\n' |
199 |
– |
#txt += ' fi\n' |
200 |
– |
#txt += 'elif [ $middleware == OSG ]; then\n' |
201 |
– |
#txt += ' echo "LFC catalog setting to be implemented for OSG"\n' |
202 |
– |
#txt += 'fi\n' |
203 |
– |
##### |
204 |
– |
#if int(self.register_data) == 1: |
205 |
– |
# txt += 'if [ $middleware == LCG ]; then \n' |
206 |
– |
# txt += ' export LFN='+self.LFN+'\n' |
207 |
– |
# txt += ' lfc-ls $LFN\n' |
208 |
– |
# txt += ' result=$?\n' |
209 |
– |
# txt += ' echo $result\n' |
210 |
– |
# ### creation of LFN dir in LFC catalog, under /grid/cms dir |
211 |
– |
# txt += ' if [ $result != 0 ]; then\n' |
212 |
– |
# txt += ' lfc-mkdir $LFN\n' |
213 |
– |
# txt += ' result=$?\n' |
214 |
– |
# txt += ' echo $result\n' |
215 |
– |
# txt += ' fi\n' |
216 |
– |
# txt += 'elif [ $middleware == OSG ]; then\n' |
217 |
– |
# txt += ' echo " Files registration to be implemented for OSG"\n' |
218 |
– |
# txt += 'fi\n' |
219 |
– |
# txt += '\n' |
220 |
– |
# if self.VO: |
221 |
– |
# txt += 'export VO='+self.VO+'\n' |
222 |
– |
# if self.LFN: |
223 |
– |
# txt += 'if [ $middleware == LCG ]; then \n' |
224 |
– |
# txt += ' export LFN='+self.LFN+'\n' |
225 |
– |
# txt += 'fi\n' |
226 |
– |
# txt += '\n' |
227 |
– |
|
181 |
|
txt += 'if [ $middleware == LCG ]; then\n' |
182 |
|
txt += ' CloseCEs=`glite-brokerinfo getCE`\n' |
183 |
|
txt += ' echo "CloseCEs = $CloseCEs"\n' |
191 |
|
txt += ' echo "JOB_EXIT_STATUS = 10099" \n' |
192 |
|
txt += ' echo "JobExitCode=10099" | tee -a $RUNTIME_AREA/$repo \n' |
193 |
|
txt += ' dumpStatus $RUNTIME_AREA/$repo \n' |
241 |
– |
#txt += ' rm -f $RUNTIME_AREA/$repo \n' |
242 |
– |
#txt += ' echo "MonitorJobID=`echo $MonitorJobID`" | tee -a $RUNTIME_AREA/$repo \n' |
243 |
– |
#txt += ' echo "MonitorID=`echo $MonitorID`" | tee -a $RUNTIME_AREA/$repo\n' |
194 |
|
txt += ' exit 1 \n' |
195 |
|
txt += ' fi \n' |
196 |
|
txt += 'fi \n' |
213 |
|
return cmd_out |
214 |
|
|
215 |
|
def findSites_(self, n): |
216 |
< |
itr4 = [] |
216 |
> |
itr4 =[] |
217 |
|
sites = common.jobDB.destination(n) |
218 |
|
if len(sites)>0 and sites[0]=="": |
219 |
|
return itr4 |
223 |
|
if len(replicas)!=0: |
224 |
|
replicas = self.blackWhiteListParser.checkWhiteList(replicas,n) |
225 |
|
|
276 |
– |
#if len(replicas)==0: |
277 |
– |
#msg = 'No sites remaining that host any part of the requested data! Exiting... ' |
278 |
– |
#raise CrabException(msg) |
226 |
|
itr4 = replicas |
227 |
|
##### |
228 |
|
return itr4 |