com.dtolabs.rundeck.core.tasks.net
Class ExtSSHExec

java.lang.Object
  extended by org.apache.tools.ant.ProjectComponent
      extended by org.apache.tools.ant.Task
          extended by org.apache.tools.ant.taskdefs.optional.ssh.SSHBase
              extended by com.dtolabs.rundeck.core.tasks.net.ExtSSHExec
All Implemented Interfaces:
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
static interface ExtSSHExec.Disconnectable
          Allows disconnecting the ssh connection
static interface ExtSSHExec.DisconnectHolder
          Interface for receiving access to Disconnectable
 
Field Summary
 
Fields inherited from class org.apache.tools.ant.Task
target, taskName, taskType, wrapper
 
Fields inherited from class org.apache.tools.ant.ProjectComponent
description, location, project
 
Constructor Summary
ExtSSHExec()
          Constructor for SSHExecTask.
 
Method Summary
 void addEnv(org.apache.tools.ant.types.Environment.Variable env)
          Add an Env element
 void execute()
          Execute the command on the remote host.
 int getAntLogLevel()
           
 ExtSSHExec.DisconnectHolder getDisconnectHolder()
          Return the disconnectHolder
 int getExitStatus()
          Return exitStatus of the remote execution, after it has finished or failed.
 java.io.InputStream getInputStream()
           
 PluginLogger getLogger()
           
 java.io.OutputStream getSecondaryStream()
           
protected  com.jcraft.jsch.Session openSession()
          Open an ssh seession.
 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 in setOutput.
 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 file
 void setDisconnectHolder(ExtSSHExec.DisconnectHolder disconnectHolder)
          Set a disconnectHolder
 void setInput(java.io.File input)
          If used, the content of the file is piped to the remote command
 void setInputProperty(java.lang.String inputProperty)
          If used, the content of the property is piped to the remote command
 void setInputStream(java.io.InputStream inputStream)
          Set an inputstream for pty input to the session
 void setKnownhosts(java.lang.String knownHosts)
          Sets the path to the file that has the identities of all known hosts.
 void setLogger(PluginLogger logger)
           
 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 setSecondaryStream(java.io.OutputStream secondaryStream)
          Set a secondary outputstream to read from the connection
 void setTimeout(long timeout)
          The connection can be dropped after a specified number of milliseconds.
 
Methods inherited from class org.apache.tools.ant.taskdefs.optional.ssh.SSHBase
getFailonerror, getHost, getPort, getUserInfo, getVerbose, init, setFailonerror, setHost, setKeyfile, setPassphrase, setPassword, setPort, 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 org.apache.tools.ant.taskdefs.optional.ssh.LogListener
log
 

Constructor Detail

ExtSSHExec

public ExtSSHExec()
Constructor for SSHExecTask.

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

Parameters:
timeout - The new timeout value in seconds

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 in setOutput. 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

getExitStatus

public int getExitStatus()
Return 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

Parameters:
env - element

getDisconnectHolder

public ExtSSHExec.DisconnectHolder getDisconnectHolder()
Return the disconnectHolder


setDisconnectHolder

public void setDisconnectHolder(ExtSSHExec.DisconnectHolder disconnectHolder)
Set a disconnectHolder


getLogger

public PluginLogger getLogger()

setLogger

public void setLogger(PluginLogger logger)

getAntLogLevel

public int getAntLogLevel()

setAntLogLevel

public void setAntLogLevel(int antLogLevel)

execute

public void execute()
             throws org.apache.tools.ant.BuildException
Execute the command on the remote host.

Overrides:
execute in class org.apache.tools.ant.Task
Throws:
org.apache.tools.ant.BuildException - Most likely a network error or bad parameter.

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.

Overrides:
setKnownhosts in class org.apache.tools.ant.taskdefs.optional.ssh.SSHBase
Parameters:
knownHosts - a path to the known hosts file.

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 class org.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


getSecondaryStream

public java.io.OutputStream getSecondaryStream()

setSecondaryStream

public void setSecondaryStream(java.io.OutputStream secondaryStream)
Set a secondary outputstream to read from the connection