File indexing completed on 2026-04-09 07:58:19
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 """
0013 operations related to Conditions.
0014 """
0015
0016
0017 from idds.common.constants import ConditionStatus
0018 from idds.orm.base.session import read_session, transactional_session
0019 from idds.orm import conditions as orm_conditions
0020
0021
0022 @transactional_session
0023 def add_condition(request_id, internal_id, status=ConditionStatus.WaitForTrigger,
0024 substatus=None, is_loop=False, loop_index=None, cloned_from=None,
0025 evaluate_result=None, previous_transforms=None, following_transforms=None,
0026 condition=None, session=None):
0027 """
0028 Add a condition.
0029
0030 :param request_id: The request id.
0031 :param intenal_id: The internal id.
0032 :param status: The status about the condition.
0033 :param substatus: The substatus about the condition.
0034 :param is_loop: Whether it's a loop condition.
0035 :param loop_index: The loop index if it's a loop.
0036 :param cloned_from: The original condition if it's a loop.
0037 :param evaluate_result: The condition's evaluated result.
0038 :param previous_transforms: The previous transforms which can trigger this condition.
0039 :param following_transorms: The following transforms which will be triggered.
0040 :param condition: The condition function.
0041 :param session: The database session.
0042 """
0043
0044 cond_id = orm_conditions.add_condition(request_id=request_id, internal_id=internal_id,
0045 status=status, substatus=substatus, is_loop=is_loop,
0046 loop_index=loop_index, cloned_from=cloned_from,
0047 evaluate_result=evaluate_result,
0048 previous_transforms=previous_transforms,
0049 following_transforms=following_transforms,
0050 condition=condition,
0051 session=session)
0052 return cond_id
0053
0054
0055 @transactional_session
0056 def update_condition(condition_id, parameters, session=None):
0057 """
0058 Update condition.
0059
0060 :param condition_id: The condition id.
0061 :param parameters: Parameters as a dict.
0062 :param session: The database session.
0063 """
0064 orm_conditions.update_condition(condition_id=condition_id, parameters=parameters, session=session)
0065
0066
0067 @transactional_session
0068 def update_conditions(conditions, session=None):
0069 """
0070 Update conditions.
0071
0072 :param conditions: Condtions as a list of dict.
0073 :param session: The database session.
0074 """
0075 orm_conditions.update_conditions(conditions=conditions, session=session)
0076
0077
0078 @read_session
0079 def retrieve_conditions(request_id, internal_id=None, status=None, session=None):
0080 """
0081 Retrieve conditions
0082
0083 :param request_id: The request id.
0084 :param intenal_id: The internal id.
0085 :param status: The status about the condition.
0086 :param session: The database session.
0087
0088 :returns command: List of conditions
0089 """
0090 conds = orm_conditions.retrieve_conditions(request_id=request_id, internal_id=internal_id,
0091 status=status, session=session)
0092 return conds
0093
0094
0095 @transactional_session
0096 def delete_conditions(request_id=None, internal_id=None, session=None):
0097 """
0098 Delete all conditions with the given IDs.
0099
0100 :param request_id: The request id.
0101 :param intenal_id: The internal id.
0102 :param session: The database session.
0103 """
0104 orm_conditions.delete_condtions(request_id=request_id, internal_id=internal_id, session=session)