Class SlaveTemplate

java.lang.Object
hudson.plugins.ec2.SlaveTemplate
All Implemented Interfaces:
Describable<SlaveTemplate>

public class SlaveTemplate extends Object implements Describable<SlaveTemplate>
Template of EC2AbstractSlave to launch.
Author:
Kohsuke Kawaguchi
  • Field Details

    • ami

      public String ami
    • description

      public final String description
    • zone

      public final String zone
    • spotConfig

      public final SpotConfiguration spotConfig
    • securityGroups

      public final String securityGroups
    • remoteFS

      public final String remoteFS
    • type

      public final com.amazonaws.services.ec2.model.InstanceType type
    • ebsOptimized

      public final boolean ebsOptimized
    • monitoring

      public final boolean monitoring
    • t2Unlimited

      public final boolean t2Unlimited
    • labels

      public final String labels
    • mode

      public final Node.Mode mode
    • initScript

      public final String initScript
    • tmpDir

      public final String tmpDir
    • userData

      public final String userData
    • numExecutors

      public final String numExecutors
    • remoteAdmin

      public final String remoteAdmin
    • javaPath

      public String javaPath
    • jvmopts

      public final String jvmopts
    • subnetId

      public final String subnetId
    • idleTerminationMinutes

      public final String idleTerminationMinutes
    • iamInstanceProfile

      public final String iamInstanceProfile
    • deleteRootOnTermination

      public final boolean deleteRootOnTermination
    • useEphemeralDevices

      public final boolean useEphemeralDevices
    • customDeviceMapping

      public final String customDeviceMapping
    • instanceCap

      public int instanceCap
    • stopOnTerminate

      public final boolean stopOnTerminate
    • connectionStrategy

      public ConnectionStrategy connectionStrategy
    • hostKeyVerificationStrategy

      public HostKeyVerificationStrategyEnum hostKeyVerificationStrategy
    • associatePublicIp

      public final boolean associatePublicIp
    • parent

      protected transient EC2Cloud parent
    • amiType

      public AMITypeData amiType
    • launchTimeout

      public int launchTimeout
    • connectBySSHProcess

      public boolean connectBySSHProcess
    • maxTotalUses

      public int maxTotalUses
    • nextSubnet

      public int nextSubnet
    • currentSubnetId

      public String currentSubnetId
    • tenancy

      public Tenancy tenancy
    • ebsEncryptRootVolume

      public EbsEncryptRootVolume ebsEncryptRootVolume
    • sshPort

      @Deprecated public transient String sshPort
      Deprecated.
    • rootCommandPrefix

      @Deprecated public transient String rootCommandPrefix
      Deprecated.
    • slaveCommandPrefix

      @Deprecated public transient String slaveCommandPrefix
      Deprecated.
    • slaveCommandSuffix

      @Deprecated public transient String slaveCommandSuffix
      Deprecated.
    • usePrivateDnsName

      @Deprecated public boolean usePrivateDnsName
      Deprecated.
    • connectUsingPublicIp

      @Deprecated public boolean connectUsingPublicIp
      Deprecated.
    • useDedicatedTenancy

      @Deprecated public transient boolean useDedicatedTenancy
      Deprecated.
  • Constructor Details

  • Method Details

    • isConnectBySSHProcess

      public boolean isConnectBySSHProcess()
    • getParent

      public EC2Cloud getParent()
    • getLabelString

      public String getLabelString()
    • getMode

      public Node.Mode getMode()
    • getDisplayName

      public String getDisplayName()
    • getSlaveName

      public String getSlaveName(String instanceId)
    • getSecurityGroupString

      public String getSecurityGroupString()
    • getSecurityGroupSet

      public Set<String> getSecurityGroupSet()
    • parseSecurityGroups

      public Set<String> parseSecurityGroups()
    • getNumExecutors

      public int getNumExecutors()
    • getSshPort

      public int getSshPort()
    • getRemoteAdmin

      public String getRemoteAdmin()
    • getRootCommandPrefix

      public String getRootCommandPrefix()
    • getSlaveCommandPrefix

      public String getSlaveCommandPrefix()
    • getSlaveCommandSuffix

      public String getSlaveCommandSuffix()
    • chooseSubnetId

      public String chooseSubnetId()
    • chooseSubnetId

      public String chooseSubnetId(boolean rotateSubnet)
    • getSubnetId

      public String getSubnetId()
    • getCurrentSubnetId

      public String getCurrentSubnetId()
    • getAssociatePublicIp

      public boolean getAssociatePublicIp()
    • setConnectUsingPublicIp

      @Deprecated @DataBoundSetter public void setConnectUsingPublicIp(boolean connectUsingPublicIp)
      Deprecated.
    • setUsePrivateDnsName

      @Deprecated @DataBoundSetter public void setUsePrivateDnsName(boolean usePrivateDnsName)
      Deprecated.
    • getUsePrivateDnsName

      @Deprecated public boolean getUsePrivateDnsName()
      Deprecated.
    • isConnectUsingPublicIp

      @Deprecated public boolean isConnectUsingPublicIp()
      Deprecated.
    • getTags

      public List<EC2Tag> getTags()
    • getidleTerminationMinutes

      public String getidleTerminationMinutes()
    • getLabelSet

      public Set<LabelAtom> getLabelSet()
    • getAmi

      public String getAmi()
    • setAmi

      public void setAmi(String ami)
    • getAmiType

      public AMITypeData getAmiType()
    • setAmiType

      public void setAmiType(AMITypeData amiType)
    • getMinimumNumberOfInstances

      public int getMinimumNumberOfInstances()
    • getMinimumNumberOfSpareInstances

      public int getMinimumNumberOfSpareInstances()
    • getMinimumNumberOfInstancesTimeRangeConfig

      public MinimumNumberOfInstancesTimeRangeConfig getMinimumNumberOfInstancesTimeRangeConfig()
    • setMinimumNumberOfInstancesTimeRangeConfig

      @DataBoundSetter public void setMinimumNumberOfInstancesTimeRangeConfig(MinimumNumberOfInstancesTimeRangeConfig minimumNumberOfInstancesTimeRangeConfig)
    • getInstanceCap

      public int getInstanceCap()
    • getSpotBlockReservationDuration

      public int getSpotBlockReservationDuration()
    • getSpotBlockReservationDurationStr

      public String getSpotBlockReservationDurationStr()
    • getInstanceCapStr

      public String getInstanceCapStr()
    • getSpotMaxBidPrice

      public String getSpotMaxBidPrice()
    • getIamInstanceProfile

      public String getIamInstanceProfile()
    • setHostKeyVerificationStrategy

      @DataBoundSetter public void setHostKeyVerificationStrategy(HostKeyVerificationStrategyEnum hostKeyVerificationStrategy)
    • getHostKeyVerificationStrategy

      @NonNull public HostKeyVerificationStrategyEnum getHostKeyVerificationStrategy()
    • getAmiOwners

      @CheckForNull public String getAmiOwners()
    • setAmiOwners

      @DataBoundSetter public void setAmiOwners(String amiOwners)
    • getAmiUsers

      @CheckForNull public String getAmiUsers()
    • setAmiUsers

      @DataBoundSetter public void setAmiUsers(String amiUsers)
    • getAmiFilters

      @CheckForNull public List<EC2Filter> getAmiFilters()
    • setAmiFilters

      @DataBoundSetter public void setAmiFilters(List<EC2Filter> amiFilters)
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getMaxTotalUses

      public int getMaxTotalUses()
    • getMetadataSupported

      public Boolean getMetadataSupported()
    • getMetadataEndpointEnabled

      public Boolean getMetadataEndpointEnabled()
    • getMetadataTokensRequired

      public Boolean getMetadataTokensRequired()
    • getMetadataHopsLimit

      public Integer getMetadataHopsLimit()
    • getTenancyAttribute

      public Tenancy getTenancyAttribute()
    • getNodeProperties

      public DescribableList<NodeProperty<?>,NodePropertyDescriptor> getNodeProperties()
    • provision

      @NonNull public List<EC2AbstractSlave> provision(int number, EnumSet<SlaveTemplate.ProvisionOptions> provisionOptions) throws com.amazonaws.AmazonClientException, IOException
      Provisions a new EC2 agent or starts a previously stopped on-demand instance.
      Returns:
      always non-null. This needs to be then added to Jenkins.addNode(Node).
      Throws:
      com.amazonaws.AmazonClientException
      IOException
    • newOndemandSlave

      protected EC2OndemandSlave newOndemandSlave(com.amazonaws.services.ec2.model.Instance inst) throws Descriptor.FormException, IOException
      Throws:
      Descriptor.FormException
      IOException
    • newSpotSlave

      protected EC2SpotSlave newSpotSlave(com.amazonaws.services.ec2.model.SpotInstanceRequest sir) throws Descriptor.FormException, IOException
      Throws:
      Descriptor.FormException
      IOException
    • attach

      public EC2AbstractSlave attach(String instanceId, TaskListener listener) throws com.amazonaws.AmazonClientException, IOException
      Provisions a new EC2 agent based on the currently running instance on EC2, instead of starting a new one.
      Throws:
      com.amazonaws.AmazonClientException
      IOException
    • readResolve

      protected Object readResolve()
      Initializes data structure that we don't persist.
    • getDescriptor

      public Descriptor<SlaveTemplate> getDescriptor()
      Specified by:
      getDescriptor in interface Describable<SlaveTemplate>
    • getLaunchTimeout

      public int getLaunchTimeout()
    • getLaunchTimeoutStr

      public String getLaunchTimeoutStr()
    • isWindowsSlave

      public boolean isWindowsSlave()
    • isUnixSlave

      public boolean isUnixSlave()
    • isMacAgent

      public boolean isMacAgent()
    • getAdminPassword

      public Secret getAdminPassword()
    • isUseHTTPS

      public boolean isUseHTTPS()
    • isAllowSelfSignedCertificate

      public boolean isAllowSelfSignedCertificate()