def createDBlink(): # Create a database object. dblink = aix3adb.aix3adb() crab = crabFunctions.CrabController() # Authorize to database. #~ print( "Connecting to database: 'http://cern.ch/aix3adb'" ) dblink.authorize(username = crab.checkusername()) #~ log.info( 'Authorized to database.' ) return dblink
def createDBlink(options): # Create a database object. dblink = aix3adb.aix3adb() # Authorize to database. log.info( "Connecting to database: 'http://cern.ch/aix3adb'" ) dblink.authorize(username = options.user) log.info( 'Authorized to database.' ) return dblink
def __init__(self, directory_path="../cfg/xs/"): # set config file directory ## @var directory # Working directory of the config manager self.directory = os.path.abspath(directory_path) ## @var config # Config object that is being worked on after reading self.config = ConfigParser.SafeConfigParser() ## @var aix3adb # Aix3adb database object self.aix3adb = aix3adb.aix3adb()
def main(): args = commandline_parsing() # Create a database object. dblink = aix3adb.aix3adb() if args.datasetfile or args.dataset or args.samplefile: print '{:<75} {:<5} {:<5} {:<14} {:<12} {:<5} '.format('sample', 'id', 'skimId', 'xs', 'filter_eff', 'kfactor') # work on a list of datasetpath or sample names if args.datasetfile: infilepath = args.datasetfile if args.samplefile: infilepath = args.samplefile missing = [] with open( infilepath, 'r') as infile: identifiers = infile.read().split('\n') for identifier in identifiers: try: if args.datasetfile: skim, sample = dblink.getMCLatestSkimAndSampleByDatasetpath(identifier) if args.samplefile: skim, sample = dblink.getMCLatestSkimAndSampleBySample(identifier) print SkimAndSampleSummary(skim, sample) except Aix3adbException: missing.append( identifier ) if len(missing) > 0: print "No aix3adb entry found for the following datasetpath:" for p in missing: print p if args.dataset: #~ print args.dataset try: skim, sample = dblink.getMCLatestSkimAndSampleByDatasetpath( args.dataset ) print SkimAndSampleSummary(skim, sample) except Aix3adbException: print "no sample found for datasetpath: /n %s " % args.dataset if args.listFields: skim, sample = dblink.getMCSkimAndSampleBySkim( 1601 ) print "Showing list of all available fields with example output" print "Sample:" for key in sample.__dict__.keys(): print '{:<45} : {:<30}'.format( key, sample.__dict__[key]) print "Skim:" for key in skim.__dict__.keys(): print '{:<45} : {:<30}'.format( key, skim.__dict__[key])
def prepare(options, args): skimlist = readConfig( options, args ) if not options.skipcheck: checkGridpack( options.localgridtarfile, options.remotegridtarfile, options.localgridpackdirectory, options.gridpackfiles) dblink = aix3adb.aix3adb() if not options.prepareConfigs == "None": prepareConfigs( skimlist, options ) #~ for ( skim, sample, arguments ) in skimlist: for section in skimlist.keys(): print "Preparing tasks for section {0}.".format(section) print "Found {0} tasks.".format(len( skimlist[ section ] )) for ( skim, sample, arguments ) in skimlist[ section ]: makeTask( options, skim, sample, section, arguments ) if options.test: break
def readConfig(options,args): dblink = aix3adb.aix3adb() config = MyConfigParser() config.read(args[0]) optionNames = ['executable', 'outputfiles', 'inputfiles', "gridoutputfiles", "localgridpackdirectory", "gridpackfiles", "localgridtarfile", "remotegridtarfile", "cmssw", "maxeventsoption", "skipeventsoption", "eventsperjob", "filesperjob", "datasections"] # Add options which are only present in certain cases if not options.prepareConfigs == "None": optionNames.append( 'configdir' ) for option in optionNames: setattr( options, option, config.get("DEFAULT",option) ) try: options.lumi = int( config.get('DEFAULT', 'lumi') ) except:pass try: options.gridoutputfiles = options.gridoutputfiles.split(" ") except: print "error splitting gridoutputfiles" try: options.datasections = options.datasections.split(" ") except: print "error splitting datasections" # parse some infos to other types try: options.eventsperjob = int(options.eventsperjob) except: try: options.filesperjob = int(options.filesperjob) except: print "Error converting some files / rvents per job to int" sectionlist = {} for section in config.sections(): if section in ["DEFAULT"]: continue if section != [] and section not in section: continue mc = not (section in options.datasections) identifiers=config.optionsNoDefault(section) sectionlist.update( {section:[]} ) for identifier in identifiers: arguments = shlex.split(config.get(section, identifier)) try: if identifier[0]=="/": #it's a datasetpath if mc: skim, sample = dblink.getMCLatestSkimAndSampleByDatasetpath(identifier) else: skim, sample = dblink.getDataLatestSkimAndSampleByDatasetpath(identifier) elif identifier.isdigit(): #it's a skim id if mc: skim, sample = dblink.getMCSkimAndSampleBySkim(identifier) else: skim, sample = dblink.getDataSkimAndSampleBySkim(identifier) else: #it's a sample name if mc: skim, sample = dblink.getMCLatestSkimAndSampleBySample(identifier) else: skim, sample = dblink.getDataLatestSkimAndSampleBySample(identifier) except Aix3adbException: print "Can not find sample and skim for identifier %s" % str(identifier) sys.exit(1) sectionlist[ section ].append( ( skim, sample, arguments) ) return sectionlist
def main(): pp = pprint.PrettyPrinter(indent=4) dblink=aix3adb.aix3adb() # Ein Datenbank-Objekt erstellen skim, sample = dblink.getMCLatestSkimAndSampleByDatasetpath("/DarkMatter_MonoZToLL_A_Mx-50_Mv-50_gDMgQ-1_TuneCUETP8M1_13TeV-madgraph/RunIISpring15DR74-Asympt25ns_MCRUN2_74_V9-v1/MINIAODSIM") print skim.__dict__ liste = len(dblink.searchDataSkimsAndSamples({"owner":"serdweg",'id':'>80'},dict())) print liste #dblink=aix3adb.aix3adbAuth(username="******") #dblink.searchMCSkimsAndSamples raise Exception() # Insert a sample print "Insert a sample" sample0 = aix3adb.MCSample() sample0.name=id_generator() sample1 = dblink.insertMCSample(sample0) print sample1.__dict__ # Insert a skim print "Insert a skim" skim0 = aix3adb.MCSkim() file1={"path":"blub1","nevents":19999} file2={"path":"blub2","nevents":1} files=[file1,file2] skim0.files = files skim0.datasetpath=id_generator() skim0.sampleid=sample1.id skim1 = dblink.insertMCSkim(skim0) print skim1.__dict__ # Request Sample print "Request Sample" sample2 = dblink.getMCSample(sample1.name) print sample2.__dict__ # Request Skim print "Request Skim" skim2 = dblink.getMCSkim(skim1.id) print skim2.__dict__ # Edit sample print "Edit sample - set energy to 99" sample2.energy="99" sample3 = dblink.editMCSample(sample2) print sample3.__dict__ # Edit skim print "Edit skim - change files and set to finished" skim2.isfinished="1" file1={"path":"neuerpath","nevents":5} file2={"path":"neuerpath2","nevents":5} files=[file1,file2] skim2.files = files skim3 = dblink.editMCSkim(skim2) print skim3.__dict__ # Request Sample and skim with skimid and samplename print "Request Sample and skim with skimid and samplename" skim4, sample4 = dblink.getMCSkimAndSample(skim3.id, sample3.name) print skim4.__dict__, sample4.__dict__ # Request Sample and skim with samplename only print "Request Sample and skim with samplename only" skim5, sample5 = dblink.getMCSkimAndSample(None, sample3.name) print skim5.__dict__, sample5.__dict__ # Request Sample and skim with skimid only print "Request Sample and skim with skimid only" skim6, sample6 = dblink.getMCSkimAndSample(skim3.id, None) print skim6.__dict__, sample6.__dict__ # Request Sample and skim with not skimid and samplename not matching print "Request Sample and skim with not skimid and samplename not matching" skim7, sample7 = dblink.getMCSkimAndSample(skim3.id, "das ist der falsche sample name") print skim7.__dict__, sample7.__dict__