def Run(idx_row): output_msg = '' KEY = '1bAdzoB9bg6nbyxCOBsTAWSSJy6FHNfmkrIDqY-Nmdi0' sheet = '2016' title_list = GetTitleFromSpreadsheet(KEY, sheet, i_column="A", f_column="Z") info_list = GetInfoFromSpreadsheet(idx_row, KEY, sheet, i_column="A", f_column="Z") this_dic = {} for i in range(0, len(title_list)): title = title_list[i] #print title value = info_list[i] #print value this_dic[title] = value FullFragment = MakeFullFragment(this_dic["gridpackPATH"], this_dic["PSfragment"], this_dic["card_ref"]) generator_parameters=Make_generator_parameters(this_dic["cross_section"],\ this_dic["filter_efficiency"],\ this_dic["filter_efficiency_error"],\ this_dic["match_efficiency"],\ this_dic["match_efficiency_error"],\ this_dic["negative_weights_fraction"]) print this_dic['dataset_name'] new_request = { 'pwg': 'HIG', 'member_of_campaign': this_dic['member_of_campaign'], 'dataset_name': this_dic['dataset_name'], 'generators': this_dic['generators'].split(','), "fragment": FullFragment, 'generator_parameters': generator_parameters, 'total_events': int(this_dic['total_events']), 'mcdb_id': 0, 'size_event': [600], 'time_event': [60.] } if this_dic["PrepID"] != '': #print "ALREADY" mcm = McM(dev=False) this_request = mcm.get("requests", this_dic["PrepID"]) for key in new_request: this_request[key] = new_request[key] update = mcm.update('requests', this_request) return str(update) # push it to McM #mcm = McM(dev=False,cookie="dev-cookie.txt") #mcm = McM(dev=False,cookie='prod-cookie.txt') mcm = McM(dev=False) put_answer = mcm.put('requests', new_request) if put_answer.get('results'): prepid = put_answer['prepid'] print('New PrepID: %s' % (prepid)) #f.write(prepid+'\n') output_msg = str(prepid) else: print('Something went wrong while creating a request. %s' % (dumps(put_answer))) #f.write("fail,idx_row-->"+this_dic['dataset_name']+'\n') output_msg = "fail" + str(idx_row) + "-->" + this_dic['dataset_name'] #print output_msg return output_msg
f.write(clone_answer['prepid'] + '\n') #modify and update cloned request #note that these modifications must be done after cloning since they might otherwise be reset cloned_request = mcm.get('requests', clone_answer['prepid']) total_events = request['total_events'] modifications = { #'dataset_name' : datasetname, #'fragment' : fragment, #'extension' : 0, 'total_events': int(total_events * 1.5), #'process_string' : '', #'memory' : 4000, 'keep_output': [False] #'keep_output' : [True] # Special for long-lived models } # Make predefined modifications for key in modifications: cloned_request[key] = modifications[key] cloned_request['sequences'][0][ 'customise_commands'] = '"process.source.numberEventsInLuminosityBlock = cms.untracked.uint32(200)"' #update the cloned request update_response = mcm.update('requests', cloned_request) updated_clone = mcm.get('requests', clone_answer['prepid']) f.close()
(request['prepid'])) continue #print('Will leave %s' % (member_of_chains[-1])) # Leave the last (with biggest number) chain #member_of_chains = member_of_chains[:-1] print('Will delete:') for chain_prepid in member_of_chains: print(' %s' % (chain_prepid)) for chain_prepid in member_of_chains: print('Deleting %s' % (chain_prepid)) chain = mcm.get('chained_requests', chain_prepid) chain['action_parameters']['flag'] = False mcm.update('chained_requests', chain) requests_in_chain = mcm.get('requests', query='member_of_chain=%s' % (chain_prepid)) requests_inverted = [] for request_in_chain in requests_in_chain: requests_inverted.append(request_in_chain) requests_inverted = list(reversed(requests_inverted)) for request_in_chain in requests_inverted: print("Which requests are in the chain? " +
query='prepid=%s' % (chained_request_id)) if (len(chained_requests[0]['chain']) < 3): continue if ('PU0' in chained_requests[0]['prepid']): continue request_prepid_to_update = chained_requests[0]['chain'][1] request_to_update = mcm.get('requests', request_prepid_to_update) field_to_update = 'tags' print('Request\'s "%s" field "%s" BEFORE update: %s' % (request_prepid_to_update, field_to_update, request_to_update[field_to_update])) # Modify what we want request_to_update[field_to_update] = ["MTDTDRAutumn18PU200DR"] # Push it back to McM update_response = mcm.update('requests', request_to_update) print('Update response: %s' % (update_response)) # Fetch the request again, after the update, to check whether value actually changed request2 = mcm.get('requests', request_prepid_to_update) print( 'Request\'s "%s" field "%s" AFTER update: %s' % (request_prepid_to_update, field_to_update, request2[field_to_update]))
Take all chained requests that these requests are members of. Leave only those chained requests that have MiniAODv3 in their name. Skip (remove) chained request with biggest number (the last one). For all chained requests that are left in the list, set action_parameters.flag to False, delete requests in them if these requests appear only in that chained request, delete chained request itself. """ import sys sys.path.append('/afs/cern.ch/cms/PPD/PdmV/tools/McM/') from rest import McM # McM instance mcm = McM(dev=False, cookie='/afs/cern.ch/user/p/pgunnell/private/prod-cookie.txt') # Iterate through all requests in the range chain_prepid = 'chain_RunIIFall18pLHE_*Fall18GS*_flowRunIIFall18DR*' chains = mcm.get('chained_campaigns', query='prepid=%s' % (chain_prepid)) for chain in chains: print chain['prepid'] chain['valid'] = False answer = mcm.update('chained_campaigns', chain) print answer
print( str(root_id_req['dataset_name']) + ' ' + str(root_id_req['prepid']) + ' https://cms-pdmv.cern.ch/mcm/requests?prepid=' + str(root_id_req['prepid'])) answer = mcm._McM__get('restapi/requests/approve/%s' % (root_mini_req['prepid'])) answer = mcm._McM__get('restapi/requests/approve/%s' % (root_nano_req['prepid'])) #mcm._McM__get('restapi/chained_requests/flow/%s/force' % (chained_request['prepid'])) continue chained_request['action_parameters']['flag'] = False answer = mcm.update('chained_requests', chained_request) print answer if (len(chained_request['chain']) > 3): mcm._McM__get('restapi/chained_requests/rewind/%s' % (chained_request['prepid'])) #mcm._McM__get('restapi/requests/reset/%s' % (root_nano_req['prepid'])) answer = mcm.delete('requests', root_nano_req['prepid']) print answer mcm._McM__get('restapi/chained_requests/rewind/%s' % (chained_request['prepid'])) #mcm._McM__get('restapi/requests/reset/%s' % (root_mini_req['prepid'])) answer = mcm.delete('requests', root_mini_req['prepid']) print answer
def Run(idx_row,KEY,sheet): output_msg='' #KEY='1bAdzoB9bg6nbyxCOBsTAWSSJy6FHNfmkrIDqY-Nmdi0' #sheet='2018' info_list=GetInfoFromSpreadsheet(idx_row,KEY,sheet,i_column="A",f_column="Z") if len(info_list)==0: print "pass" return title_list=GetTitleFromSpreadsheet(KEY,sheet,i_column="A",f_column="Z") this_dic={} for i in range(0,len(title_list)): title=title_list[i] #print title value=info_list[i] #print value if not value.replace(' ','')=='': #print title this_dic[title]=value ##Combine card refs if 'card_ref2' in this_dic: this_dic['card_ref']=this_dic['card_ref']+'\n'+this_dic['card_ref2'] if not 'size_event' in this_dic: this_dic['size_event']=[600] elif this_dic['size_event'].replace(' ','')=='': this_dic['size_event']=[600] if not 'time_event' in this_dic: this_dic['time_event']=[60] elif this_dic['time_event'].replace(' ','')=='': this_dic['time_event']=[60.] FullFragment=MakeFullFragment(this_dic["gridpackPATH"], this_dic["PSfragment"],this_dic["card_ref"]) generator_parameters=Make_generator_parameters(float(this_dic["cross_section"]),\ float(this_dic["filter_efficiency"]),\ float(this_dic["filter_efficiency_error"]),\ float(this_dic["match_efficiency"]),\ float(this_dic["match_efficiency_error"]),\ float(this_dic["negative_weights_fraction"])) print this_dic['dataset_name'] #print this_dic['PrepID'] new_request = {'pwg': 'HIG', 'member_of_campaign': this_dic['member_of_campaign'],'dataset_name':this_dic['dataset_name'],'generators':this_dic['generators'].split(','),"fragment":FullFragment,'generator_parameters':generator_parameters,'total_events':int(this_dic['total_events']),'mcdb_id':0,'size_event':this_dic['size_event'],'time_event':this_dic['time_event']} check_reqeust_info(this_dic) if 'PrepID' in this_dic: #print "ALREADY" mcm = McM(dev=False) this_request=mcm.get("requests",this_dic["PrepID"]) for key in new_request: this_request[key]=new_request[key] if not this_request['approval'] == 'none': print "already submiited" return this_dic["PrepID"]+'not None status, not updated' update=mcm.update('requests', this_request) return this_dic["PrepID"]+str(update['results']) # push it to McM #mcm = McM(dev=False,cookie="dev-cookie.txt") #mcm = McM(dev=False,cookie='prod-cookie.txt') mcm = McM(dev=False) put_answer = mcm.put('requests', new_request) if put_answer.get('results'): prepid=put_answer['prepid'] print('New PrepID: %s' % (prepid)) #f.write(prepid+'\n') output_msg=str(prepid) else: print('Something went wrong while creating a request. %s' % (dumps(put_answer))) #f.write("fail,idx_row-->"+this_dic['dataset_name']+'\n') output_msg="fail"+str(idx_row)+"-->"+this_dic['dataset_name'] #print output_msg return output_msg
present_ul18 = False present_ul16 = False present_ul16apv = False if request_ul17['interested_pwg']: text_pwg = ','.join(request_ul17['interested_pwg']) else: text_pwg = request_ul17['prepid'].split('-')[0] for request_ul18 in requests_ul18: if request_ul18['dataset_name'] == dataset_name: request_ul18['interested_pwg'] = interested_pwgs logger.info('Will update (UL18) %s interested PWGs to %s', request_ul18['prepid'], interested_pwgs) update_response = mcm.update('requests', request_ul18) logger.info('Update response (UL18): %s', update_response) present_ul18 = True for request_ul16 in requests_ul16: if request_ul16['dataset_name'] == dataset_name: request_ul16['interested_pwgs'] = interested_pwgs logger.info('Will update (UL16) %s interested PWGs to %s', request_ul16['prepid'], interested_pwgs) update_response = mcm.update('requests', request_ul16) logger.info('Update response (UL16): %s', update_response) present_ul16 = True for request_ul16apv in requests_ul16apv:
(chained_request['prepid'])) print answer answer = mcm._McM__get('restapi/requests/reset/%s' % (request['prepid'])) print answer for request in requests: break print request['prepid'] request = mcm.get('requests', request['prepid']) request[field_to_update] = 'new_pmx' answer = mcm.update('requests', request) print answer request2 = mcm.get('requests', request['prepid']) print request2['process_string'] for request in requests: break answer = mcm._McM__get('restapi/requests/approve/%s' % (request['prepid'])) print answer chained_requests = request['member_of_chain']