File indexing completed on 2026-04-10 08:39:00
0001 import json
0002 import sys
0003
0004 from pandajedi.jedicore.JediTaskBufferInterface import JediTaskBufferInterface
0005 from pandajedi.jediddm.DDMInterface import DDMInterface
0006 from pandajedi.jedirefine import RefinerUtils
0007 from pandaserver.taskbuffer.DataCarousel import DataCarouselInterface
0008
0009 vo = "atlas"
0010 request_id = int(sys.argv[1])
0011 json_to_update = str(sys.argv[2])
0012
0013 print("set tbIF")
0014 tbIF = JediTaskBufferInterface()
0015 tbIF.setupInterface(max_size=1)
0016
0017 print("set ddmIF")
0018 ddmIF = DDMInterface()
0019 ddmIF.setupInterface()
0020
0021 print("set DCIF")
0022 data_carousel_interface = DataCarouselInterface(tbIF, ddmIF.getInterface(vo))
0023 if data_carousel_interface is None:
0024
0025 errStr = f"data carousel interface is undefined for vo={vo}"
0026 print(errStr)
0027 sys.exit(1)
0028
0029 with data_carousel_interface.global_dc_lock(timeout_sec=60, lock_expiration_sec=300) as full_pid:
0030
0031 if full_pid is None:
0032 print(f"timed out without getting lock")
0033 sys.exit(1)
0034
0035 print(f"get spec request_id={request_id}")
0036 dc_req_spec = None
0037 if request_id is not None:
0038
0039 dc_req_spec = data_carousel_interface.get_request_by_id(request_id)
0040
0041
0042 print(f"update parameters of request_id={request_id}")
0043 if dc_req_spec and (dict_to_update := json.loads(json_to_update)):
0044 dc_req_spec.update_parameters(dict_to_update)
0045 tbIF.update_data_carousel_request_JEDI(dc_req_spec)
0046 print(f"updated request_id={request_id} with parameters: {dict_to_update}")
0047 elif dc_req_spec is None:
0048 print(f"request_id={request_id} not found")
0049 else:
0050 print(f"no parameters to update for request_id={request_id}")