#!/usr/bin/env python import sys, os, string, re import urllib def parseOptions(argv): """ Parses command-line options. Returns a dictionary with specified options as keys: -opt1 --> 'opt1' : None -opt2 val --> 'opt2' : 'val' -opt3=val --> 'opt3' : 'val' Usually called as options = parseOptions(sys.argv[1:]) """ options = {} argc = len(argv) i = 0 while ( i < argc ): if argv[i][0] != '-': i = i + 1 continue eq = string.find(argv[i], '=') if eq > 0 : opt = argv[i][:eq] val = argv[i][eq+1:] pass else: opt = argv[i] val = None if ( i+1 < argc and argv[i+1][0] != '-' ): i = i + 1 val = argv[i] pass pass options[opt] = val i = i + 1 pass return options ########################################################################### def getAssignmentID(dataset, owner) : """Get Assignment ID from RefDB using Owner/Dataset Names) """ urlbase = "http://cmsdoc.cern.ch/cms/production/www/cgi/SQL/DsOwnToAs.php?" url = urlbase + "DatasetName=" + dataset + "&OutputOwner=" + owner + "&scriptstep=1" # content = os.popen("wget -q -O - '" + url + "'").readlines(); try: f = urllib.urlopen(url) except IOError: print '\nERROR accessing DsOwnToAs for Owner/Dataset: '+owner+'/'+dataset+'\n' content = f.readlines() assignment = "" for line in content: assignments = re.findall(r'Assignments.*(.*)', line) if assignments: assignments = assignments[0] if assignments.count(',') > 0: head = 'Assignments:' else: head = 'Assignment:'; #print head,assignments #print assignments assignment = assignments.split(',')[0] return assignment ########################################################################### if __name__ == '__main__': # parse command line options options = parseOptions(sys.argv[1:]) # initialize variables owner = 'blank' dataset = 'blank' verbose = '0' help = '0' # fill variables from command line for opt in options.keys(): if ( opt == '-owner' ): owner = options[opt] if ( opt == '-dataset' ): dataset = options[opt] if ( opt == '-verbose' or opt == '-v'): verbose = '1' if ( opt == '-help' or opt == '-h'): help = '1' # error output or usage output if ( owner == 'blank' or dataset == 'blank' or help =='1' ) : print 'assignment.py usage:' print '' print '-owner : (requested)' print '-dataset : (requested)' print '-verbose / -v : verbose output (optional)' print '-help / -h : this message (optional)' print '' sys.exit(0) id = getAssignmentID(dataset,owner) print 'AssignmentId for dataset: ',dataset,' owner: ',owner,' is: ',id