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.DefaultJDKInstaller
          Deprecated. Subtype of JDKInstaller causes JENKINS-10641.
static class SSHLauncher.DescriptorImpl
           
 
Nested classes/interfaces inherited from interface hudson.ExtensionPoint
hudson.ExtensionPoint.LegacyInstancesAreScopedToHudson
 
Field Summary
 java.lang.String javaPath
          Field javaPath.
 java.lang.String prefixStartSlaveCmd
          Field prefixStartSlaveCmd.
 java.lang.String suffixStartSlaveCmd
          Field suffixStartSlaveCmd.
 
Fields inherited from class hudson.slaves.ComputerLauncher
LIST
 
Constructor Summary
SSHLauncher(java.lang.String host, int port, java.lang.String username, java.lang.String password, java.lang.String privatekey, java.lang.String jvmOptions)
           
SSHLauncher(java.lang.String host, int port, java.lang.String username, java.lang.String password, java.lang.String privatekey, java.lang.String jvmOptions, java.lang.String javaPath, hudson.tools.JDKInstaller jdkInstaller, java.lang.String prefixStartSlaveCmd, java.lang.String suffixStartSlaveCmd)
          Constructor SSHLauncher creates a new SSHLauncher instance.
SSHLauncher(java.lang.String host, int port, java.lang.String username, java.lang.String password, java.lang.String privatekey, java.lang.String jvmOptions, java.lang.String javaPath, java.lang.String prefixStartSlaveCmd, java.lang.String suffixStartSlaveCmd)
          Constructor SSHLauncher creates a new SSHLauncher instance.
 
Method Summary
 void afterDisconnect(hudson.slaves.SlaveComputer slaveComputer, hudson.model.TaskListener listener)
          
protected  java.lang.String checkJavaVersion(java.io.PrintStream logger, java.lang.String javaCommand, java.io.BufferedReader r, java.io.StringWriter output)
          Given the output of "java -version" in r, determine if this version of Java is supported.
 com.trilead.ssh2.Connection getConnection()
           
 java.lang.String getHost()
          Getter for property 'host'.
 java.lang.String getJavaPath()
          Gets the optionnal java command to use to launch the slave JVM.
 java.lang.String getJvmOptions()
          Gets the JVM Options used to launch the slave JVM.
 java.lang.String getPassword()
          Getter for property 'password'.
 int getPort()
          Getter for property 'port'.
 java.lang.String getPrefixStartSlaveCmd()
           
 java.lang.String getPrivatekey()
          Getter for property 'privatekey'.
 java.lang.String getSuffixStartSlaveCmd()
           
protected  java.lang.String getTimestamp()
          Gets the formatted current time stamp.
 java.lang.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  java.lang.String resolveJava(hudson.slaves.SlaveComputer computer, hudson.model.TaskListener listener)
          return javaPath if specified in the configuration.
 
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
 

Field Detail

javaPath

public final java.lang.String javaPath
Field javaPath.


prefixStartSlaveCmd

public final java.lang.String prefixStartSlaveCmd
Field prefixStartSlaveCmd.


suffixStartSlaveCmd

public final java.lang.String suffixStartSlaveCmd
Field suffixStartSlaveCmd.

Constructor Detail

SSHLauncher

@DataBoundConstructor
public SSHLauncher(java.lang.String host,
                                        int port,
                                        java.lang.String username,
                                        java.lang.String password,
                                        java.lang.String privatekey,
                                        java.lang.String jvmOptions,
                                        java.lang.String javaPath,
                                        java.lang.String prefixStartSlaveCmd,
                                        java.lang.String suffixStartSlaveCmd)
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 - Options passed to the java vm.
javaPath - Path to the host jdk installation. If null the jdk will be auto detected or installed by the JDKInstaller.
prefixStartSlaveCmd - This will prefix the start slave command. For instance if you want to execute the command with a different shell.
suffixStartSlaveCmd - This will suffix the start slave command.

SSHLauncher

public SSHLauncher(java.lang.String host,
                   int port,
                   java.lang.String username,
                   java.lang.String password,
                   java.lang.String privatekey,
                   java.lang.String jvmOptions,
                   java.lang.String javaPath,
                   hudson.tools.JDKInstaller jdkInstaller,
                   java.lang.String prefixStartSlaveCmd,
                   java.lang.String suffixStartSlaveCmd)
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 - Options passed to the java vm.
javaPath - Path to the host jdk installation. If null the jdk will be auto detected or installed by the JDKInstaller.
jdkInstaller - The jdk installer that will be used if no java vm is found on the specified host. If null the SSHLauncher.DefaultJDKInstaller will be used.
prefixStartSlaveCmd - This will prefix the start slave command. For instance if you want to execute the command with a different shell.
suffixStartSlaveCmd - This will suffix the start slave command.

SSHLauncher

public SSHLauncher(java.lang.String host,
                   int port,
                   java.lang.String username,
                   java.lang.String password,
                   java.lang.String privatekey,
                   java.lang.String jvmOptions)
Method Detail

isLaunchSupported

public boolean isLaunchSupported()

Overrides:
isLaunchSupported in class hudson.slaves.ComputerLauncher

getJvmOptions

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

Returns:

getJavaPath

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

Returns:

getTimestamp

protected java.lang.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 java.lang.InterruptedException

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

resolveJava

protected java.lang.String resolveJava(hudson.slaves.SlaveComputer computer,
                                       hudson.model.TaskListener listener)
                                throws java.lang.InterruptedException,
                                       hudson.util.IOException2
return javaPath if specified in the configuration. Finds local Java, and if none exist, install one.

Throws:
java.lang.InterruptedException
hudson.util.IOException2

reportEnvironment

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

checkJavaVersion

protected java.lang.String checkJavaVersion(java.io.PrintStream logger,
                                            java.lang.String javaCommand,
                                            java.io.BufferedReader r,
                                            java.io.StringWriter output)
                                     throws java.io.IOException
Given the output of "java -version" in r, determine if this version of Java is supported. This method has default visiblity 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
Throws:
java.io.IOException

openConnection

protected void openConnection(hudson.model.TaskListener listener)
                       throws java.io.IOException,
                              java.lang.InterruptedException
Throws:
java.io.IOException
java.lang.InterruptedException

afterDisconnect

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

Overrides:
afterDisconnect in class hudson.slaves.ComputerLauncher

getHost

public java.lang.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 java.lang.String getUsername()
Getter for property 'username'.

Returns:
Value for property 'username'.

getPassword

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

Returns:
Value for property 'password'.

getPrivatekey

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

Returns:
Value for property 'privatekey'.

getConnection

public com.trilead.ssh2.Connection getConnection()

getPrefixStartSlaveCmd

public java.lang.String getPrefixStartSlaveCmd()

getSuffixStartSlaveCmd

public java.lang.String getSuffixStartSlaveCmd()


Copyright © 2004-2011. All Rights Reserved.