Changeset 3430
- Timestamp:
- 09/21/2009 12:54:31 PM (6 months ago)
- Files:
-
- cmsSync/setup.py (modified) (1 diff)
- cmsSync/src/cmsSync/sync_file.py (added)
- cmsSync/src/cmsSync/sync_phedex.py (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
cmsSync/setup.py
r2145 r3430 4 4 setup( \ 5 5 name="cmsSync", 6 version = "0.2. 0",6 version = "0.2.1", 7 7 author = "Brian Bockelman", 8 8 author_email="bbockelm@math.unl.edu", cmsSync/src/cmsSync/sync_phedex.py
r2853 r3430 12 12 from xml.dom.minidom import parse 13 13 14 import sync_file 14 15 from dCachePnfs import PnfsSizeWalker 15 16 from cms_tools import pretty_size … … 32 33 parser.add_option('-z', '--size', action='store_true', dest="show_size", 33 34 default=False, help="Show the total filesystem size.") 35 parser.add_option("-i", "--inspect", dest="inspect", default=False, 36 action="store_true", help="Check the files with CMSSW") 37 parser.add_option("-c", "--cmsset", dest="cmsset", default=None, 38 help="Location of cmsset_default.sh") 39 parser.add_option("-v", "--cmsswVersion", dest="cmssw", 40 default="CMSSW_3_1_1", help="CMSSW version to use.") 41 parser.add_option("-a", "--accessProtocol", dest="access", 42 default="direct", help="Access protocol to check the files.") 34 43 options, args = parser.parse_args() 35 44 if len(args) == 0: … … 41 50 def get_phedex_name(se_name): 42 51 url = os.path.join(nebraska_datasvc, 'map_se', se_name) 52 try: 53 fp = urllib2.urlopen(url) 54 except: 55 print url 56 raise 57 return fp.read() 58 59 def get_phedex_name(se_name): 60 url = os.path.join(phedex_datasvc, 'json', 'prod', 'nodes') 43 61 fp = urllib2.urlopen(url) 44 return fp.read() 62 nodes = json(fp.read()) 63 nodes = nodes['phedex']['node'] 64 for node in nodes: 65 if node['se'] == se_name: 66 return node['name'] 67 raise Exception("Unable to determine PhEDEx name for SE %s." % se_name) 45 68 46 69 def get_tfc(se_name): … … 55 78 tfc = get_tfc(se_name) 56 79 phedex_name = get_phedex_name(se_name) 57 url = os.path.join(nebraska_datasvc, 'xml', phedex_name) 58 fp = urllib2.urlopen(url) 80 #url = os.path.join(nebraska_datasvc, 'xml', phedex_name) 81 url = os.path.join(phedex_datasvc, 'xml', 'prod', 'tfc') 82 query = urllib.urlencode({'node': phedex_name}) 83 fp = urllib2.urlopen(url + "?" + query) 59 84 dom = parse(fp) 60 85 tfc = TfcMapper(dom) … … 126 151 do_lookup(query) 127 152 128 def get_file_replicas(blocks, se_name, numThreads=20, atatime= 20):153 def get_file_replicas(blocks, se_name, numThreads=20, atatime=10): 129 154 t2 = -time.time() 130 155 splits = splitBlocks(blocks, splitNum=numThreads) … … 260 285 pretty_size(extra_lfns_size, PrettyOptions)) 261 286 287 if options.inspect: 288 print "About to start opening files with PyROOT to validate them." \ 289 " This may take awhile..." 290 check_lfns = reg_lfns.intersection(lfns) 291 check_pfns = [tfc.map_to_pfn(lfn, protocol=options.access) for \ 292 lfn in check_lfns] 293 open("checked_files.txt", "w").write("\n".join(check_pfns)) 294 print "Saved the PFNs we'll check to checked_files.txt." 295 if options.cmsset and not os.path.exists(options.cmsset): 296 print "Error! Unable to find cmsset_default.sh; value given was:" \ 297 " %s." % str(options.cmsset) 298 return 1 299 sync_file.bootstrap_cms(options.cmsset, options.cmssw) 300 bad_files = sync_file.verify_files(check_pfns) 301 open("bad_files.txt", "w").write("\n".join(bad_files)) 302 print "There were %i files which failed to open in PyROOT. These are" \ 303 " written to bad_files.txt." 304 262 305 if __name__ == '__main__': 263 main() 264 306 retval = main() 307 if retval: 308 sys.exit(retval) 309
