Skip to content

Commit 9365640

Browse files
author
efajardo
committed
fix for closeOut for not using oldGlobalMonitor no more
1 parent 3bede97 commit 9365640

File tree

4 files changed

+46
-25
lines changed

4 files changed

+46
-25
lines changed

closeOutWorkflows.py

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,19 @@ def getOverviewRequest():
5959
requests = json.loads(r2.read())
6060
return requests
6161

62+
def getOverviewRequestsWMStats(url):
63+
conn = httplib.HTTPSConnection(url, cert_file = os.getenv('X509_USER_PROXY'),
64+
key_file = os.getenv('X509_USER_PROXY'))
65+
conn.request("GET",
66+
"/couchdb/wmstats/_design/WMStats/_view/requestByStatusAndType?stale=update_after")
67+
response = conn.getresponse()
68+
data = response.read()
69+
conn.close()
70+
myString=data.decode('utf-8')
71+
workflows=json.loads(myString)['rows']
72+
return workflows
73+
74+
6275
#Returns a list with the custodial sites for a request
6376
def findCustodial(url, requestname):
6477
custodialSites=[]
@@ -80,16 +93,21 @@ def findCustodial(url, requestname):
8093
def classifyCompletedRequests(url, requests):
8194
workflows={'ReDigi':[],'MonteCarloFromGEN':[],'MonteCarlo':[] , 'ReReco':[], 'LHEStepZero':[]}
8295
for request in requests:
83-
name=request['request_name']
84-
status='NoStatus'
85-
if 'status' in request.keys():
86-
status=request['status']
87-
requestType='NoType'
88-
if 'type' in request.keys():
89-
requestType=request['type']
96+
name=request['id']
97+
if len(request['key'])<3:
98+
print request
99+
continue
100+
status=request['key'][1]
101+
requestType=request['key'][2]
90102
if status=='completed':
91-
if requestType=='MonteCarloFromGEN' or requestType=='MonteCarlo' or requestType=='LHEStepZero'or requestType=='ReDigi' or requestType=='ReReco':
92-
workflows[requestType].append(name)
103+
if requestType=='MonteCarlo':
104+
datasets=phedexSubscription.outputdatasetsWorkflow(url, name)
105+
if 'GEN' in datasets[0]:
106+
workflows['LHEStepZero'].append(name)
107+
else:
108+
workflows[requestType].append(name)
109+
if requestType=='MonteCarloFromGEN' or requestType=='LHEStepZero'or requestType=='ReDigi' or requestType=='ReReco':
110+
workflows[requestType].append(name)
93111
return workflows
94112

95113
def testOutputDataset(datasetName):
@@ -254,7 +272,7 @@ def PercentageCompletion(url, workflow, dataset):
254272
def main():
255273
url='cmsweb.cern.ch'
256274
print "Gathering Requests"
257-
requests=getOverviewRequest()
275+
requests=getOverviewRequestsWMStats(url)
258276
print "Classifying Requests"
259277
workflowsCompleted=classifyCompletedRequests(url, requests)
260278
print '-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------'

dbsTest.py~

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import urllib2,urllib, httplib, sys, re, os, json, phedexSubscription
44
from xml.dom.minidom import getDOMImplementation
55
from das_client import get_data
66
#das_host='https://das.cern.ch'
7-
das_host='https://cmsweb.cern.ch'
8-
#das_host='https://cmsweb-testbed.cern.ch'
7+
#das_host='https://cmsweb.cern.ch'
8+
das_host='https://cmsweb-testbed.cern.ch'
99
#das_host='https://das-dbs3.cern.ch'
1010

