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 Health.
0014 """
0015
0016
0017 from idds.common.constants import RequestGroupType, RequestGroupStatus, RequestGroupLocking
0018 from idds.orm.base.session import read_session, transactional_session
0019 from idds.orm import requests_group as orm_requests_group
0020
0021
0022 @transactional_session
0023 def add_request_group(campaign=None, campaign_scope=None, campaign_group=None, campaign_tag=None, requester=None,
0024 username=None, userdn=None, priority=0, group_type=RequestGroupType.Workflow,
0025 status=RequestGroupStatus.New, locking=RequestGroupLocking.Idle, lifetime=None,
0026 new_retries=0, update_retries=0, max_new_retries=3, max_update_retries=0,
0027 new_poll_period=1, update_poll_period=10, group_metadata=None, processing_metadata=None,
0028 max_processing_requests=-1, session=None):
0029 """
0030 Add a request group.
0031
0032 :param campaign: The campaign name.
0033 :param campaign_scope: The campaign scope.
0034 :param campaign_group: The campaign group.
0035 :param campaign_tag: The campaign tag.
0036 :param requester: The requester name.
0037 :param username: The user name.
0038 :param userdn: The user dn.
0039 :param priority: The priority.
0040 :param group_type: The group type.
0041 :param status: The request status as integer.
0042 :param group_metadata: The metadata as json.
0043 :param processing_metadata: The metadata as json.
0044 :param session: The database session.
0045
0046 :returns group id.
0047 """
0048
0049 kwargs = {'campaign': campaign, 'campaign_scope': campaign_scope, 'campaign_group': campaign_group,
0050 'campaign_tag': campaign_tag, 'requester': requester, 'username': username, 'userdn': userdn,
0051 'priority': priority, 'group_type': group_type, 'status': status, 'locking': locking,
0052 'lifetime': lifetime, 'new_retries': new_retries, 'update_retries': update_retries,
0053 'max_new_retries': max_new_retries, 'max_update_retries': max_update_retries,
0054 'new_poll_period': new_poll_period, 'update_poll_period': update_poll_period,
0055 'group_metadata': group_metadata, 'processing_metadata': processing_metadata,
0056 'max_processing_requests': max_processing_requests, 'session': session}
0057
0058 return orm_requests_group.add_request_group(**kwargs)
0059
0060
0061 @read_session
0062 def get_request_groups(campaign=None, campaign_scope=None, campaign_group=None, campaign_tag=None, group_id=None, session=None):
0063 """
0064 Retrieve request groups.
0065
0066 :param campaign: The campaign name.
0067 :param campaign_scope: The campaign scope.
0068 :param campaign_group: The campaign group.
0069 :param campaign_tag: The campaign tag.
0070 :param group_id: The group id.
0071 :param session: The database session.
0072
0073 :returns request groups: list of request groups
0074 """
0075 return orm_requests_group.get_request_groups(campaign=campaign, campaign_scope=campaign_scope, campaign_group=campaign_group,
0076 campaign_tag=campaign_tag, group_id=group_id, session=session)