ReqManagerHandler

Implementation of the RequestDB service in the DISET framework

ReqManager options
ReqManager
{
  Port = 9140
  # If > 0, delay retry for this many minutes
  ConstantRequestDelay = 0
  Authorization
  {
    Default = authenticated
  }
}
class DIRAC.RequestManagementSystem.Service.ReqManagerHandler.ReqManagerHandler(handlerInitDict, trid)

Bases: ReqManagerHandlerMixin, RequestHandler

__init__(handlerInitDict, trid)

Constructor

Parameters:
  • handlerInitDict (dictionary) – Information vars for the service

  • trid (object) – Transport to use

auth_ping = ['all']
auth_refreshConfiguration = ['CSAdministrator']
auth_whoami = ['all']
classmethod export_cancelRequest(requestID)

Cancel a request

classmethod export_deleteRequest(requestID)

Delete the request with the supplied ID

static export_echo(data)

This method is used for testing performance of the service

Parameters:

data (str) – data to be sent back to the caller

Returns:

S_OK, Value is the input data

classmethod export_getBulkRequests(numberOfRequest, assigned)

Get a request of given type from the database

Warning:

the dictionary may contain string keys instead of int (json serialization) Do not forget to cast it back

Parameters:

numberOfRequest – size of the bulk (default 10)

Returns:

S_OK( {Failed : message, Successful : list of Request.toJSON()} )

classmethod export_getDBSummary()

Get the summary of requests in the Request DB

classmethod export_getDigest(requestID)

get digest for a request given its id

Parameters:

requestID (str) – request’s id

Returns:

S_OK( json_str )

classmethod export_getDistinctValuesWeb(attribute)

Get distinct values for a given request attribute. ‘Type’ is interpreted as the operation type

classmethod export_getRequest(requestID=0)

Get a request of given type from the database

classmethod export_getRequestCountersWeb(groupingAttribute, selectDict)

For the web portal. Returns a dictionary {value : counts} for a given key. The key can be any field from the RequestTable. or “Type”, which will be interpreted as ‘Operation.Type’

Parameters:
  • groupingAttribute – attribute used for grouping

  • selectDict – selection criteria

classmethod export_getRequestFileStatus(requestID, lfnList)

get request file status for a given LFNs list and requestID

classmethod export_getRequestIDForName(requestName)

get requestID for given :requestName:

classmethod export_getRequestIDsForJobs(jobIDs)

Select the request IDs for supplied jobIDs

Warning:

the dictionary may contain string keys instead of int (json serialization) Do not forget to cast it back

classmethod export_getRequestIDsList(statusList=None, limit=None, since=None, until=None, getJobID=False)

get requests’ IDs with status in :statusList:

classmethod export_getRequestInfo(requestID)

get request info for a given requestID

classmethod export_getRequestStatus(requestID)

get request status given its id

classmethod export_getRequestSummaryWeb(selectDict, sortList, startItem, maxItems)

Returns a list of Request for the web portal

Parameters:
  • selectDict (dict) – parameter on which to restrain the query {key : Value} key can be any of the Request columns, ‘Type’ (interpreted as Operation.Type) and ‘FromData’ and ‘ToData’ are matched against the LastUpdate field

  • sortList (list) – [sorting column, ASC/DESC]

  • startItem (int) – start item (for pagination)

  • maxItems (int) – max items (for pagination)

classmethod export_getScheduledRequest(operationID)

read scheduled request given operationID

classmethod export_peekRequest(requestID=0)

peek request given its id

export_ping()
export_putRequest(requestJSON)

put a new request into RequestDB

Parameters:
  • cls – class ref

  • requestJSON (str) – request serialized to JSON format

classmethod export_readRequestsForJobs(jobIDs)

read requests for jobs given list of jobIDs

static export_refreshConfiguration(fromMaster)

Force refreshing the configuration data

Parameters:

fromMaster (bool) – flag to refresh from the master configuration service

export_whoami()

A simple whoami, returns all credential dictionary, except certificate chain object.

classmethod getCSOption(optionName, defaultValue=False)

Get an option from the CS section of the services

Returns:

Value for serviceSection/optionName in the CS being defaultValue the default

getRemoteAddress()

Get the address of the remote peer.

Returns:

Address of remote peer.

getRemoteCredentials()

Get the credentials of the remote peer.

Returns:

Credentials dictionary of remote peer.

initialize()

Initialize this instance of the handler (to be overwritten)

classmethod initializeHandler(serviceInfoDict)

initialize handler

srv_disconnect(trid=None)
classmethod srv_disconnectClient(trid)
srv_getActionTuple()
classmethod srv_getCSOption(optionName, defaultValue=False)

Get an option from the CS section of the services

Returns:

Value for serviceSection/optionName in the CS being defaultValue the default

srv_getClientSetup()
srv_getClientVO()
srv_getClientVersion()
srv_getFormattedRemoteCredentials()
classmethod srv_getMonitor()
srv_getRemoteAddress()

Get the address of the remote peer.

Returns:

Address of remote peer.

srv_getRemoteCredentials()

Get the credentials of the remote peer.

Returns:

Credentials dictionary of remote peer.