1111
def getWorkflowType(url, workflow):
@@ -177,7 +177,7 @@ def getEventCountDataSet(das_url, dataset):
177177
else:
178178
result = das_data
179179
if result['status'] == 'fail' :
180-
print 'DAS query failed with reason:',result['reason']
180+
print 'DAS query' + query+' failed with reason:',result['reason']
181181
else:
182182
if len(result['data'])==0:#dataset not yet registered in DBS
183183
return 0
@@ -300,7 +300,8 @@ def getEventsBlock(das_url, block_name):
300300
else:
301301
result = das_data
302302
if result['status'] == 'fail' :
303-
print 'DAS query failed with reason:',result['reason']
303+
print 'DAS quert ', query
304+
print 'failed with reason:',result['reason']
304305
else:
305306
if len(result['data'])==0:#dataset not yet registered in DBS
306307
return 0
@@ -408,15 +409,13 @@ def getInputEvents(url, workflow):
408409
if requestType == 'TaskChain':
409410
return handleTaskChain(request)
410411
#In case some parameters miss in the request like blockwhitelist, blockblack list and so on or it was injected as a string.
411-
BlockWhitelist=[]
412-
BlockBlacklist=[]
413-
runWhitelist=[]
414-
runBlacklist=[]
415412
for listitem in ["RunWhitelist", "RunBlacklist", "BlockWhitelist",
416413
"BlockBlacklist"]:
417414
if listitem in request:
418415
if request[listitem]=='[]':
419416
request[listitem]=[]
417+
if type(request[listitem]) is not list:#if there is not a list but just one element we convert it to a list with one element.
418+
request[listitem]=re.split(r",",request[listitem])
420419
else:
421420
request[listitem]=[]
422421
inputDataSet=request['InputDataset']
@@ -430,12 +429,12 @@ def getInputEvents(url, workflow):
430429
else:
431430
return getRunLumiCountDataset(das_host, request['InputDataset'])
432431
events=getEventCountDataSet(das_host, request['InputDataset'])
433-
if len(BlockBlacklist)>0:
434-
events=events-EventsBlockList(request['InputDataset'], request['BlockBlacklist'])
435-
if len(runWhitelist)>0:
436-
events=EventsRunList(das_host, request['InputDataset'], request['RunWhitelist'])
437-
if len(BlockWhitelist)>0:
438-
events=EventsBlockList(das_host, request['InputDataset'], request['BlockWhitelist'])
432+
if len(request['BlockBlacklist'])>0:
433+
events=events-EventsBlockList(request['InputDataset'], request['BlockBlacklist'])
434+
if len(request['RunWhitelist'])>0:
435+
events=EventsRunList(das_host, request['InputDataset'], request['RunWhitelist'])
436+
if len(request['BlockWhitelist'])>0:
437+
events=EventsBlockList(das_host, request['InputDataset'], request['BlockWhitelist'])
439438
if 'FilterEfficiency' in request.keys():
440439
return float(request['FilterEfficiency'])*events
441440
else:

notCustodialDatasets.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ def getBlocksProducedLastWeek(url):
9090

9191
def getdatasetsProducedLastWeek(url):
9292
datasetsWeek=[]
93-
oneWeekTime=time.time()-7*24*60*60
93+
oneWeekTime=time.time()-30*24*60*60
9494
#oneWeekTime=time.time()-3*30*24*60*60
9595
conn = httplib.HTTPSConnection(url, cert_file = os.getenv('X509_USER_PROXY'), key_file = os.getenv('X509_USER_PROXY'))
9696
r1=conn.request("GET",'/phedex/datasvc/json/prod/data?create_since='+str(oneWeekTime)+'&dataset=/*/*/*SIM&level=block')

resubmit.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,10 @@ def retrieveSchema(workflowName, user, group ):
8282
continue
8383
elif value != None:
8484
schema[key] = value
85+
if 'LumisPerJob' not in schema and schema['RequestType']=='MonteCarlo':
86+
schema['LumisPerJob']=300
87+
if 'EventsPerJob' not in schema and schema['RequestType']=='MonteCarlo':
88+
schema['EventsPerJob']=120000
8589
return schema
8690

8791
def submitWorkflow(schema):

0 commit comments

Comments
 (0)