class DIRAC.DataManagementSystem.private.FTSAbstractPlacement.FTSAbstractPlacement(csPath=None, ftsHistoryViews=None)

Bases: object

This class manages all the FTS strategies, routes and what not

__init__(csPath=None, ftsHistoryViews=None)

Nothing special done here :param csPath : path of the CS :param ftsHistoryViews : history view of the db (useful for FTS2)

findRoute(sourceSE, targetSE)

Find the appropriate route from point A to B :param sourceSE : source SE :param targetSE : destination SE


Declare that one finishes a transfer on a given route. Accounting purpose only

:param route : FTSRoute that is used

getReplicationTree(sourceSEs, targetSEs, size, strategy=None)
For multiple source to multiple destination, find the optimal replication

:param sourceSEs : list of source SE :param targetSEs : list of destination SE :param size : size of the File :param strategy : which strategy to use

:returns S_OK(dict) < route name : { dict with key Ancestor, SourceSE, TargetSEtargetSE, Strategy } >


Check whether a given route is valid (whatever that means here)

:param route : FTSRoute

Returns:S_OK or S_ERROR(reason)

Refresh, whatever that means… recalculate all what you need, fetches the latest conf and what not.


Declare that one starts a transfer on a given route. Accounting purpose only

:param route : FTSRoute that is used

class DIRAC.DataManagementSystem.private.FTSAbstractPlacement.FTSRoute(sourceSE, targetSE, ftsServer)

Bases: object

This class represents the route of a transfer: source, dest and which server

__init__(sourceSE, targetSE, ftsServer)

:param sourceSE : source se :param targetSE : destination SE :param ftsServer : fts server to use