00043 :
00044
00045 if os.environ['DBS_STRATEGY'] == "local":
00046
00047 result = []
00048 for line in open('electronDbsDiscovery.txt').readlines():
00049 line = os.path.expandvars(line.strip())
00050 if line == "": continue
00051 if os.environ['DBS_SAMPLE'] != "Any" and line.find(os.environ['DBS_SAMPLE'])== -1: continue
00052 if line.find(os.environ['DBS_COND'])== -1: continue
00053 if line.find(dbs_tier)== -1: continue
00054 result.append('file:'+line)
00055
00056 elif os.environ['DBS_STRATEGY'] == "castor":
00057
00058 castor_dir = '/castor/cern.ch/cms/store/relval/'+os.environ['DBS_RELEASE']+'/'+os.environ['DBS_SAMPLE']+'/'+os.environ['DBS_TIER']+'/'+os.environ['DBS_COND']+'/'
00059 if __name__ == "__main__":
00060 print 'castor dir:',castor_dir
00061 result = []
00062 data = os.popen('rfdir '+castor_dir)
00063 subdirs = data.readlines()
00064 data.close()
00065 datalines = []
00066 for line in subdirs:
00067 line = line.rstrip()
00068 subdir = line.split()[8]
00069 data = os.popen('rfdir '+castor_dir+'/'+subdir)
00070 datalines = data.readlines()
00071 for line in datalines:
00072 line = line.rstrip()
00073 file = line.split()[8]
00074 if file != "":
00075 result.append('/store/relval/'+os.environ['DBS_RELEASE']+'/'+os.environ['DBS_SAMPLE']+'/'+os.environ['DBS_TIER']+'/'+os.environ['DBS_COND']+'/'+subdir+'/'+file)
00076 data.close()
00077
00078 elif os.environ['DBS_STRATEGY'] == "lsf":
00079
00080 dbs_path = '/'+os.environ['DBS_SAMPLE']+'/'+os.environ['DBS_RELEASE']+'-'+os.environ['DBS_COND']+'/'+os.environ['DBS_TIER']+'"'
00081 if __name__ == "__main__":
00082 print 'dbs path:',dbs_path
00083 data = os.popen('dbs lsf --path="'+dbs_path+'"')
00084 datalines = data.readlines()
00085 data.close()
00086 result = []
00087 for line in datalines:
00088 line = line.rstrip()
00089 if line != "" and line[0] =="/":
00090 result.append(line)
00091
00092 else:
00093
00094 input = "find file"
00095 separator = " where "
00096 if os.environ['DBS_RELEASE'] != "Any":
00097 input = input + separator + "release = " + os.environ['DBS_RELEASE']
00098 separator = " and "
00099 if os.environ['DBS_SAMPLE'] != "Any":
00100 input = input + separator + "primds = " + os.environ['DBS_SAMPLE']
00101 separator = " and "
00102 if os.environ['DBS_RUN'] != "Any":
00103 input = input + separator + "run = " + os.environ['DBS_RUN']
00104 separator = " and "
00105 input = input + separator + "dataset like *" + os.environ['DBS_COND'] + "*" + dbs_tier + "*"
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132 data = os.popen('dbs search --url="https://cmsdbsprod.cern.ch/cms_dbs_prod_global/servlet/DBSServlet" --query "'+input+'"')
00133 datalines = data.readlines()
00134 data.close()
00135 result = []
00136 for line in datalines:
00137 line = line.rstrip()
00138 if line != "" and line[0] =="/":
00139 result.append(line)
00140
00141 return result