8
8
import resubmit , reqMgrClient
9
9
import dbs3Client as dbs3
10
10
from optparse import OptionParser
11
- from assignSession import *
11
+ from Unified . assignSession import *
12
12
from utils import *
13
13
14
14
@@ -35,6 +35,29 @@ def getRequestsFailed(url):
35
35
print ("{} failed WFs in ReqMgr." .format (len (workflows )))
36
36
return workflows
37
37
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
+
38
61
39
62
def findReviveList (list_request_dicts ):
40
63
"""
@@ -113,13 +136,19 @@ def rejectFailed(url, list_request_dicts):
113
136
if __name__ == "__main__" :
114
137
parser = optparse .OptionParser ()
115
138
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
+
116
142
(options , args ) = parser .parse_args ()
117
143
118
144
url = 'cmsweb.cern.ch'
119
145
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 )
121
152
122
- resubmitFailed (reviveWFs )
123
-
124
153
if options .reject :
125
154
rejectFailed (failedWFs )
0 commit comments