14 |
|
url="https://cmsweb.cern.ch/phedex/datasvc/xml/prod" |
15 |
|
self.datasvc_url = cfg_params.get("USER.datasvc_url",url) |
16 |
|
|
17 |
< |
self.FacOps_savannah = 'https://savannah.cern.ch/projects/cmscompinfrasup/' |
17 |
> |
self.FacOps_savannah = 'https://savannah.cern.ch/support/?func=additem&group=cmscompinfrasup' |
18 |
> |
|
19 |
|
|
20 |
|
self.srm_version = cfg_params.get("USER.srm_version",'srmv2') |
21 |
|
self.node = cfg_params.get('USER.storage_element',None) |
38 |
|
msg += ' For further information please visit: ADD_TWIKI_LINK' |
39 |
|
raise CrabException(msg) |
40 |
|
self.sched = common.scheduler.name().upper() |
40 |
– |
|
41 |
|
self.protocol = self.srm_version |
42 |
|
if self.sched in ['CAF','LSF']:self.protocol = 'direct' |
43 |
|
|
192 |
|
|
193 |
|
stageoutpfn = self.parse_lfn2pfn(domlfn2pfn) |
194 |
|
if not stageoutpfn: |
195 |
< |
msg ='Unable to get stageout path for Site %s. Maybe it does not correctly export its TFC. \n'%self.node |
196 |
< |
msg+=' Please alert the FacOps group through their savannah %s'%self.FacOps_savannah |
195 |
> |
msg ='Unable to get stageout path from TFC at Site %s \n'%self.node |
196 |
> |
msg+=' Please alert the CompInfraSup group through their savannah %s \n'%self.FacOps_savannah |
197 |
> |
msg+=' reporting: \n' |
198 |
> |
msg+=' Summary: Unable to get user stageout from TFC at Site %s \n'%self.node |
199 |
> |
msg+=' OriginalSubmission: stageout path is not retrieved from %s \n'%fullurl |
200 |
|
raise CrabException(msg) |
201 |
|
else: |
202 |
|
stageoutpfn = 'srm://'+self.node+':8443'+self.user_se_path+self.lfn |
203 |
|
|
204 |
|
return stageoutpfn |
205 |
+ |
|
206 |
+ |
|
207 |
+ |
|
208 |
+ |
if __name__ == '__main__': |
209 |
+ |
""" |
210 |
+ |
Sort of unit testing to check Phedex API for whatever site and/or lfn. |
211 |
+ |
Usage: |
212 |
+ |
python PhEDExDatasvcInfo.py --node T2_IT_Bari --lfn /store/maremma |
213 |
+ |
|
214 |
+ |
""" |
215 |
+ |
import getopt,sys |
216 |
+ |
from crab_util import * |
217 |
+ |
import common |
218 |
+ |
klass_name = 'SchedulerGlite' |
219 |
+ |
klass = importName(klass_name, klass_name) |
220 |
+ |
common.scheduler = klass() |
221 |
+ |
|
222 |
+ |
lfn="/store/user/" |
223 |
+ |
node='T2_IT_Bari' |
224 |
+ |
valid = ['node=','lfn='] |
225 |
+ |
try: |
226 |
+ |
opts, args = getopt.getopt(sys.argv[1:], "", valid) |
227 |
+ |
except getopt.GetoptError, ex: |
228 |
+ |
print str(ex) |
229 |
+ |
sys.exit(1) |
230 |
+ |
for o, a in opts: |
231 |
+ |
if o == "--node": |
232 |
+ |
node = a |
233 |
+ |
if o == "--lfn": |
234 |
+ |
lfn = a |
235 |
+ |
|
236 |
+ |
mycfg_params = { 'USER.storage_element': node } |
237 |
+ |
dsvc = PhEDExDatasvcInfo(mycfg_params) |
238 |
+ |
dsvc.lfn = lfn |
239 |
+ |
print dsvc.getStageoutPFN() |
240 |
+ |
|