Class RemoteTransfer


  • public class RemoteTransfer
    extends java.lang.Object
    A common class, that builds up the state from the properties to determine whether a user wants certain type of transfer jobs for particular site to run remotely. This allows a user to override the default behavior of how Pegasus decides whether a transfer job runs locally ( on the submit host) or remotely.
    Version:
    $Revision$
    Author:
    Karan Vahi
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private static class  RemoteTransfer.TransferState
      An inner class that holds the state for a particular site,as to whether to execute transfers remotely or not.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String ALL_SITES
      The constant to apply to all sites.
      static java.lang.String ALL_TRANSFERS_REMOTE_PROPERTY
      The property name to get the sites for which all transfers need to be executed remotely.
      static java.lang.String INTER_TRANSFERS_REMOTE_PROPERTY
      The property name to get the sites for which inter site transfers need to be executed remotely.
      private LogManager mLogger
      The handle to the logging object.
      private static java.util.Map mPropertyTable
      An internal table that maps remote transfer type to the corresponding property.
      private PegasusProperties mProps
      The handle to the properties object holding the properties relevant to Pegasus.
      private java.util.Map mStateMap
      The map indexed by site name, that contains the state for all the sites.
      static java.lang.String STAGE_IN_TRANSFERS_REMOTE_PROPERTY
      The property name to get the sites for which stage-in transfers need to be executed remotely.
      static java.lang.String STAGE_OUT_TRANSFERS_REMOTE_PROPERTY
      The property name to get the sites for which stage-out transfers need to be executed remotely.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void buildState()
      Builds up the remote transfers state for all the sites.
      private void buildState​(int type)
      Adds to the existing state table, state information for a particular type of transfers.
      private boolean containsKey​(java.lang.String site)
      Returns whether there is an entry for a particular site or not.
      private RemoteTransfer.TransferState get​(java.lang.String site)
      Returns the TPT state for a particular site.
      private java.util.Set getThirdPartySites​(java.lang.String value)
      Returns a set of third party sites.
      boolean interOnRemoteSite​(java.lang.String site)
      Returns a boolean indicating whether to execute inter site transfers on remote site or not.
      void print()
      Prints out the third party state for the various sites.
      private static java.util.Map propertyTable()
      Singleton access to the type table Contains the mapping of a property to the third party transfer type
      private void put​(java.lang.String site, RemoteTransfer.TransferState state)
      Inserts an entry in to the State Map, that maintains state of various sites.
      boolean stageInOnRemoteSite​(java.lang.String site)
      Returns a boolean indicating whether to execute stage-in transfers on remote site or not.
      boolean stageOutOnRemoteSite​(java.lang.String site)
      Returns a boolean indicating whether to execute stage-out transfers on remote site or not.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • ALL_SITES

        public static final java.lang.String ALL_SITES
        The constant to apply to all sites.
        See Also:
        Constant Field Values
      • ALL_TRANSFERS_REMOTE_PROPERTY

        public static final java.lang.String ALL_TRANSFERS_REMOTE_PROPERTY
        The property name to get the sites for which all transfers need to be executed remotely.
        See Also:
        Constant Field Values
      • STAGE_IN_TRANSFERS_REMOTE_PROPERTY

        public static final java.lang.String STAGE_IN_TRANSFERS_REMOTE_PROPERTY
        The property name to get the sites for which stage-in transfers need to be executed remotely.
        See Also:
        Constant Field Values
      • INTER_TRANSFERS_REMOTE_PROPERTY

        public static final java.lang.String INTER_TRANSFERS_REMOTE_PROPERTY
        The property name to get the sites for which inter site transfers need to be executed remotely.
        See Also:
        Constant Field Values
      • STAGE_OUT_TRANSFERS_REMOTE_PROPERTY

        public static final java.lang.String STAGE_OUT_TRANSFERS_REMOTE_PROPERTY
        The property name to get the sites for which stage-out transfers need to be executed remotely.
        See Also:
        Constant Field Values
      • mPropertyTable

        private static java.util.Map mPropertyTable
        An internal table that maps remote transfer type to the corresponding property.
      • mProps

        private PegasusProperties mProps
        The handle to the properties object holding the properties relevant to Pegasus.
      • mLogger

        private LogManager mLogger
        The handle to the logging object.
      • mStateMap

        private java.util.Map mStateMap
        The map indexed by site name, that contains the state for all the sites.
    • Constructor Detail

      • RemoteTransfer

        public RemoteTransfer()
        The default constructor.
      • RemoteTransfer

        public RemoteTransfer​(PegasusProperties properties)
        The overloaded constructor.
        Parameters:
        properties - handle to the properties required.
    • Method Detail

      • propertyTable

        private static java.util.Map propertyTable()
        Singleton access to the type table Contains the mapping of a property to the third party transfer type
        Returns:
        map
      • buildState

        public void buildState()
        Builds up the remote transfers state for all the sites. This reflects what is set in the properties file.
      • buildState

        private void buildState​(int type)
        Adds to the existing state table, state information for a particular type of transfers.
        Parameters:
        type - the type of transfer.
      • stageInOnRemoteSite

        public boolean stageInOnRemoteSite​(java.lang.String site)
        Returns a boolean indicating whether to execute stage-in transfers on remote site or not.
        Returns:
        boolean
      • interOnRemoteSite

        public boolean interOnRemoteSite​(java.lang.String site)
        Returns a boolean indicating whether to execute inter site transfers on remote site or not.
        Returns:
        boolean
      • stageOutOnRemoteSite

        public boolean stageOutOnRemoteSite​(java.lang.String site)
        Returns a boolean indicating whether to execute stage-out transfers on remote site or not.
        Returns:
        boolean
      • print

        public void print()
        Prints out the third party state for the various sites.
      • containsKey

        private boolean containsKey​(java.lang.String site)
        Returns whether there is an entry for a particular site or not.
        Parameters:
        site - the site handle for a site.
        Returns:
        boolean
      • put

        private void put​(java.lang.String site,
                         RemoteTransfer.TransferState state)
        Inserts an entry in to the State Map, that maintains state of various sites.
        Parameters:
        site - the site handle for a site.
        state - the thirdparty state for the site.
      • get

        private RemoteTransfer.TransferState get​(java.lang.String site)
        Returns the TPT state for a particular site.
        Parameters:
        site - the site handle for the site.
        Returns:
        state the third party state for the site if there is an entry, else null.
      • getThirdPartySites

        private java.util.Set getThirdPartySites​(java.lang.String value)
        Returns a set of third party sites. An empty set is returned if value is null.
        Parameters:
        value - the value in the properties file.
        Returns:
        Set containing the names of the pools.