Class ExtSSHExec
- java.lang.Object
-
- org.apache.tools.ant.ProjectComponent
-
- org.apache.tools.ant.Task
-
- org.apache.tools.ant.taskdefs.optional.ssh.SSHBase
-
- com.dtolabs.rundeck.core.tasks.net.ExtSSHExec
-
- All Implemented Interfaces:
DataContextUtils.EnvironmentConfigurable
,SSHTaskBuilder.SSHBaseInterface
,java.lang.Cloneable
,org.apache.tools.ant.taskdefs.optional.ssh.LogListener
public class ExtSSHExec extends org.apache.tools.ant.taskdefs.optional.ssh.SSHBase
Executes a command on a remote machine via ssh.- Since:
- Ant 1.6 (created February 2, 2003)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
ExtSSHExec.Disconnectable
Allows disconnecting the ssh connectionstatic interface
ExtSSHExec.DisconnectHolder
Interface for receiving access to Disconnectable
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
COMMAND_TIMEOUT_MESSAGE
static java.lang.String
CON_TIMEOUT_MESSAGE
-
Constructor Summary
Constructors Constructor Description ExtSSHExec()
Constructor for SSHExecTask.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addEnv(org.apache.tools.ant.types.Environment.Variable env)
Add an Env elementvoid
execute()
Execute the command on the remote host.int
getAntLogLevel()
java.lang.String
getBindAddress()
long
getCommandTimeout()
long
getConnectTimeout()
ExtSSHExec.DisconnectHolder
getDisconnectHolder()
java.lang.Boolean
getEnableSSHAgent()
int
getExitStatus()
java.io.InputStream
getInputStream()
java.lang.String
getKeyfile()
java.lang.String
getKnownhosts()
PluginLogger
getPluginLogger()
java.io.OutputStream
getSecondaryStream()
SSHAgentProcess
getSSHAgentProcess()
java.util.Map<java.lang.String,java.lang.String>
getSshConfig()
java.io.InputStream
getSshKeyData()
long
getTimeout()
java.lang.Integer
getTtlSSHAgent()
org.apache.tools.ant.taskdefs.optional.ssh.SSHUserInfo
getUserInfo()
protected com.jcraft.jsch.Session
openSession()
Open an ssh seession.void
passEnvVar(boolean b)
Pass ENV_ rundeck variables.void
setAllocatePty(boolean b)
Allocate a Pseudo-Terminal.void
setAntLogLevel(int antLogLevel)
void
setAppend(boolean append)
Determines if the output is appended to the file given insetOutput
.void
setBindAddress(java.lang.String bindAddress)
void
setCommand(java.lang.String command)
Sets the command to execute on the remote host.void
setCommandResource(java.lang.String f)
Sets a commandResource from a filevoid
setCommandTimeout(long sshTimeout)
void
setConnectTimeout(long sshTimeout)
void
setDisconnectHolder(ExtSSHExec.DisconnectHolder disconnectHolder)
Set a disconnectHoldervoid
setEnableSSHAgent(java.lang.Boolean enableSSHAgent)
void
setInput(java.io.File input)
If used, the content of the file is piped to the remote commandvoid
setInputProperty(java.lang.String inputProperty)
If used, the content of the property is piped to the remote commandvoid
setInputStream(java.io.InputStream inputStream)
Set an inputstream for pty input to the sessionvoid
setKnownhosts(java.lang.String knownHosts)
Sets the path to the file that has the identities of all known hosts.void
setOutput(java.io.File output)
If used, stores the output of the command to the given file.void
setOutputproperty(java.lang.String property)
If set, the output of the command will be stored in the given property.void
setPluginLogger(PluginLogger logger)
void
setSecondaryStream(java.io.OutputStream secondaryStream)
Set a secondary outputstream to read from the connectionvoid
setSSHAgentProcess(SSHAgentProcess sshAgentProcess)
void
setSshConfig(java.util.Map<java.lang.String,java.lang.String> config)
void
setSshKeyData(java.io.InputStream sshKeyData)
void
setTimeout(long timeout)
The connection can be dropped after a specified number of milliseconds.void
setTtlSSHAgent(java.lang.Integer ttlSSHAgent)
-
Methods inherited from class org.apache.tools.ant.taskdefs.optional.ssh.SSHBase
getFailonerror, getHost, getPort, getServerAliveCountMax, getServerAliveIntervalSeconds, getVerbose, init, setFailonerror, setHost, setKeyfile, setPassphrase, setPassword, setPort, setServerAliveCountMax, setServerAliveIntervalSeconds, setTrust, setUsername, setVerbose
-
Methods inherited from class org.apache.tools.ant.Task
bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType
-
Methods inherited from class org.apache.tools.ant.ProjectComponent
clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.dtolabs.rundeck.core.tasks.net.SSHTaskBuilder.SSHBaseInterface
getHost, getPort, getVerbose, setFailonerror, setHost, setKeyfile, setPassphrase, setPassword, setPort, setProject, setTrust, setUsername, setVerbose
-
-
-
-
Field Detail
-
COMMAND_TIMEOUT_MESSAGE
public static final java.lang.String COMMAND_TIMEOUT_MESSAGE
- See Also:
- Constant Field Values
-
CON_TIMEOUT_MESSAGE
public static final java.lang.String CON_TIMEOUT_MESSAGE
- See Also:
- Constant Field Values
-
-
Method Detail
-
setCommand
public void setCommand(java.lang.String command)
Sets the command to execute on the remote host.- Parameters:
command
- The new command value
-
setCommandResource
public void setCommandResource(java.lang.String f)
Sets a commandResource from a file- Parameters:
f
- the value to use.- Since:
- Ant 1.7.1
-
setTimeout
public void setTimeout(long timeout)
The connection can be dropped after a specified number of milliseconds. This is sometimes useful when a connection may be flaky. Default is 0, which means "wait forever".- Specified by:
setTimeout
in interfaceSSHTaskBuilder.SSHBaseInterface
- Parameters:
timeout
- The new timeout value in seconds
-
getTimeout
public long getTimeout()
- Specified by:
getTimeout
in interfaceSSHTaskBuilder.SSHBaseInterface
-
setConnectTimeout
public void setConnectTimeout(long sshTimeout)
- Specified by:
setConnectTimeout
in interfaceSSHTaskBuilder.SSHBaseInterface
-
getConnectTimeout
public long getConnectTimeout()
- Specified by:
getConnectTimeout
in interfaceSSHTaskBuilder.SSHBaseInterface
-
setCommandTimeout
public void setCommandTimeout(long sshTimeout)
- Specified by:
setCommandTimeout
in interfaceSSHTaskBuilder.SSHBaseInterface
-
getCommandTimeout
public long getCommandTimeout()
- Specified by:
getCommandTimeout
in interfaceSSHTaskBuilder.SSHBaseInterface
-
setOutput
public void setOutput(java.io.File output)
If used, stores the output of the command to the given file.- Parameters:
output
- The file to write to.
-
setInput
public void setInput(java.io.File input)
If used, the content of the file is piped to the remote command- Parameters:
input
- The file which provides the input data for the remote command
-
setInputProperty
public void setInputProperty(java.lang.String inputProperty)
If used, the content of the property is piped to the remote command- Parameters:
inputProperty
- The property which contains the input data for the remote command.
-
setAppend
public void setAppend(boolean append)
Determines if the output is appended to the file given insetOutput
. Default is false, that is, overwrite the file.- Parameters:
append
- True to append to an existing file, false to overwrite.
-
setOutputproperty
public void setOutputproperty(java.lang.String property)
If set, the output of the command will be stored in the given property.- Parameters:
property
- The name of the property in which the command output will be stored.
-
setAllocatePty
public void setAllocatePty(boolean b)
Allocate a Pseudo-Terminal. If set true, the SSH connection will be setup to run over an allocated pty.- Parameters:
b
- if true, allocate the pty. (default false
-
passEnvVar
public void passEnvVar(boolean b)
Pass ENV_ rundeck variables.
-
getExitStatus
public int getExitStatus()
- Returns:
- exitStatus of the remote execution, after it has finished or failed. The return value prior to retrieving the result will be -1. If that value is returned after the task has executed, it indicates that an exception was thrown prior to retrieval of the value.
-
addEnv
public void addEnv(org.apache.tools.ant.types.Environment.Variable env)
Add an Env element- Specified by:
addEnv
in interfaceDataContextUtils.EnvironmentConfigurable
- Parameters:
env
- element
-
getDisconnectHolder
public ExtSSHExec.DisconnectHolder getDisconnectHolder()
- Returns:
- the disconnectHolder
-
setDisconnectHolder
public void setDisconnectHolder(ExtSSHExec.DisconnectHolder disconnectHolder)
Set a disconnectHolder- Parameters:
disconnectHolder
- holder
-
getPluginLogger
public PluginLogger getPluginLogger()
- Specified by:
getPluginLogger
in interfaceSSHTaskBuilder.SSHBaseInterface
-
setPluginLogger
public void setPluginLogger(PluginLogger logger)
- Specified by:
setPluginLogger
in interfaceSSHTaskBuilder.SSHBaseInterface
-
getAntLogLevel
public int getAntLogLevel()
-
setAntLogLevel
public void setAntLogLevel(int antLogLevel)
-
getSshConfig
public java.util.Map<java.lang.String,java.lang.String> getSshConfig()
- Specified by:
getSshConfig
in interfaceSSHTaskBuilder.SSHBaseInterface
-
getSshKeyData
public java.io.InputStream getSshKeyData()
- Specified by:
getSshKeyData
in interfaceSSHTaskBuilder.SSHBaseInterface
-
getSSHAgentProcess
public SSHAgentProcess getSSHAgentProcess()
- Specified by:
getSSHAgentProcess
in interfaceSSHTaskBuilder.SSHBaseInterface
-
setSSHAgentProcess
public void setSSHAgentProcess(SSHAgentProcess sshAgentProcess)
- Specified by:
setSSHAgentProcess
in interfaceSSHTaskBuilder.SSHBaseInterface
-
execute
public void execute() throws org.apache.tools.ant.BuildException
Execute the command on the remote host.- Overrides:
execute
in classorg.apache.tools.ant.Task
- Throws:
org.apache.tools.ant.BuildException
- Most likely a network error or bad parameter.
-
setSshKeyData
public void setSshKeyData(java.io.InputStream sshKeyData)
- Specified by:
setSshKeyData
in interfaceSSHTaskBuilder.SSHBaseInterface
-
setKnownhosts
public void setKnownhosts(java.lang.String knownHosts)
Sets the path to the file that has the identities of all known hosts. This is used by SSH protocol to validate the identity of the host. The default is ${user.home}/.ssh/known_hosts.- Specified by:
setKnownhosts
in interfaceSSHTaskBuilder.SSHBaseInterface
- Overrides:
setKnownhosts
in classorg.apache.tools.ant.taskdefs.optional.ssh.SSHBase
- Parameters:
knownHosts
- a path to the known hosts file.
-
setSshConfig
public void setSshConfig(java.util.Map<java.lang.String,java.lang.String> config)
- Specified by:
setSshConfig
in interfaceSSHTaskBuilder.SSHBaseInterface
-
openSession
protected com.jcraft.jsch.Session openSession() throws com.jcraft.jsch.JSchException
Open an ssh seession. Copied from SSHBase 1.8.1- Overrides:
openSession
in classorg.apache.tools.ant.taskdefs.optional.ssh.SSHBase
- Returns:
- the opened session
- Throws:
com.jcraft.jsch.JSchException
- on error
-
getInputStream
public java.io.InputStream getInputStream()
-
setInputStream
public void setInputStream(java.io.InputStream inputStream)
Set an inputstream for pty input to the session- Parameters:
inputStream
- stream
-
getSecondaryStream
public java.io.OutputStream getSecondaryStream()
-
setSecondaryStream
public void setSecondaryStream(java.io.OutputStream secondaryStream)
Set a secondary outputstream to read from the connection- Parameters:
secondaryStream
- secondary stream
-
getKeyfile
public java.lang.String getKeyfile()
- Specified by:
getKeyfile
in interfaceSSHTaskBuilder.SSHBaseInterface
-
getKnownhosts
public java.lang.String getKnownhosts()
- Specified by:
getKnownhosts
in interfaceSSHTaskBuilder.SSHBaseInterface
-
getUserInfo
public org.apache.tools.ant.taskdefs.optional.ssh.SSHUserInfo getUserInfo()
- Specified by:
getUserInfo
in interfaceSSHTaskBuilder.SSHBaseInterface
- Overrides:
getUserInfo
in classorg.apache.tools.ant.taskdefs.optional.ssh.SSHBase
-
setEnableSSHAgent
public void setEnableSSHAgent(java.lang.Boolean enableSSHAgent)
- Specified by:
setEnableSSHAgent
in interfaceSSHTaskBuilder.SSHBaseInterface
-
getEnableSSHAgent
public java.lang.Boolean getEnableSSHAgent()
- Specified by:
getEnableSSHAgent
in interfaceSSHTaskBuilder.SSHBaseInterface
-
setTtlSSHAgent
public void setTtlSSHAgent(java.lang.Integer ttlSSHAgent)
- Specified by:
setTtlSSHAgent
in interfaceSSHTaskBuilder.SSHBaseInterface
-
getTtlSSHAgent
public java.lang.Integer getTtlSSHAgent()
- Specified by:
getTtlSSHAgent
in interfaceSSHTaskBuilder.SSHBaseInterface
-
setBindAddress
public void setBindAddress(java.lang.String bindAddress)
- Specified by:
setBindAddress
in interfaceSSHTaskBuilder.SSHBaseInterface
-
getBindAddress
public java.lang.String getBindAddress()
- Specified by:
getBindAddress
in interfaceSSHTaskBuilder.SSHBaseInterface
-
-