FTSAbstractPlacement

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

Returns:S_OK(FTSRoute)
finishTransferOnRoute(route)

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
strategy.

: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 } >

isRouteValid(route)

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

:param route : FTSRoute

Returns:S_OK or S_ERROR(reason)
refresh(ftsHistoryViews=None)

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

startTransferOnRoute(route)

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