ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/CRAB/python/DataDiscovery_DBS2.py
(Generate patch)

Comparing COMP/CRAB/python/DataDiscovery_DBS2.py (file contents):
Revision 1.6 by gutsche, Thu Apr 26 16:38:08 2007 UTC vs.
Revision 1.9 by gutsche, Wed Jul 4 00:50:09 2007 UTC

# Line 3 | Line 3 | import exceptions
3   import DBSAPI.dbsApi
4   from DBSAPI.dbsApiException import *
5   import common
6 + from crab_util import *
7  
8  
9   # #######################################
# Line 92 | Line 93 | class DataDiscovery_DBS2:
93          except KeyError:
94              dbs_url="http://cmsdbsprod.cern.ch/cms_dbs_prod_global/servlet/DBSServlet"
95  
96 <        ## get DBS URL
96 >        common.logger.debug(3,"Accessing DBS at: "+dbs_url)
97 >
98 >        ## check if runs are selected
99          try:
100 <            dbs_version=self.cfg_params['CMSSW.dbs_version']
101 <        except KeyError:
102 <            dbs_version="v00_00_06"
100 >            runselection = parseRange2(self.cfg_params['CMSSW.runselection'])
101 >        except:
102 >            runselection = []
103  
104          ## service API
105          args = {}
106          args['url']     = dbs_url
104        args['version'] = dbs_version
107          args['level']   = 'CRITICAL'
108  
109          api = DBSAPI.dbsApi.DbsApi(args)
110          try:
111 <            files = api.listFiles(self.datasetPath)
111 >            if len(runselection) <= 0 :
112 >                files = api.listDatasetFiles(self.datasetPath)
113 >            else :
114 >                files = api.listFiles(path=self.datasetPath, details=True)
115          except DbsBadRequest, msg:
116              raise DataDiscoveryError_DBS2(msg)
117          except DBSError_DBS2, msg:
118              raise DataDiscoveryError_DBS2(msg)
119 <        
119 >
120          # parse files and fill arrays
121          for file in files :
122              filename = file['LogicalFileName']
123 <            events = file['NumberOfEvents']
124 <            fileblock = file['Block']['Name']
123 >            if filename.find('.dat') < 0 :
124 >                fileblock = file['Block']['Name']
125 >                events    = file['NumberOfEvents']
126 >                continue_flag = 0
127 >                if len(runselection) > 0 :
128 >                    runslist = file['RunsList']
129 >                    for run in runslist :
130 >                        runnumber = run['RunNumber']
131 >                        for selected_run in runselection :
132 >                            if runnumber == selected_run :
133 >                                continue_flag = 1
134 >                else :
135 >                    continue_flag = 1
136 >
137 >                if continue_flag == 1 :
138 >                    # number of events per block
139 >                    if fileblock in self.eventsPerBlock.keys() :
140 >                        self.eventsPerBlock[fileblock] += events
141 >                    else :
142 >                        self.eventsPerBlock[fileblock] = events
143 >
144 >                    # number of events per file
145 >                    self.eventsPerFile[filename] = events
146 >
147 >                    # number of events per block
148 >                    if fileblock in self.blocksinfo.keys() :
149 >                        self.blocksinfo[fileblock].append(filename)
150 >                    else :
151 >                        self.blocksinfo[fileblock] = [filename]
152  
153 <            # number of events per block
154 <            if fileblock in self.eventsPerBlock.keys() :
123 <                self.eventsPerBlock[fileblock] += events
124 <            else :
125 <                self.eventsPerBlock[fileblock] = events
126 <
127 <            # number of events per file
128 <            self.eventsPerFile[filename] = events
129 <
130 <            # number of events per block
131 <            if fileblock in self.blocksinfo.keys() :
132 <                self.blocksinfo[fileblock].append(filename)
133 <            else :
134 <                self.blocksinfo[fileblock] = [filename]
153 >                    # total number of events
154 >                    self.maxEvents += events
155  
156 <            # total number of events
157 <            self.maxEvents += events
156 >        for block in self.eventsPerBlock.keys() :
157 >            common.logger.debug(6,"DBSInfo: total nevts %i in block %s "%(self.eventsPerBlock[block],block))
158  
159          if len(self.eventsPerBlock) <= 0:
160              raise NotExistingDatasetError_DBS2 (("\nNo data for %s in DBS\nPlease check"

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines