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>, 2019
0010 
0011 
0012 """
0013 operations related to Requests.
0014 """
0015 
0016 from idds.common.constants import RequestStatus
0017 
0018 from idds.core import requests
0019 
0020 
0021 def add_request(scope, name, requester=None, request_type=None, transform_tag=None, workload_id=None,
0022                 status=RequestStatus.New, priority=0, lifetime=None, request_metadata=None):
0023     """
0024     Add a request.
0025 
0026     :param scope: The scope of the request data.
0027     :param name: The name of the request data.
0028     :param requestr: The requester, such as panda, user and so on.
0029     :param request_type: The type of the request, such as ESS, DAOD.
0030     :param transform_tag: Transform tag, such as ATLAS AMI tag.
0031     :param workload_id: The external workload id.
0032     :param status: The request status as integer.
0033     :param priority: The priority as integer.
0034     :param lifetime: The life time as umber of days.
0035     :param request_metadata: The metadata as json.
0036 
0037     :returns: request id.
0038     """
0039     kwargs = {'scope': scope, 'name': name, 'requester': requester, 'request_type': request_type,
0040               'transform_tag': transform_tag, 'status': status, 'priority': priority,
0041               'workload_id': workload_id, 'lifetime': lifetime, 'request_metadata': request_metadata}
0042     return requests.add_request(**kwargs)
0043 
0044 
0045 def get_request(request_id=None, workload_id=None):
0046     """
0047     Get a request or raise a NoObject exception.
0048 
0049     :param request_id: The id of the request.
0050     :param workload_id: The workload_id of the request.
0051 
0052     :raises NoObject: If no request is founded.
0053 
0054     :returns: Request.
0055     """
0056     return requests.get_request(request_id=request_id, workload_id=workload_id)
0057 
0058 
0059 def extend_request(request_id=None, workload_id=None, lifetime=30):
0060     """
0061     extend an request's lifetime.
0062 
0063     :param request_id: The id of the request.
0064     :param workload_id: The workload_id of the request.
0065     :param lifetime: The life time as umber of days.
0066     """
0067     return requests.extend_request(request_id=request_id, workload_id=workload_id, lifetime=lifetime)
0068 
0069 
0070 def cancel_request(request_id=None, workload_id=None):
0071     """
0072     cancel an request.
0073 
0074     :param request_id: The id of the request.
0075     :param workload_id: The workload_id of the request.
0076     """
0077     return requests.cancel_request(request_id=request_id, workload_id=workload_id)
0078 
0079 
0080 def update_request(request_id, parameters):
0081     """
0082     update an request.
0083 
0084     :param request_id: the request id.
0085     :param parameters: A dictionary of parameters.
0086     """
0087     return requests.update_request(request_id, parameters)