DIRAC
DIRAC copied to clipboard
getRequestFileStatus considers done files that are in canceled request
TLDR: if a Request is canceled when having replicated everything and registered nothing, it ends up being Processed in the TS
In [2]: ReqClient().getRequestStatus(54974805)
Out[2]:
{'OK': True,
'Value': 'Canceled',
'rpcStub': (('RequestManagement/ReqManager',
{'timeout': 600, 'useAccessToken': False}),
'getRequestStatus',
[54974805])}
# This is wrong !!!
[buggyReq.json](https://github.com/user-attachments/files/21147543/buggyReq.json)
In [3]: ReqClient().getRequestFileStatus(54974805,['/lhcb/LHCb/Collision24/TRACKEFF.DST/00276127/0057/00276127_00576011_1.trackeff.dst'])
Out[3]:
{'OK': True,
'Value': {'/lhcb/LHCb/Collision24/TRACKEFF.DST/00276127/0057/00276127_00576011_1.trackeff.dst': 'Done'},
'rpcStub': (('RequestManagement/ReqManager',
{'timeout': 600, 'useAccessToken': False}),
'getRequestFileStatus',
[54974805,
['/lhcb/LHCb/Collision24/TRACKEFF.DST/00276127/0057/00276127_00576011_1.trackeff.dst']])}
In [21]: print(req.RequestName, req.Status)
...: for op in req:
...: print(" ", op.Type, op.Status)
...: for f in op:
...: if f.LFN == '/lhcb/LHCb/Collision24/TRACKEFF.DST/00276127/0057/00276127_00576011_1.trackeff.dst':
...: print(" ", f.Status)
...:
00298938_00022921 Waiting
RegisterReplica Waiting
Waiting
ReplicateAndRegister Done
Done