List the files that don't have a replica in the specified SE (group) ''' __RCSID__ = "$Id$" if __name__ == '__main__': # Script initialization from LHCbDIRAC.DataManagementSystem.Client.DMScript import DMScript, Script Script.registerSwitch('', 'FixIt', ' Take action to fix the catalogs') Script.setUsageMessage('\n'.join([__doc__, 'Usage:', ' %s [option|cfgfile] [values]' % Script.scriptName, ])) dmScript = DMScript() dmScript.registerDMSwitches() # Directory Script.parseCommandLine(ignoreErrors=True) fixIt = False for opt, val in Script.getUnprocessedSwitches(): if opt == 'FixIt': fixIt = True # imports from DIRAC import gLogger from LHCbDIRAC.DataManagementSystem.Client.ConsistencyChecks import ConsistencyChecks cc = ConsistencyChecks() cc.directories = dmScript.getOption('Directory', []) cc.lfns = dmScript.getOption('LFNs', []) + [lfn for arg in Script.getPositionalArgs() for lfn in arg.split(',')] bkQuery = dmScript.getBKQuery(visible='All') if bkQuery.getQueryDict() != {'Visible': 'All'}: bkQuery.setOption('ReplicaFlag', 'All')
seList = list(set(seList) & set(siteSEs)) else: seList += siteSEs return seList if __name__ == '__main__': # Script initialization from LHCbDIRAC.DataManagementSystem.Client.DMScript import DMScript, Script Script.setUsageMessage('\n'.join([__doc__, 'Usage:', ' %s [option|cfgfile] [values]' % Script.scriptName, ])) dmScript = DMScript() dmScript.registerDMSwitches() maxFiles = 20 Script.registerSwitch('', 'FixIt', ' Take action to fix the catalogs and storage') Script.registerSwitch('', 'Replace', ' Replace bad or missing replicas (default=False)') Script.registerSwitch('', 'NoBK', ' Do not check with BK') Script.registerSwitch('', 'Verbose', ' Set logging mode to INFO') Script.registerSwitch('', 'MaxFiles=', ' Set maximum number of files to be printed (default %d)' % maxFiles) Script.parseCommandLine(ignoreErrors=True) from DIRAC import gLogger fixIt = False bkCheck = True replace = False verbose = False for switch in Script.getUnprocessedSwitches():