Package hudson.slaves

Class CloudSlaveRetentionStrategy<T extends Computer>

All Implemented Interfaces:
ExtensionPoint, Describable<RetentionStrategy<?>>

public class CloudSlaveRetentionStrategy<T extends Computer> extends RetentionStrategy<T>
Default convenience implementation of RetentionStrategy for agents provisioned from Cloud. If an agent is idle for 10 mins, this retention strategy will remove the agent. This can be used as-is for a Node provisioned by cloud to implement the auto-scaling semantics, it can be subtyped to tweak the behavior, or it can be used as an example.

TODO CloudRetentionStrategy seems to be a better implementation.

Since:
1.510
Author:
Kohsuke Kawaguchi
  • Field Details

    • TIMEOUT

      public static long TIMEOUT
  • Constructor Details

    • CloudSlaveRetentionStrategy

      public CloudSlaveRetentionStrategy()
  • Method Details

    • check

      public long check(T c)
      Description copied from class: RetentionStrategy
      This method will be called periodically to allow this strategy to decide what to do with its owning agent.
      Specified by:
      check in class RetentionStrategy<T extends Computer>
      Parameters:
      c - Computer for which this strategy is assigned. This computer may be online or offline. This object also exposes a bunch of properties that the callee can use to decide what action to take.
      Returns:
      The number of minutes after which the strategy would like to be checked again. The strategy may be rechecked earlier or later than this!
    • kill

      protected void kill(Node n) throws IOException
      Remove the node.

      To actually deallocate the resource tied to this Node, implement Computer.onRemoved().

      Throws:
      IOException
    • checkCycle

      protected long checkCycle()
      When do we check again next time?
    • isIdleForTooLong

      protected boolean isIdleForTooLong(T c)
      Has this computer been idle for too long?
    • getIdleMaxTime

      protected long getIdleMaxTime()
      If the computer has been idle longer than this time, we'll kill the agent.