FTS3Operation

class DIRAC.DataManagementSystem.Client.FTS3Operation.FTS3Operation(ftsFiles=None, username=None, userGroup=None, rmsReqID=-1, rmsOpID=0, sourceSEs=None, activity=None, priority=None)

Bases: DIRAC.Core.Utilities.JEncode.JSerializable

Abstract class to represent an operation to be executed by FTS. It is a container for FTSFiles, as well as for FTSJobs.

There can be a mapping between one FTS3Operation and one RMS Operation.

The FTS3Operation takes care of generating the appropriate FTSJobs, and to perform a callback when the work with FTS is over. The actual generation and callback depends on the subclass.

This class should not be instantiated directly, but rather one of its subclass

ALL_STATES = ['Active', 'Processed', 'Finished', 'Canceled', 'Failed']
FINAL_STATES = ['Finished', 'Canceled', 'Failed']
INIT_STATE = 'Active'
__init__(ftsFiles=None, username=None, userGroup=None, rmsReqID=-1, rmsOpID=0, sourceSEs=None, activity=None, priority=None)
Parameters:
  • ftsFiles – list of FTS3Files object that belongs to the operation
  • username – username whose proxy should be used
  • userGroup – group that should be used with username
  • rmsReqID – ID of the Request in the RMS system
  • rmsOpID – ID of the Operation in the RMS system
  • sourceSEs – list of SE to be used as source (if applicable)
  • activity – FTS activity to use
  • priority – FTS priority to use
activity
assignment
callback()

Trigger the callback once all the FTS interactions are done and update the status of the Operation to ‘Finished’ if successful

creationTime
error
classmethod fromRMSObjects(rmsReq, rmsOp, username)

Construct an FTS3Operation object from the RMS Request and Operation corresponding. The attributes taken are the OwnerGroup, Request and Operation IDS, sourceSE, and activity and priority if they are defined in the Argument field of the operation

Parameters:
  • rmsReq – RMS Request object
  • rmsOp – RMS Operation object
  • username – username to which associate the FTS3Operation (normally comes from the Req OwnerDN)
Returns:

FTS3Operation object

ftsFiles
ftsJobs
init_on_load()

This method initializes some attributes. It is called by sqlalchemy (which does not call __init__)

isTotallyProcessed()

Returns True if and only if there is nothing else to be done by FTS for this operation. All files are successful or definitely failed

lastUpdate
operationID
prepareNewJobs(maxFilesPerJob=100, maxAttemptsPerFile=10)

Prepare the new jobs that have to be submitted

Parameters:
  • maxFilesPerJob – maximum number of files assigned to a job
  • maxAttemptsPerFile – maximum number of retry after an fts failure
Returns:

list of jobs

priority
rmsOpID
rmsReqID
sourceSEs
status
type
userGroup
username
vo

return vo of the usergroup

Type:returns
class DIRAC.DataManagementSystem.Client.FTS3Operation.FTS3StagingOperation(ftsFiles=None, username=None, userGroup=None, rmsReqID=-1, rmsOpID=0, sourceSEs=None, activity=None, priority=None)

Bases: DIRAC.DataManagementSystem.Client.FTS3Operation.FTS3Operation

Class to be used for a Staging operation

ALL_STATES = ['Active', 'Processed', 'Finished', 'Canceled', 'Failed']
FINAL_STATES = ['Finished', 'Canceled', 'Failed']
INIT_STATE = 'Active'
__init__(ftsFiles=None, username=None, userGroup=None, rmsReqID=-1, rmsOpID=0, sourceSEs=None, activity=None, priority=None)
Parameters:
  • ftsFiles – list of FTS3Files object that belongs to the operation
  • username – username whose proxy should be used
  • userGroup – group that should be used with username
  • rmsReqID – ID of the Request in the RMS system
  • rmsOpID – ID of the Operation in the RMS system
  • sourceSEs – list of SE to be used as source (if applicable)
  • activity – FTS activity to use
  • priority – FTS priority to use
