File indexing completed on 2026-04-10 08:38:59
0001 import sys
0002
0003 from pandajedi.jedicore.JediTaskBufferInterface import JediTaskBufferInterface
0004 from pandajedi.jediddm.DDMInterface import DDMInterface
0005 from pandajedi.jedirefine import RefinerUtils
0006 from pandaserver.taskbuffer.DataCarousel import DataCarouselInterface
0007
0008 vo = "atlas"
0009 jediTaskID = int(sys.argv[1])
0010
0011 print("set tbIF")
0012 tbIF = JediTaskBufferInterface()
0013 tbIF.setupInterface(max_size=1)
0014
0015 print("set ddmIF")
0016 ddmIF = DDMInterface()
0017 ddmIF.setupInterface()
0018
0019 print("set DCIF")
0020 data_carousel_interface = DataCarouselInterface(tbIF, ddmIF.getInterface(vo))
0021 if data_carousel_interface is None:
0022
0023 errStr = f"data carousel interface is undefined for vo={vo}"
0024 print(errStr)
0025 sys.exit(1)
0026
0027 print(f"get task params of {jediTaskID}")
0028 taskParam = tbIF.getTaskParamsWithID_JEDI(jediTaskID)
0029 taskParamMap = RefinerUtils.decodeJSON(taskParam)
0030
0031 print(f"get_input_datasets_to_prestage")
0032 prestaging_list, ret_map = data_carousel_interface.get_input_datasets_to_prestage(jediTaskID, taskParamMap)
0033
0034 if not prestaging_list:
0035
0036 print("no need to prestage")
0037
0038 print(f"resume task {jediTaskID}")
0039 tbIF.sendCommandTaskPanda(jediTaskID, "Test addDataCarouselRequest. No need to prestage. Resumed from staging", True, "resume")
0040 else:
0041
0042 print("to prestage, submitting data carousel requests")
0043 tmp_ret = data_carousel_interface.submit_data_carousel_requests(jediTaskID, prestaging_list)
0044 if tmp_ret:
0045 print(f"submitted data carousel requests for {jediTaskID}: {tmp_ret}")
0046 else:
0047 print(f"failed to submit data carousel requests")