hudson.plugins.sshslaves
Class SSHLauncher

java.lang.Object
  extended by hudson.model.AbstractDescribableImpl<hudson.slaves.ComputerLauncher>
      extended by hudson.slaves.ComputerLauncher
          extended by hudson.plugins.sshslaves.SSHLauncher
All Implemented Interfaces:
hudson.ExtensionPoint, hudson.model.Describable<hudson.slaves.ComputerLauncher>

public class SSHLauncher
extends hudson.slaves.ComputerLauncher

A computer launcher that tries to start a linux slave by opening an SSH connection and trying to find java.


Nested Class Summary
static class SSHLauncher.DefaultJavaProvider
           
static class SSHLauncher.DescriptorImpl
           
 
Nested classes/interfaces inherited from interface hudson.ExtensionPoint
hudson.ExtensionPoint.LegacyInstancesAreScopedToHudson
 
Field Summary
 
Fields inherited from class hudson.slaves.ComputerLauncher
LIST
 
Constructor Summary
SSHLauncher(String host, int port, String username, String password, String privatekey, String jvmOptions, String javaPath)
          Constructor SSHLauncher creates a new SSHLauncher instance.
 
Method Summary
 void afterDisconnect(hudson.slaves.SlaveComputer slaveComputer, hudson.model.TaskListener listener)
          
protected  String checkJavaVersion(PrintStream logger, String javaCommand, BufferedReader r, StringWriter output)
          Given the output of "java -version" in r, determine if this version of Java is supported.
 com.trilead.ssh2.Connection getConnection()
           
 String getHost()
          Getter for property 'host'.
 String getJavaPath()
          Gets the optional java command to use to launch the slave JVM.
 String getJvmOptions()
          Gets the JVM Options used to launch the slave JVM.
 String getPassword()
          Getter for property 'password'.
 int getPort()
          Getter for property 'port'.
 String getPrivatekey()
          Getter for property 'privatekey'.
protected  String getTimestamp()
          Gets the formatted current time stamp.
 String getUsername()
          Getter for property 'username'.
 boolean isLaunchSupported()
          
 void launch(hudson.slaves.SlaveComputer computer, hudson.model.TaskListener listener)
          
protected  void openConnection(hudson.model.TaskListener listener)
           
protected  void reportEnvironment(hudson.model.TaskListener listener)
           
protected  String resolveJava(hudson.slaves.SlaveComputer computer, hudson.model.TaskListener listener)
          Finds local Java, and if none exist, install one.
 
Methods inherited from class hudson.slaves.ComputerLauncher
afterDisconnect, beforeDisconnect, beforeDisconnect, launch
 
Methods inherited from class hudson.model.AbstractDescribableImpl
getDescriptor
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SSHLauncher

@DataBoundConstructor
public SSHLauncher(String host,
                                        int port,
                                        String username,
                                        String password,
                                        String privatekey,
                                        String jvmOptions,
                                        String javaPath)
Constructor SSHLauncher creates a new SSHLauncher instance.

Parameters:
host - The host to connect to.
port - The port to connect on.
username - The username to connect as.
password - The password to connect with.
privatekey - The ssh privatekey to connect with.
jvmOptions - jvm options.
javaPath - optional path to java.
Method Detail

isLaunchSupported

public boolean isLaunchSupported()

Overrides:
isLaunchSupported in class hudson.slaves.ComputerLauncher

getJvmOptions

public String getJvmOptions()
Gets the JVM Options used to launch the slave JVM.

Returns:
string.

getJavaPath

public String getJavaPath()
Gets the optional java command to use to launch the slave JVM.

Returns:
command.

getTimestamp

protected String getTimestamp()
Gets the formatted current time stamp.

Returns:
the formatted current time stamp.

launch

public void launch(hudson.slaves.SlaveComputer computer,
                   hudson.model.TaskListener listener)
            throws InterruptedException

Overrides:
launch in class hudson.slaves.ComputerLauncher
Throws:
InterruptedException

resolveJava

protected String resolveJava(hudson.slaves.SlaveComputer computer,
                             hudson.model.TaskListener listener)
                      throws InterruptedException,
                             hudson.util.IOException2
Finds local Java, and if none exist, install one. If javaPath is specified, return specified value.

Parameters:
computer - slave.
listener - task listener.
Returns:
java location.
Throws:
InterruptedException - if any.
hudson.util.IOException2 - if any.

reportEnvironment

protected void reportEnvironment(hudson.model.TaskListener listener)
                          throws IOException,
                                 InterruptedException
Throws:
IOException
InterruptedException

checkJavaVersion

protected String checkJavaVersion(PrintStream logger,
                                  String javaCommand,
                                  BufferedReader r,
                                  StringWriter output)
                           throws IOException
Given the output of "java -version" in r, determine if this version of Java is supported. This method has default visibility for testing.

Parameters:
logger - where to log the output
javaCommand - the command executed, used for logging
r - the output of "java -version"
output - copy the data from r into this output buffer
Returns:
java command or null if r is null
Throws:
IOException - if any.

openConnection

protected void openConnection(hudson.model.TaskListener listener)
                       throws IOException
Throws:
IOException

afterDisconnect

public void afterDisconnect(hudson.slaves.SlaveComputer slaveComputer,
                            hudson.model.TaskListener listener)

Overrides:
afterDisconnect in class hudson.slaves.ComputerLauncher

getHost

public String getHost()
Getter for property 'host'.

Returns:
Value for property 'host'.

getPort

public int getPort()
Getter for property 'port'.

Returns:
Value for property 'port'.

getUsername

public String getUsername()
Getter for property 'username'.

Returns:
Value for property 'username'.

getPassword

public String getPassword()
Getter for property 'password'.

Returns:
Value for property 'password'.

getPrivatekey

public String getPrivatekey()
Getter for property 'privatekey'.

Returns:
Value for property 'privatekey'.

getConnection

public com.trilead.ssh2.Connection getConnection()


Copyright © 2004-2011 Hudson. All Rights Reserved.