Skip to content
This repository was archived by the owner on Sep 12, 2024. It is now read-only.

Commit 45749ad

Browse files
authored
Update reviveFailed.py
some update on reviveFailed
1 parent 9c2a6ce commit 45749ad

File tree

1 file changed

+33
-4
lines changed

1 file changed

+33
-4
lines changed

reviveFailed.py

+33-4
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import resubmit, reqMgrClient
99
import dbs3Client as dbs3
1010
from optparse import OptionParser
11-
from assignSession import *
11+
from Unified.assignSession import *
1212
from utils import *
1313

1414

@@ -35,6 +35,29 @@ def getRequestsFailed(url):
3535
print("{} failed WFs in ReqMgr.".format(len(workflows)))
3636
return workflows
3737

38+
def cleanFailed(list_request_dicts):
39+
revived_names = []
40+
list_request_dicts = [d for d in list_request_dicts if d['key'] == "failed"]
41+
42+
for request_dict in list_request_dicts:
43+
request_name = request_dict['id']
44+
wf = workflowInfo(url, request_name)
45+
wf_family = wf.getFamilly()
46+
if (len(wf_family)):
47+
for wf_scion in wf_family:
48+
scion_name = wf_scion['RequestName']
49+
scion_Rstatus = wf_scion['RequestStatus'] # Request status
50+
51+
all_info = session.query(Workflow).filter(Workflow.name == scion_name).all()
52+
if len(all_info):
53+
revived_names.append(request_name)
54+
print("{} has already been revived.".format(request_name))
55+
continue
56+
57+
for failed_name in revived_names:
58+
print("Rejcting {}...".format(failed_name))
59+
reqMgrClient.rejectWorkflow(url, failed_name)
60+
3861

3962
def findReviveList(list_request_dicts):
4063
"""
@@ -113,13 +136,19 @@ def rejectFailed(url, list_request_dicts):
113136
if __name__ == "__main__":
114137
parser = optparse.OptionParser()
115138
parser.add_option('-r', '--reject', default=False, action = 'store_true', help='Reject all the failed WFs in RegMgr')
139+
parser.add_option('-a', '--revive', default=False, action = 'store_true', help='revive all the failed WFs in RegMgr')
140+
parser.add_option('-c', '--clean', default=False, action = 'store_true', help='clean up the failed WFs in RegMgr')
141+
116142
(options, args) = parser.parse_args()
117143

118144
url='cmsweb.cern.ch'
119145
failedWFs = getRequestsFailed(url)
120-
reviveWFs = findReviveList(failedWFs)
146+
if options.revive:
147+
reviveWFs = findReviveList(failedWFs)
148+
resubmitFailed(reviveWFs)
149+
150+
if options.clean:
151+
cleanFailed(failedWFs)
121152

122-
resubmitFailed(reviveWFs)
123-
124153
if options.reject:
125154
rejectFailed(failedWFs)

0 commit comments

Comments
 (0)