Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-09 07:58:19

0001 #!/usr/bin/env python
0002 #
0003 # Licensed under the Apache License, Version 2.0 (the "License");
0004 # You may not use this file except in compliance with the License.
0005 # You may obtain a copy of the License at
0006 # http://www.apache.org/licenses/LICENSE-2.0OA
0007 #
0008 # Authors:
0009 # - Wen Guan, <wen.guan@cern.ch>, 2024
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)