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>, 2025
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)