Class ConnectionImpl

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String AS400_PROXY
      String for the Proxy parameter to be used if required for AS400 connection
      static java.lang.String AS400_RUNPROG
      String for the Secondary mechanism parameter for executing AS400 Programs
      static java.lang.String AS400_SSL
      String for the Enable or disable SSL parameter over an AS400 connection
      protected java.lang.String as400Proxy
      This parameter defines an AS400 proxy server if so required
      protected boolean as400RunProg
      An optional Remote CLFC parameter that defines the type of command execution to use for an AS400 (i5/OS) connection
      protected boolean as400SSL
      This parameter governs whether an SSL connection is enforced on the AS400 (i5/OS) connection
      protected java.lang.String cmdArgsCharEncode
      The character encoding to use for AS400 command line arguments
      static java.lang.String COMMAND_RETURN_CODE
      String for Command Return Code Parameter
      static java.lang.String COMMAND_STD_ERROR
      String for Command Error Parameter
      static java.lang.String COMMAND_STD_OUTPUT
      String for Command Output Parameter
      protected static java.lang.String EMPTYSTRING
      Empty String
      static java.lang.String HANDLE_TEXT_FILE
      String for the Parameter to handle as text file
      protected java.lang.String hostName
      The hostname (address) of the target machine.
      static java.lang.String HOSTNAME
      String for Hostname parameter of Remote Machine (target)
      protected int initial_timeout
      An optional Remote CLFC parameter that defines a timeout period for the initial connection to the target system.
      static java.lang.String INITIAL_TIMEOUT
      String for the Timeout parameter of the connection
      protected java.lang.String keystore
      Full path to the file containing the keystore
      static java.lang.String KEYSTORE
      String for the keystore parameter to be used when connecting to the remote machine using the SSH protocol
      protected LogProxy lp
      Used for logging
      protected java.lang.String parentDirToStdin
      Parent directory to the folder containing the stdin destination folder
      protected byte[] passphrase
      The passphrase that protects your private key, in the keystore specified by the Keystore Path parameter above
      static java.lang.String PASSPHRASE
      String for the passphrase parameter for the keystore
      protected byte[] password
      The password for the user (specified as Remote User) on the target machine.
      static java.lang.String PASSWORD
      String for the User password parameter to authenticate to the target
      static java.lang.String PATH
      String for the file path on the target
      protected int port
      The port to use to connect to the target machine
      static java.lang.String PORT
      String for the port parameter to be used when establishing connection with target
      protected java.lang.String randomDir
      Path to random directory created
      static java.lang.String RECURSIVE_SEARCH
      String for the Timeout parameter of the connection
      protected Attribute rtnCodeAttr
      The return code from the executed command indicating the success of the requested operation
      static java.lang.String SOURCEPATH
      String for the Source file path
      protected Attribute stdErrorAttr
      The standard error from the executed command
      protected Attribute stdOutputAttr
      The standard output from the executed command
      protected int timeout
      The desired CPU timeout period in milliseconds
      static java.lang.String TIMEOUT
      String for the Timeout duration parameter for executing the command (ms)
      protected java.lang.String userName
      The name of a user with Administrative privileges on the target machine
      static java.lang.String USERNAME
      String for the username paremeter to be used when connecting to target
    • Constructor Summary

      Constructors 
      Constructor Description
      ConnectionImpl​(LogProxy log)
      ConnectionImpl Constructor
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      abstract com.ibm.tivoli.remoteaccess.RemoteAccess beginSession()
      Begin a session with the target machine
      void createDir​(java.lang.String dir)
      Create a directory on the target machine
      java.lang.String createRandomDir​(java.lang.String p)
      Create a random directory on the target machine
      void endSession()
      End the session with the target machine
      java.lang.String getHost()
      Get the hostname of the target for the connection
      char getOSSeparator()
      Return the character that the target uses to separate path information
      com.ibm.tivoli.remoteaccess.RemoteAccess getRXAProtocol()
      Return the RXA Connection Object
      abstract java.lang.String getType()
      Return this connection type
      java.lang.String getUser()
      Get the username being used in the connection
      void initializeProps​(java.util.Properties p)
      Initialize the properties of the connection
      boolean isExists​(java.lang.String path)
      Returns true/false to check a given file exists or not
      java.util.ArrayList<java.lang.String> list​(java.lang.String path)
      Retrieves the list of files
      void receiveFile​(java.lang.String remotepath, java.lang.String localpath)
      Receives the specified file from the target machine to a specified destination on the local machine
      void removeDir​(java.lang.String dir)
      Remove a directory on the target machine
      Entry runCommand​(java.lang.String c)
      Run the specified command on the target machine
      void setCmdArgsCharEncode​(java.lang.String enc)
      Sets encoding for the command arguments before executing the actual command
      void setHost​(java.lang.String s)
      Set the hostname of the target with which to connect
      void setRXAProtocol​(com.ibm.tivoli.remoteaccess.RemoteAccess remote)
      Set the RXA connection object for this connection
      void setUser​(java.lang.String u)
      Set the username to be used when connecting to the target
      void transferFile​(java.lang.String localPath, java.lang.String remotePath)
      Transfer the specified file from the local machine to a specified destination on the remote target
      • Methods inherited from class java.lang.Object

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

      • hostName

        protected java.lang.String hostName
        The hostname (address) of the target machine. This is a required parameter
      • userName

        protected java.lang.String userName
        The name of a user with Administrative privileges on the target machine
      • password

        protected byte[] password
        The password for the user (specified as Remote User) on the target machine. This parameter may be optional in the case of SSH connections using a keystore, as well as for RSH connections
      • passphrase

        protected byte[] passphrase
        The passphrase that protects your private key, in the keystore specified by the Keystore Path parameter above
      • cmdArgsCharEncode

        protected java.lang.String cmdArgsCharEncode
        The character encoding to use for AS400 command line arguments
      • keystore

        protected java.lang.String keystore
        Full path to the file containing the keystore
      • timeout

        protected int timeout
        The desired CPU timeout period in milliseconds
      • port

        protected int port
        The port to use to connect to the target machine
      • as400SSL

        protected boolean as400SSL
        This parameter governs whether an SSL connection is enforced on the AS400 (i5/OS) connection
      • as400Proxy

        protected java.lang.String as400Proxy
        This parameter defines an AS400 proxy server if so required
      • as400RunProg

        protected boolean as400RunProg
        An optional Remote CLFC parameter that defines the type of command execution to use for an AS400 (i5/OS) connection
      • initial_timeout

        protected int initial_timeout
        An optional Remote CLFC parameter that defines a timeout period for the initial connection to the target system. This has no effect on AS400 targets
      • COMMAND_RETURN_CODE

        public static final java.lang.String COMMAND_RETURN_CODE
        String for Command Return Code Parameter
        See Also:
        Constant Field Values
      • COMMAND_STD_OUTPUT

        public static final java.lang.String COMMAND_STD_OUTPUT
        String for Command Output Parameter
        See Also:
        Constant Field Values
      • COMMAND_STD_ERROR

        public static final java.lang.String COMMAND_STD_ERROR
        String for Command Error Parameter
        See Also:
        Constant Field Values
      • HOSTNAME

        public static final java.lang.String HOSTNAME
        String for Hostname parameter of Remote Machine (target)
        See Also:
        Constant Field Values
      • USERNAME

        public static final java.lang.String USERNAME
        String for the username paremeter to be used when connecting to target
        See Also:
        Constant Field Values
      • PORT

        public static final java.lang.String PORT
        String for the port parameter to be used when establishing connection with target
        See Also:
        Constant Field Values
      • PASSWORD

        public static final java.lang.String PASSWORD
        String for the User password parameter to authenticate to the target
        See Also:
        Constant Field Values
      • PATH

        public static final java.lang.String PATH
        String for the file path on the target
        See Also:
        Constant Field Values
      • SOURCEPATH

        public static final java.lang.String SOURCEPATH
        String for the Source file path
        See Also:
        Constant Field Values
      • TIMEOUT

        public static final java.lang.String TIMEOUT
        String for the Timeout duration parameter for executing the command (ms)
        See Also:
        Constant Field Values
      • KEYSTORE

        public static final java.lang.String KEYSTORE
        String for the keystore parameter to be used when connecting to the remote machine using the SSH protocol
        See Also:
        Constant Field Values
      • PASSPHRASE

        public static final java.lang.String PASSPHRASE
        String for the passphrase parameter for the keystore
        See Also:
        Constant Field Values
      • AS400_SSL

        public static final java.lang.String AS400_SSL
        String for the Enable or disable SSL parameter over an AS400 connection
        See Also:
        Constant Field Values
      • AS400_PROXY

        public static final java.lang.String AS400_PROXY
        String for the Proxy parameter to be used if required for AS400 connection
        See Also:
        Constant Field Values
      • AS400_RUNPROG

        public static final java.lang.String AS400_RUNPROG
        String for the Secondary mechanism parameter for executing AS400 Programs
        See Also:
        Constant Field Values
      • HANDLE_TEXT_FILE

        public static final java.lang.String HANDLE_TEXT_FILE
        String for the Parameter to handle as text file
        See Also:
        Constant Field Values
      • INITIAL_TIMEOUT

        public static final java.lang.String INITIAL_TIMEOUT
        String for the Timeout parameter of the connection
        See Also:
        Constant Field Values
      • RECURSIVE_SEARCH

        public static final java.lang.String RECURSIVE_SEARCH
        String for the Timeout parameter of the connection
        See Also:
        Constant Field Values
      • rtnCodeAttr

        protected Attribute rtnCodeAttr
        The return code from the executed command indicating the success of the requested operation
      • stdErrorAttr

        protected Attribute stdErrorAttr
        The standard error from the executed command
      • stdOutputAttr

        protected Attribute stdOutputAttr
        The standard output from the executed command
      • lp

        protected LogProxy lp
        Used for logging
      • parentDirToStdin

        protected java.lang.String parentDirToStdin
        Parent directory to the folder containing the stdin destination folder
      • randomDir

        protected java.lang.String randomDir
        Path to random directory created
      • EMPTYSTRING

        protected static final java.lang.String EMPTYSTRING
        Empty String
        See Also:
        Constant Field Values
    • Constructor Detail

      • ConnectionImpl

        public ConnectionImpl​(LogProxy log)
        ConnectionImpl Constructor
        Parameters:
        log - LogProxy for logging
    • Method Detail

      • initializeProps

        public void initializeProps​(java.util.Properties p)
        Initialize the properties of the connection
        Specified by:
        initializeProps in interface Connection
        Parameters:
        p - Properties object containing the configurable connection attributes
      • getType

        public abstract java.lang.String getType()
        Return this connection type
        Specified by:
        getType in interface Connection
        Returns:
        String The connection protocol used for this connection. One of: WIN, REXEC, RSH, SSH
      • endSession

        public void endSession()
        End the session with the target machine
        Specified by:
        endSession in interface Connection
      • runCommand

        public Entry runCommand​(java.lang.String c)
                         throws GeneralCLFCException
        Run the specified command on the target machine
        Specified by:
        runCommand in interface Connection
        Parameters:
        c - String containing the command to be executed
        Returns:
        Entry containing the results from executing the command. It contains three attributes: command.out, command.error and command.returnCode.
        Throws:
        GeneralCLFCException
      • createDir

        public void createDir​(java.lang.String dir)
                       throws GeneralCLFCException
        Create a directory on the target machine
        Specified by:
        createDir in interface Connection
        Parameters:
        dir - Path of the folder to be created
        Throws:
        GeneralCLFCException - if the folder cannot be successfully created on the target
      • removeDir

        public void removeDir​(java.lang.String dir)
                       throws GeneralCLFCException
        Remove a directory on the target machine
        Specified by:
        removeDir in interface Connection
        Parameters:
        dir - The path to the folder to be deleted
        Throws:
        GeneralCLFCException - if the folder cannot be successfully removed from the target
      • transferFile

        public void transferFile​(java.lang.String localPath,
                                 java.lang.String remotePath)
                          throws GeneralCLFCException
        Transfer the specified file from the local machine to a specified destination on the remote target
        Specified by:
        transferFile in interface Connection
        Parameters:
        localPath - Path to the source file on the local machine
        remotePath - Path to where the file is to be stored on the remote machine
        Throws:
        GeneralCLFCException - if the transfer fails
      • receiveFile

        public void receiveFile​(java.lang.String remotepath,
                                java.lang.String localpath)
                         throws GeneralCLFCException
        Receives the specified file from the target machine to a specified destination on the local machine
        Specified by:
        receiveFile in interface Connection
        Parameters:
        localPath - Path to the source file on the remote machine
        remotePath - Path to where the file is to be stored on local machine
        Throws:
        GeneralCLFCException - if the transfer fails
      • isExists

        public boolean isExists​(java.lang.String path)
                         throws GeneralCLFCException
        Returns true/false to check a given file exists or not
        Specified by:
        isExists in interface Connection
        Parameters:
        path - path on the file
        Returns:
        true if the given file exists on the remote machine otherwise false
        Throws:
        GeneralCLFCException
      • getRXAProtocol

        public com.ibm.tivoli.remoteaccess.RemoteAccess getRXAProtocol()
        Return the RXA Connection Object
        Specified by:
        getRXAProtocol in interface Connection
        Returns:
        RemoteAccess connection object accessing the target
      • setHost

        public void setHost​(java.lang.String s)
        Set the hostname of the target with which to connect
        Specified by:
        setHost in interface Connection
        Parameters:
        s - The hostname of the target
      • getHost

        public java.lang.String getHost()
        Get the hostname of the target for the connection
        Specified by:
        getHost in interface Connection
        Returns:
        String hostname
      • setUser

        public void setUser​(java.lang.String u)
        Set the username to be used when connecting to the target
        Specified by:
        setUser in interface Connection
        Parameters:
        u - Username
      • getUser

        public java.lang.String getUser()
        Get the username being used in the connection
        Specified by:
        getUser in interface Connection
        Returns:
        String username
      • setRXAProtocol

        public void setRXAProtocol​(com.ibm.tivoli.remoteaccess.RemoteAccess remote)
        Set the RXA connection object for this connection
        Parameters:
        remote - The protocol-specific connection object
      • setCmdArgsCharEncode

        public void setCmdArgsCharEncode​(java.lang.String enc)
        Sets encoding for the command arguments before executing the actual command
        Specified by:
        setCmdArgsCharEncode in interface Connection
        Parameters:
        enc - encoding to be used