activity
assignment
callback()

Trigger the callback once all the FTS interactions are done and update the status of the Operation to ‘Finished’ if successful

creationTime
error
classmethod fromRMSObjects(rmsReq, rmsOp, username)

Construct an FTS3Operation object from the RMS Request and Operation corresponding. The attributes taken are the OwnerGroup, Request and Operation IDS, sourceSE, and activity and priority if they are defined in the Argument field of the operation

Parameters:
  • rmsReq – RMS Request object
  • rmsOp – RMS Operation object
  • username – username to which associate the FTS3Operation (normally comes from the Req OwnerDN)
Returns:

FTS3Operation object

ftsFiles
ftsJobs
init_on_load()

This method initializes some attributes. It is called by sqlalchemy (which does not call __init__)

isTotallyProcessed()

Returns True if and only if there is nothing else to be done by FTS for this operation. All files are successful or definitely failed

lastUpdate
operationID
prepareNewJobs(maxFilesPerJob=100, maxAttemptsPerFile=10)

Prepare the new jobs that have to be submitted

Parameters:
  • maxFilesPerJob – maximum number of files assigned to a job
  • maxAttemptsPerFile – maximum number of retry after an fts failure
Returns:

list of jobs

priority
rmsOpID
rmsReqID
sourceSEs
status
type
userGroup
username
vo

return vo of the usergroup

Type:returns
class DIRAC.DataManagementSystem.Client.FTS3Operation.FTS3TransferOperation(ftsFiles=None, username=None, userGroup=None, rmsReqID=-1, rmsOpID=0, sourceSEs=None, activity=None, priority=None)

Bases: DIRAC.DataManagementSystem.Client.FTS3Operation.FTS3Operation

Class to be used for a Replication operation

ALL_STATES = ['Active', 'Processed', 'Finished', 'Canceled', 'Failed']
FINAL_STATES = ['Finished', 'Canceled', 'Failed']
INIT_STATE = 'Active'
__init__(ftsFiles=None, username=None, userGroup=None, rmsReqID=-1, rmsOpID=0, sourceSEs=None, activity=None, priority=None)
Parameters:
  • ftsFiles – list of FTS3Files object that belongs to the operation
  • username – username whose proxy should be used
  • userGroup – group that should be used with username
  • rmsReqID – ID of the Request in the RMS system
  • rmsOpID – ID of the Operation in the RMS system
  • sourceSEs – list of SE to be used as source (if applicable)
  • activity – FTS activity to use
  • priority – FTS priority to use
activity
assignment
callback()

Trigger the callback once all the FTS interactions are done and update the status of the Operation to ‘Finished’ if successful

creationTime
error
classmethod fromRMSObjects(rmsReq, rmsOp, username)

Construct an FTS3Operation object from the RMS Request and Operation corresponding. The attributes taken are the OwnerGroup, Request and Operation IDS, sourceSE, and activity and priority if they are defined in the Argument field of the operation

Parameters:
  • rmsReq – RMS Request object
  • rmsOp – RMS Operation object
  • username – username to which associate the FTS3Operation (normally comes from the Req OwnerDN)
Returns:

FTS3Operation object

ftsFiles
ftsJobs
init_on_load()

This method initializes some attributes. It is called by sqlalchemy (which does not call __init__)

isTotallyProcessed()

Returns True if and only if there is nothing else to be done by FTS for this operation. All files are successful or definitely failed

lastUpdate
operationID
prepareNewJobs(maxFilesPerJob=100, maxAttemptsPerFile=10)

Prepare the new jobs that have to be submitted

Parameters:
  • maxFilesPerJob – maximum number of files assigned to a job
  • maxAttemptsPerFile – maximum number of retry after an fts failure
Returns:

list of jobs

priority
rmsOpID
rmsReqID
sourceSEs
status
type
userGroup
username
vo

return vo of the usergroup

Type:returns