classmethod srv_getServiceName()
srv_getTransportID()
classmethod srv_getURL()
classmethod srv_msgCreate(msgName)
srv_msgReply(msgObj)
classmethod srv_msgSend(trid, msgObj)
transfer_bulkFromClient(bulkId, token, bulkSize, fileHelper)
transfer_bulkToClient(bulkId, token, fileHelper)
transfer_fromClient(fileId, token, fileSize, fileHelper)
transfer_listBulk(bulkId, token, fileHelper)
transfer_toClient(fileId, token, fileHelper)
types_cancelRequest = [<class 'int'>]
types_deleteRequest = [<class 'int'>]
types_echo = [<class 'str'>]
types_getBulkRequests = [<class 'int'>, <class 'bool'>]
types_getDBSummary = []
types_getDigest = [<class 'int'>]
types_getDistinctValuesWeb = [<class 'str'>]
types_getRequest = [<class 'int'>]
types_getRequestCountersWeb = [<class 'str'>, <class 'dict'>]
types_getRequestFileStatus = [<class 'int'>, [<class 'str'>, <class 'list'>]]
types_getRequestIDForName = [<class 'str'>]
types_getRequestIDsForJobs = [<class 'list'>]
types_getRequestIDsList = [<class 'list'>, <class 'int'>, <class 'str'>]
types_getRequestInfo = [<class 'int'>]
types_getRequestStatus = [<class 'int'>]
types_getRequestSummaryWeb = [<class 'dict'>, <class 'list'>, <class 'int'>, <class 'int'>]
types_getScheduledRequest = [<class 'int'>]
types_peekRequest = [<class 'int'>]
types_ping = []
types_putRequest = [<class 'str'>]
types_readRequestsForJobs = [<class 'list'>]
types_refreshConfiguration = [<class 'bool'>]
types_whoami = []
classmethod validate(request)

request validation

class DIRAC.RequestManagementSystem.Service.ReqManagerHandler.ReqManagerHandlerMixin

Bases: object

class ReqManagerHandler

RequestDB interface in the DISET framework.

classmethod export_cancelRequest(requestID)

Cancel a request

classmethod export_deleteRequest(requestID)

Delete the request with the supplied ID

classmethod export_getBulkRequests(numberOfRequest, assigned)

Get a request of given type from the database

Warning:

the dictionary may contain string keys instead of int (json serialization) Do not forget to cast it back

Parameters:

numberOfRequest – size of the bulk (default 10)

Returns:

S_OK( {Failed : message, Successful : list of Request.toJSON()} )

classmethod export_getDBSummary()

Get the summary of requests in the Request DB

classmethod export_getDigest(requestID)

get digest for a request given its id

Parameters:

requestID (str) – request’s id

Returns:

S_OK( json_str )

classmethod export_getDistinctValuesWeb(attribute)

Get distinct values for a given request attribute. ‘Type’ is interpreted as the operation type

classmethod export_getRequest(requestID=0)

Get a request of given type from the database

classmethod export_getRequestCountersWeb(groupingAttribute, selectDict)

For the web portal. Returns a dictionary {value : counts} for a given key. The key can be any field from the RequestTable. or “Type”, which will be interpreted as ‘Operation.Type’

Parameters:
  • groupingAttribute – attribute used for grouping

  • selectDict – selection criteria

classmethod export_getRequestFileStatus(requestID, lfnList)

get request file status for a given LFNs list and requestID

classmethod export_getRequestIDForName(requestName)

get requestID for given :requestName:

classmethod export_getRequestIDsForJobs(jobIDs)

Select the request IDs for supplied jobIDs

Warning:

the dictionary may contain string keys instead of int (json serialization) Do not forget to cast it back

classmethod export_getRequestIDsList(statusList=None, limit=None, since=None, until=None, getJobID=False)

get requests’ IDs with status in :statusList:

classmethod export_getRequestInfo(requestID)

get request info for a given requestID

classmethod export_getRequestStatus(requestID)

get request status given its id

classmethod export_getRequestSummaryWeb(selectDict, sortList, startItem, maxItems)

Returns a list of Request for the web portal

Parameters:
  • selectDict (dict) – parameter on which to restrain the query {key : Value} key can be any of the Request columns, ‘Type’ (interpreted as Operation.Type) and ‘FromData’ and ‘ToData’ are matched against the LastUpdate field

  • sortList (list) – [sorting column, ASC/DESC]

  • startItem (int) – start item (for pagination)

  • maxItems (int) – max items (for pagination)

classmethod export_getScheduledRequest(operationID)

read scheduled request given operationID

classmethod export_peekRequest(requestID=0)

peek request given its id

export_putRequest(requestJSON)

put a new request into RequestDB

Parameters:
  • cls – class ref

  • requestJSON (str) – request serialized to JSON format

classmethod export_readRequestsForJobs(jobIDs)

read requests for jobs given list of jobIDs

classmethod initializeHandler(serviceInfoDict)

initialize handler

types_cancelRequest = [<class 'int'>]
types_deleteRequest = [<class 'int'>]
types_getBulkRequests = [<class 'int'>, <class 'bool'>]
types_getDBSummary = []
types_getDigest = [<class 'int'>]
types_getDistinctValuesWeb = [<class 'str'>]
types_getRequest = [<class 'int'>]
types_getRequestCountersWeb = [<class 'str'>, <class 'dict'>]
types_getRequestFileStatus = [<class 'int'>, [<class 'str'>, <class 'list'>]]
types_getRequestIDForName = [<class 'str'>]
types_getRequestIDsForJobs = [<class 'list'>]
types_getRequestIDsList = [<class 'list'>, <class 'int'>, <class 'str'>]
types_getRequestInfo = [<class 'int'>]
types_getRequestStatus = [<class 'int'>]
types_getRequestSummaryWeb = [<class 'dict'>, <class 'list'>, <class 'int'>, <class 'int'>]
types_getScheduledRequest = [<class 'int'>]
types_peekRequest = [<class 'int'>]
types_putRequest = [<class 'str'>]
types_readRequestsForJobs = [<class 'list'>]
classmethod validate(request)

request validation